<div dir="ltr">and there&#39;s the $LOGHOST macro which expands to the local hostname<br>bazsi@bzorp:~/zwa/work/syslog-ng-ose-3.4/syslog-ng-ose/lib$ git show 50d3289f<br>commit 50d3289f418f407f592d2b025e989a46840a3f76<br>Author: Balazs Scheidler &lt;<a href="mailto:bazsi@balabit.hu">bazsi@balabit.hu</a>&gt;<br>
Date:   Thu May 5 21:03:47 2011 +0200<br><br>    templates: added $LOGHOST macro<br>    <br>    This patch adds a new macro &quot;$LOGHOST&quot; which expands to the name of<br>    the local hostname, as returned by the hostname command.<br>
    <br>    Signed-off-by: Andreas Piesk &lt;<a href="mailto:a.piesk@gmx.net">a.piesk@gmx.net</a>&gt;<br>    Signed-off-by: Balazs Scheidler &lt;<a href="mailto:bazsi@balabit.hu">bazsi@balabit.hu</a>&gt;<br><br>diff --git a/lib/templates.c b/lib/templates.c<br>
index 897365c..a3b85cf 100644<br>--- a/lib/templates.c<br>+++ b/lib/templates.c<br>@@ -59,6 +59,8 @@ enum<br>   M_SEQNUM,<br>   M_CONTEXT_ID,<br> <br>+  M_LOGHOST,<br>+<br>   M_DATE,<br>   M_FULLDATE,<br>   M_ISODATE,<br>
@@ -181,6 +183,9 @@ LogMacroDef macros[] =<br>         { &quot;MSG&quot;, M_MESSAGE },<br>         { &quot;MESSAGE&quot;, M_MESSAGE },<br>         { &quot;HOST&quot;, M_HOST },<br>+<br>+        /* message independent macros */<br>
+        { &quot;LOGHOST&quot;, M_LOGHOST },<br>         { NULL, 0 }<br> };<br> <br>@@ -414,6 +419,14 @@ log_macro_expand(GString *result, gint id, gboolean escape, LogTemplateOptions *<br>           }<br>         break;<br>
       }<br>+    case M_LOGHOST:<br>+      {<br>+        gsize hname_len;<br>+        const gchar *hname = get_local_hostname(&amp;hname_len);<br>+<br>+        result_append(result, hname, hname_len, escape);<br>+        break;<br>
+      }<br>     default:<br>       {<br>         /* year, month, day */<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 17, 2013 at 12:52 PM, Gergely Nagy <span dir="ltr">&lt;<a href="mailto:algernon@balabit.hu" target="_blank">algernon@balabit.hu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Evan Rempel &lt;<a href="mailto:erempel@uvic.ca">erempel@uvic.ca</a>&gt; writes:<br>
<br>
&gt; First thing is that the confgen module is not in the documentation :-(<br>
<br>
</div>It&#39;s not easy to document it :)<br>
<div class="im"><br>
&gt; Second thing is that I am having problems using the confgen module<br>
&gt;<br>
&gt;<br>
&gt; @module confgen context(source) name(myself) exec(&quot;/bin/hostname&quot;)<br>
&gt; source primary { tcp( localip( myself() ) port(514) ); };<br>
&gt; log { source(primary); destination(d_my_dest); };<br>
&gt;<br>
&gt;<br>
&gt; works like a charm and listens on the IP address of my hosts primary interface.<br>
&gt;<br>
&gt; But this will not work.<br>
&gt;<br>
&gt; @module confgen context(source) name(myself) exec(&quot;/bin/hostname&quot;)<br>
&gt; source self { tcp(localip(localhost) port(1514) );<br>
&gt; };<br>
&gt; rewrite r_self {<br>
&gt;          set( &quot;myself()&quot;, value(&quot;HOST&quot;) );<br>
&gt; };<br>
&gt; log {<br>
&gt;        source(self); rewrite(r_self);<br>
&gt; };<br>
<br>
</div>In the second case, you will have to change the context(source) to<br>
context(rewrite),  and unquote myself().<br>
<br>
You can test the expansion with:<br>
 syslog-ng -s --preprocess-into=/dev/stdout -f /path/to/syslog-ng.conf<br>
<br>
With the context changed and myself() unquoted, the above expands to:<br>
<br>
,----<br>
| @module confgen context(rewrite) name(myself) exec(&quot;/bin/hostname&quot;)<br>
<div class="im">| source self { tcp(localip(localhost) port(1514) );<br>
| };<br>
| rewrite r_self {<br>
</div>|              set( hadhodrond<br>
<div class="im">| , value(&quot;HOST&quot;) );<br>
| }};<br>
| log {<br>
|            source(self); rewrite(r_self);<br>
| };<br>
</div>`----<br>
<br>
That should work, I think,  but I haven&#39;t tested it.<br>
<br>
The basic idea behind confgen, though, is that it generates<br>
syslog-ng.conf snippets, which are then inserted into the buffer as if<br>
it was there like that to begin with, so the parser will go through it<br>
too.<br>
<div class="im"><br>
&gt; What I am trying to do is accept TCP connections from applications on the host, and change the SOURCEHOST to<br>
&gt; be the actual host name rather than the text &quot;localhost&quot;.<br>
<br>
</div>I&#39;d probably do it in a very different way: using template(), because<br>
that&#39;s more efficient than rewrite.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
|8]<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________________________________________________________<br>
Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
FAQ: <a href="http://www.balabit.com/wiki/syslog-ng-faq" target="_blank">http://www.balabit.com/wiki/syslog-ng-faq</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Bazsi
</div>