<div dir="ltr"><div><div><div>Hi,<br><br></div>Let me try to describe what is needed to parse options from the configuration file:<br><ul><li>curl-grammar.ym: is a yacc/bison source file that parses the curl specific portion of the configuration. It is able to generate parsers for LALR(1) languages.</li><li>curl-parser.c: contains the set of keywords that curl understands. This maps keywords found in the configuration into tokens that the grammar is able to process. A token is basically a numeric identifier.</li></ul><p>So for instance to add a &quot;header&quot; option, you will need this stuff:<br></p><p>1) define a token in the grammar, so it becomes available as a macro</p><p><span style="font-family:monospace,monospace">diff --git a/modules/curl/curl-grammar.ym b/modules/curl/curl-grammar.ym<br>index c3aaf00..eab317c 100644<br>--- a/modules/curl/curl-grammar.ym<br>+++ b/modules/curl/curl-grammar.ym<br>@@ -47,6 +47,7 @@<br> %parse-param {gpointer arg}<br> <br> %token KW_CURL<br>+%token KW_HEADER<br> <br> %type   &lt;ptr&gt; driver<br> %type   &lt;ptr&gt; curl_destination<br></span></p><p><br></p><p>If you recompile the curl module, this will make KW_HEADER to become available in curl-grammar.h<br></p><p>2) add a keyword to curl-parser.c</p><p>This will tell the syslog-ng lexer (a component that reads the configuration file and breaks them into tokens) to map the string &quot;header&quot; into a symbolic token named KW_HEADER.</p><p><span style="font-family:monospace,monospace">diff --git a/modules/curl/curl-parser.c b/modules/curl/curl-parser.c<br>index 6958a8d..b60ef0b 100644<br>--- a/modules/curl/curl-parser.c<br>+++ b/modules/curl/curl-parser.c<br>@@ -30,6 +30,7 @@ int curl_parse(CfgLexer *lexer, LogDriver **instance, gpointer arg);<br> <br> static CfgLexerKeyword curl_keywords[] = {<br>   { &quot;curl&quot;, KW_CURL },<br>+  { &quot;header&quot;, KW_HEADER },<br>   { NULL }<br> };</span><br> <br></p><p>3) add rules to the grammar to parse this option<br></p><p>First we need a small refactor in the curl-grammar file to save the just instantiated CurlDestinationDriver (I hand edited this hunk for clarity, so it will not apply automatically):</p><p><span style="font-family:monospace,monospace"><br>@@ -71,7 +72,15 @@ driver<br>        ;<br> <br> curl_destination<br>-       : KW_CURL &#39;(&#39; &#39;)&#39;                       { $$ = curl_dd_new(configuration); }<br>+       : KW_CURL <br>+         {<br>+            last_driver = curl_dd_new(configuration);<br>+          }<br>+         &#39;(&#39;  &#39;)&#39;                             { $$ = last_driver; }<br>+       ;<br><br></span><br></p><p>This basically just stores the driver instance in a variable named &quot;last_driver&quot; (defined by the core cfg-grammar.y file). So we can later use this to call setters on.</p><p>And now let&#39;s add option parsing (this time the entire hunk):<span style="font-family:monospace,monospace"><br></span></p><p><span style="font-family:monospace,monospace">@@ -71,7 +72,20 @@ driver<br>        ;<br> <br> curl_destination<br>-       : KW_CURL &#39;(&#39; &#39;)&#39;                       { $$ = curl_dd_new(configuration); }<br>+       : KW_CURL <br>+         {<br>+            last_driver = curl_dd_new(configuration);<br>+          }<br>+         &#39;(&#39; curl_options &#39;)&#39;                             { $$ = last_driver; }<br>+       ;<br>+<br>+curl_options<br>+       : curl_option curl_options<br>+       |<br>+       ;<br>+<br>+curl_option<br>+       : KW_HEADER &#39;(&#39; string string &#39;)&#39;                  { curl_dd_set_header(last_driver, $3, $4); }<br>        ;<br> <br> /* INCLUDE_RULES */<br></span><br></p><p>What this does is that we added a rule &quot;curl_options&quot; within the parentheses of our original &quot;curl&quot; rule, which is the rule that must match the configuration as we parse it. (think of it as a recursive tree).</p><p>curl_options is satisfied with either an empty rule (e.g. no options) or recursing itself with a curl_option rule. Note the plural and singular names, curl_options is responsible to match a list of &quot;curl_option&quot;s.</p><p>curl_option is responsible for parsing individual options, for now only a single rule is there, KW_HEADER, which when parsed will call curl_dd_set_header().</p><p>You can add further options like this:</p><span style="font-family:monospace,monospace">+curl_option<br>+       : KW_HEADER &#39;(&#39; string string &#39;)&#39;                  { curl_dd_set_header(last_driver, $3, $4); }<br></span></div><span style="font-family:monospace,monospace">+       | KW_URL &#39;(&#39; string &#39;)&#39;                            { curl_dd_set_url(last_driver, $3); }<br><br></span></div><br><p>Variables like $1, $2 and so on represent the Nth token in the rule, e.g. $3 in the KW_HEADER branch is the first string value. $4, is the 2nd.</p><p>Hope this helps. You will definitely be able to find tutorials that describe both yacc/lex, however there are a number of quirks how syslog-ng applies them, primarily to make it possible to extend the base grammar with plugins.</p><p>Cheers,</p><p>Bazsi<br></p><span style="font-family:monospace,monospace"></span><div><span style="font-family:monospace,monospace"><br></span><div><div><span style="font-family:monospace,monospace">        </span></div></div></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr">-- <br>Bazsi<br></div></div></div>
<br><div class="gmail_quote">On Mon, Feb 1, 2016 at 10:01 PM, Marc Falzon <span dir="ltr">&lt;<a href="mailto:m@baha.mu" target="_blank">m@baha.mu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Bazsi<br>
<br>
Sorry to bother you again, but now that I&#39;m done prototyping the &quot;curl&quot; part of my module using hardcoded values for testing I&#39;m now facing the &quot;grammar/parser&quot; problem: could you please drive me though the basics of how this works? I tried to understand looking at other modules but I don&#39;t understand at all.<br>
<br>
Basically, I&#39;d like to be able to specify some configuration settings in the syslog-ng configuration, such as url, some HTTP headers... It would look like this:<br>
<br>
destination d_curl {<br>
  curl(url(&quot;<a href="http://logs.example.net:5140/" rel="noreferrer" target="_blank">http://logs.example.net:5140/</a>&quot; header(&quot;Content-Type: application/json&quot;) header(&quot;X-Custom-Header: blah&quot;)));<br>
};<br>
<br>
<br>
My code is still available at <a href="https://github.com/falzm/syslog-ng/tree/f/curl-module/modules/curl" rel="noreferrer" target="_blank">https://github.com/falzm/syslog-ng/tree/f/curl-module/modules/curl</a><br>
<br>
Thank you in advance,<br>
<br>
m.<br>
<span class=""><br>
<br>
On Saturday 30 January 2016 at 10:17, <a href="mailto:m@baha.mu">m@baha.mu</a> wrote:<br>
<br>
&gt; Hi<br>
&gt;<br>
&gt; Great! I should be able to get going from here, thank you for your help.<br>
&gt;<br>
&gt; Cheers,<br>
&gt;<br>
&gt; m.<br>
&gt;<br>
</span><span class="">&gt; &gt; On Jan 30, 2016, at 08:56, Scheidler, Balázs &lt;<a href="mailto:balazs.scheidler@balabit.com">balazs.scheidler@balabit.com</a> (mailto:<a href="mailto:balazs.scheidler@balabit.com">balazs.scheidler@balabit.com</a>)&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; I have added code to your module, it compiles and is able to accept messages to be sent, and prints a debug message whenever that happens.<br>
&gt; &gt;<br>
&gt; &gt; I didn&#39;t have too much time to clean it up, but I hope this helps to start the ball rolling.<br>
&gt; &gt;<br>
&gt; &gt; <a href="https://github.com/balabit/syslog-ng/compare/f/curl-module" rel="noreferrer" target="_blank">https://github.com/balabit/syslog-ng/compare/f/curl-module</a> &lt;<a href="https://github.com/balabit/syslog-ng/compare/f/curl-module" rel="noreferrer" target="_blank">https://github.com/balabit/syslog-ng/compare/f/curl-module</a>&gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Bazsi<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Bazsi<br>
&gt; &gt;<br>
&gt; &gt; On Sat, Jan 23, 2016 at 9:27 PM, &lt;<a href="mailto:m@baha.mu">m@baha.mu</a> &lt;mailto:<a href="mailto:m@baha.mu">m@baha.mu</a>&gt;&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; On Jan 23, 2016, at 21:23, Scheidler, Balázs &lt;<a href="mailto:balazs.scheidler@balabit.com">balazs.scheidler@balabit.com</a> &lt;mailto:<a href="mailto:balazs.scheidler@balabit.com">balazs.scheidler@balabit.com</a>&gt;&gt; wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; If you commit your code to a branch I can help with the basic skeleton of the parser/grammar<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Thank you Balázs, my code is available here: <a href="https://github.com/falzm/syslog-ng/tree/f/curl-module/modules/curl" rel="noreferrer" target="_blank">https://github.com/falzm/syslog-ng/tree/f/curl-module/modules/curl</a> &lt;<a href="https://github.com/falzm/syslog-ng/tree/f/curl-module/modules/curl" rel="noreferrer" target="_blank">https://github.com/falzm/syslog-ng/tree/f/curl-module/modules/curl</a>&gt;<br>
&gt; &gt;<br>
&gt; &gt; m.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Jan 23, 2016 5:54 PM, &quot;Marc Falzon&quot; &lt;<a href="mailto:m@baha.mu">m@baha.mu</a> &lt;mailto:<a href="mailto:m@baha.mu">m@baha.mu</a>&gt;&gt; wrote:<br>
</span>&gt; &gt; &gt; I successfully generated a module template using the `create_plugin.sh (<a href="http://create_plugin.sh" rel="noreferrer" target="_blank">http://create_plugin.sh</a>)` script, however I don&#39;t have the slightest idea on how to get started from here (I mean for the &#39;plugin glue&#39;, I can manage the cURL part)... The most problematic step for me is the whole parser/grammar thing, to which I believe to involve YACC/Bison parsing but I don&#39;t know how it works and it&#39;s too big of a learning curve for what I want to achieve at this point... Since the Gitbook doesn&#39;t provide any useful information on module development at the moment, is there any way to get me started on this topic? I&#39;m not a developer (sysadmin), and trying to learn from existing module doesn&#39;t quite cut it.<br>
<div class="HOEnZb"><div class="h5">&gt; &gt; &gt;<br>
&gt; &gt; &gt; Thank you,<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; m.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Friday 22 January 2016 at 11:35, Tibor Benke wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; There is also a shell script which generates a basic destination skeleton. You can find its source on this brach: <a href="https://github.com/juhaszviktor/syslog-ng/tree/f/plugin-creator" rel="noreferrer" target="_blank">https://github.com/juhaszviktor/syslog-ng/tree/f/plugin-creator</a> &lt;<a href="https://github.com/juhaszviktor/syslog-ng/tree/f/plugin-creator" rel="noreferrer" target="_blank">https://github.com/juhaszviktor/syslog-ng/tree/f/plugin-creator</a>&gt; . Check the dev-utils/plugin_skeleton_creator directory and this commit for the usage: <a href="https://github.com/juhaszviktor/syslog-ng/commit/89361d4d1817560ce8c906209355f1b737a28010" rel="noreferrer" target="_blank">https://github.com/juhaszviktor/syslog-ng/commit/89361d4d1817560ce8c906209355f1b737a28010</a> &lt;<a href="https://github.com/juhaszviktor/syslog-ng/commit/89361d4d1817560ce8c906209355f1b737a28010" rel="noreferrer" target="_blank">https://github.com/juhaszviktor/syslog-ng/commit/89361d4d1817560ce8c906209355f1b737a28010</a>&gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 2016-01-22 11:33 GMT+01:00 Marc Falzon &lt;<a href="mailto:m@baha.mu">m@baha.mu</a> &lt;mailto:<a href="mailto:m@baha.mu">m@baha.mu</a>&gt; (mailto:<a href="mailto:m@baha.mu">m@baha.mu</a> &lt;mailto:<a href="mailto:m@baha.mu">m@baha.mu</a>&gt;)&gt;:<br>
&gt; &gt; &gt; &gt; &gt; Hi Bazsi,<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; On Friday 22 January 2016 at 11:28, Scheidler, Balázs wrote:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; not really, but maybe I would read the &quot;official&quot; modules source code instead. and of course you can ask questions on the mailing list. :)<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Yes that&#39;s what I&#39;ve started to do, but a proper documentation is preferable, saves time and avoid confusion ;)<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; if you want to create a destination, the easiest is to create a threaded destination, where the output is an independent thread, that can use a synchronous API. Of course this is going to be slower than using an asynchronous implementation, but that usually is good enough,<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Thank you for the hint. Given my use case (HTTP destination) I think I&#39;m safe to go with an asynchronous implementation since each request is stateless, no connections/locks involved.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; m.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Fri, Jan 22, 2016 at 11:03 AM, Marc Falzon &lt;<a href="mailto:m@baha.mu">m@baha.mu</a> &lt;mailto:<a href="mailto:m@baha.mu">m@baha.mu</a>&gt; (mailto:<a href="mailto:m@baha.mu">m@baha.mu</a> &lt;mailto:<a href="mailto:m@baha.mu">m@baha.mu</a>&gt;) (mailto:<a href="mailto:m@baha.mu">m@baha.mu</a> &lt;mailto:<a href="mailto:m@baha.mu">m@baha.mu</a>&gt;)&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Is there any documentation on how to develop new syslog-ng module using the native C API, besides reading the incubator modules source code?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Cheers,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; m.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; ______________________________________________________________________________<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a> &lt;<a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a> &lt;<a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a> &lt;<a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; ______________________________________________________________________________<br>
&gt; &gt; &gt; &gt; &gt; &gt; Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a> &lt;<a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a> &lt;<a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a> &lt;<a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; ______________________________________________________________________________<br>
&gt; &gt; &gt; &gt; &gt; Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a> &lt;<a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a> &lt;<a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a> &lt;<a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a>&gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; ______________________________________________________________________________<br>
&gt; &gt; &gt; &gt; Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a> &lt;<a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>&gt;<br>
&gt; &gt; &gt; &gt; Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a> &lt;<a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a>&gt;<br>
&gt; &gt; &gt; &gt; FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a> &lt;<a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a>&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; ______________________________________________________________________________<br>
&gt; &gt; &gt; Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a> &lt;<a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>&gt;<br>
&gt; &gt; &gt; Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a> &lt;<a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a>&gt;<br>
&gt; &gt; &gt; FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a> &lt;<a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a>&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; ______________________________________________________________________________<br>
&gt; &gt; &gt; Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a> &lt;<a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>&gt;<br>
&gt; &gt; &gt; Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a> &lt;<a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a>&gt;<br>
&gt; &gt; &gt; FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a> &lt;<a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a>&gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; ______________________________________________________________________________<br>
&gt; &gt; Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a> &lt;<a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" rel="noreferrer" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a>&gt;<br>
&gt; &gt; Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a> &lt;<a href="http://www.balabit.com/support/documentation/?product=syslog-ng" rel="noreferrer" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a>&gt;<br>
&gt; &gt; FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a> &lt;<a href="http://www.balabit.com/wiki/syslog-ng-faq" rel="noreferrer" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a>&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div></blockquote></div><br></div>