summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2008-08-07 10:18:31 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2008-08-07 10:18:31 +0200
commitb761fbb0f0c9d5cf253ad3f58f7d8486b5650e85 (patch)
tree0b66cbb98ef49b4be716ce630cde258a96233eb5
parente39f202c75af187f96a1af07e60892a63e45cd3f (diff)
parent6f75d5460b12d6f57b3671d71d889747da0074cc (diff)
downloadrsyslog-b761fbb0f0c9d5cf253ad3f58f7d8486b5650e85.tar.gz
rsyslog-b761fbb0f0c9d5cf253ad3f58f7d8486b5650e85.tar.xz
rsyslog-b761fbb0f0c9d5cf253ad3f58f7d8486b5650e85.zip
Merge branch 'v2-stable' into v3-stable
Conflicts: ChangeLog doc/manual.html doc/rsyslog_conf.html omfwd.c
-rw-r--r--ChangeLog6
-rw-r--r--doc/rsyslog_conf.html9
-rw-r--r--omfwd.c14
3 files changed, 27 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f2ab6cb9..35d9d251 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
---------------------------------------------------------------------------
Version 3.18.2 (rgerhards), 2008-07-??
+- merged in IPv6 forwarding address bugfix from v2-stable
---------------------------------------------------------------------------
Version 3.18.1 (rgerhards), 2008-07-21
- bugfix: potential segfault in creating message mutex in non-direct queue
@@ -601,6 +602,11 @@ Version 3.10.0 (rgerhards), 2008-01-07
- much cleaner code due to new objects and removal of single-threading
mode
---------------------------------------------------------------------------
+Version 2.0.6 V2-STABLE (rgerhards), 2008-08-07
+- bugfix: IPv6 addresses could not be specified in forwarding actions
+ New syntax @[addr]:port introduced to enable that. Root problem was IPv6
+ addresses contain colons. (backport from 3.21.3)
+---------------------------------------------------------------------------
Version 2.0.5 STABLE (rgerhards), 2008-05-15
- bugfix: regular expressions inside property replacer did not work
properly
diff --git a/doc/rsyslog_conf.html b/doc/rsyslog_conf.html
index cdfffec4..e65be0bc 100644
--- a/doc/rsyslog_conf.html
+++ b/doc/rsyslog_conf.html
@@ -858,6 +858,15 @@ port 1470.</p>
<p>In the example above, messages are forwarded via UDP to the
machine 192.168.0.1, the destination port defaults to 514. Messages
will not be compressed.</p>
+<p>Note that IPv6 addresses contain colons. So if an IPv6 address is specified
+in the hostname part, rsyslogd could not detect where the IP address ends
+and where the port starts. There is a syntax extension to support this:
+put squary brackets around the address (e.g. "[2001::1]"). Square
+brackets also work with real host names and IPv4 addresses, too.
+<p>A valid sample to send messages to the IPv6 host 2001::1 at port 515
+is as follows:
+<p>*.* @[2001::1]:515
+<p>This works with TCP, too.
<p><b>Note to sysklogd users:</b> sysklogd does <b>not</b>
support RFC 3164 format, which is the default forwarding template in
rsyslog. As such, you will experience duplicate hostnames if rsyslog is
diff --git a/omfwd.c b/omfwd.c
index dfa9b98b..1f4d4430 100644
--- a/omfwd.c
+++ b/omfwd.c
@@ -502,8 +502,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 != '#' ; ++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 */