On 23/05/2012, at 8:55 AM, Leif Hedstrom wrote:

> On 5/22/12 9:39 PM, James Peach wrote:
>> On 11/05/2012, at 10:21 AM, James Peach wrote:
>> I thought a bit more about how the remap and full APIs can be supported. 
>> Currently the remap plugin looks for global functions called 'init' and 
>> 'remap' respectively.
>> 
>> We don't really need 'init' because you can just run code at global scope 
>> when the source file is loaded; so 'init' can go away. I think that the 
>> global 'remap' function can go away too in favour of explicitly registering 
>> a remap callback, eg.
>> 
>>      TS.remap(function(request) {
>>              -- do stuff here
>>      })
>> 
>> This will match the hook function that I'm thinking of, eg:
>> 
>>      TS.hook(TS.HttpReadRequestHeader, function(foo1, foo2) {
>>              -- do stuff here
>>      })
>> 
>> 
> 
> +1.
> 
> Is there a reason not to use the same naming conventions as we already have 
> in <ts/ts.h>? So e.g. instead we'd have TS.HTTP_READ_REQUEST_HDR_HOOK  (I 
> ditched the TS_ prefix intentionally, since TS. sort of becomes our prefix).

That seemed a bit ugly compared to the Lua conventions I have seen. Not that 
I've seen all that many :)

> 
> Also, perhaps we should be a bit more "explicit" on the method names for 
> adding a hook remap? E.g.
> 
>    TS.HttpHookAdd()
>    TS.HttpSsnHookAdd()
>    TS.HttpTxnHookAdd()

I think that TSHttpTxnHookAdd() and TSHttpSsnHookAdd() might end up being a 
member functions. But I agree that a more explicit name is better.

Actually we could go further and break out the hooks into discrete functions, 
eg:

        TS.HttpReadRequestHeader(function(foo1, foo2)
                -- do stuff
        end)


> 
> and perhaps e.g.
> 
>    TS.DoRemap()
> 
> (or some such).
> 
> This again maps to what we would use in C/C++. Even if we only implement the 
> HttpHookAdd() for now, it avoids confusion further down the road I think?

I'm not sure about this. I agree that paralleling the C API has documentation 
and familiarity benefits, but the Lua API can be higher level and more 
"natural".

> 
> Cheers,
> 
> -- leif
> 

Reply via email to