summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2011-04-14 12:47:04 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2011-04-14 12:47:04 +0200
commite7deab65dcad38a613c749e44e36c6c795000867 (patch)
tree5316a4237d82cb05b548f4c1b39580f81299ac9f
parent4195f9cb08cddaeae37dc88c5e879d84391b4359 (diff)
downloadrsyslog-e7deab65dcad38a613c749e44e36c6c795000867.tar.gz
rsyslog-e7deab65dcad38a613c749e44e36c6c795000867.tar.xz
rsyslog-e7deab65dcad38a613c749e44e36c6c795000867.zip
bugfix: IPv6-address could not be specified in omrelp
this was due to improper parsing of ":" closes: http://bugzilla.adiscon.com/show_bug.cgi?id=250
-rw-r--r--ChangeLog3
-rw-r--r--doc/omrelp.html1
-rw-r--r--plugins/omrelp/omrelp.c14
3 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 917ce51f..e63c5d72 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
---------------------------------------------------------------------------
Version 4.6.6 [v4-stable] (rgerhards), 2010-11-??
+- bugfix: IPv6-address could not be specified in omrelp
+ this was due to improper parsing of ":"
+ closes: http://bugzilla.adiscon.com/show_bug.cgi?id=250
- bugfix: imfile potentially duplicates lines
This can happen when 0 bytes are read from the input file, and some
writer appends data to the file BEFORE we check if a rollover happens.
diff --git a/doc/omrelp.html b/doc/omrelp.html
index b3132d78..22e6845f 100644
--- a/doc/omrelp.html
+++ b/doc/omrelp.html
@@ -44,6 +44,7 @@ special "RSYSLOG_ForwardFormat" (case sensitive!) template is used.<br>
# port 2514
*.* :omrelp:centralserv:2514;RSYSLOG_ForwardFormat
</textarea>
+Note: to use IPv6 addresses, encode them in [::1] format.
<p>[<a href="rsyslog_conf.html">rsyslog.conf overview</a>]
[<a href="manual.html">manual index</a>] [<a href="http://www.rsyslog.com/">rsyslog site</a>]</p>
<p><font size="2">This documentation is part of the
diff --git a/plugins/omrelp/omrelp.c b/plugins/omrelp/omrelp.c
index d5ef8b4f..4a21627d 100644
--- a/plugins/omrelp/omrelp.c
+++ b/plugins/omrelp/omrelp.c
@@ -249,8 +249,18 @@ CODE_STD_STRING_REQUESTparseSelectorAct(1)
/* extract the host first (we do a trick - we replace the ';' or ':' with a '\0')
* now skip to port and then template name. rgerhards 2005-07-06
*/
- for(q = p ; *p && *p != ';' && *p != ':' ; ++p)
- /* JUST SKIP */;
+ if(*p == '[') { /* everything is hostname upto ']' */
+ ++p; /* skip '[' */
+ for(q = p ; *p && *p != ']' ; ++p)
+ /* JUST SKIP */;
+ if(*p == ']') {
+ *p = '\0'; /* trick to obtain hostname (later)! */
+ ++p; /* eat it */
+ }
+ } else { /* traditional view of hostname */
+ for(q = p ; *p && *p != ';' && *p != ':' && *p != '#' ; ++p)
+ /* JUST SKIP */;
+ }
pData->port = NULL;
if(*p == ':') { /* process port */