On Thu, Sep 12, 2002 at 11:29:11AM +0200, Achim Gsell wrote:
Hi,
We need the "template()" and "template_escape()" options in all destination drivers, not only in the "file" driver. The attached patch adds these options to all other destination drivers in syslog-ng 1.5.20. We test the patch on Linux 2.2.20 and Solaris 8.
Is there a reason to have these options available only in the "file" destination driver?
Hi, I came to having some time to integrate pending patches, and found your patch. I have a couple of comments, which needs to be fixed before releasing a syslog-ng with these parts integrated. * expand_macro & friends should be declared in a header file instead of declaring it in every referencing module. maybe a new file called macros.c would be a good way of resolving this problem. * expand_macros returns a newly allocated string, which must be freed, so constructs like this cause memory leaks: + if (self->template_output) + A_WRITE_STRING(&self->dest_buf->super, + c_format("<%i>%S\n", + msg->pri, expand_macros(self->cfg, self->template_output, self->template_escape, msg))); c_format() has an option to free an ol_string by specifying 'f' like this: c_format("%fS", expand_macros()) ... Otherwise your patch looks ok to me. If you want to have it integrated prior to 1.6.0 is being released, please send a modified diff. Thanks in advance, -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1