Gang,
We have some new functionality for the nathelper planned that would need to know final destination URI for the message to work properly. Currently this means that we have to require script writer to invoke this function only after all URI transformations have been applied, which might quite significantly complicate script logic. Moreover it might be even impossible in some cases to do so, for example when using t_relay() function, which uses transaction state to determine message destination.
Therefore, I see the need for a callback mechanism in core, allowing callback functions to be registered on per-message basis and then to be executed in some well-defined points of message processing. The mechanism could be sufficiently generic to allow different uses. One of the other use that I have in mind is destructor callback, which is to be called when the message structure is being freed, so that modules would be able to release any resources allocated (memory, connections, descriptors, etc).
Any comments and suggestions are welcome.
Regards,