Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Sep 2012 10:39:48 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r240389 - head/usr.sbin/syslogd
Message-ID:  <201209121039.q8CAdm0e050728@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Wed Sep 12 10:39:47 2012
New Revision: 240389
URL: http://svn.freebsd.org/changeset/base/240389

Log:
  Add support for ipv6 addresses as destination
  
  PR:		bin/150530
  Submitted by:	andy white <andywhite@gmail.com>
  Tested by:	Olivier Cochard-Labbe <olivier@cochard.me>
  MFC after:	1 month

Modified:
  head/usr.sbin/syslogd/syslogd.c

Modified: head/usr.sbin/syslogd/syslogd.c
==============================================================================
--- head/usr.sbin/syslogd/syslogd.c	Wed Sep 12 10:16:39 2012	(r240388)
+++ head/usr.sbin/syslogd/syslogd.c	Wed Sep 12 10:39:47 2012	(r240389)
@@ -1931,6 +1931,7 @@ cfline(const char *line, struct filed *f
 	case '@':
 		{
 			char *tp;
+			char endkey = ':';
 			/*
 			 * scan forward to see if there is a port defined.
 			 * so we can't use strlcpy..
@@ -1939,9 +1940,19 @@ cfline(const char *line, struct filed *f
 			tp = f->f_un.f_forw.f_hname;
 			p++;
 
-			while (*p && (*p != ':') && (i-- > 0)) {
+			/*
+			 * an ipv6 address should start with a '[' in that case
+			 * we should scan for a ']'
+			 */
+			if (*p == '[') {
+				p++;
+				endkey = ']';
+			}
+			while (*p && (*p != endkey) && (i-- > 0)) {
 				*tp++ = *p++;
 			}
+			if (endkey == ']' && *p == endkey)
+				p++;
 			*tp = '\0';
 		}
 		/* See if we copied a domain and have a port */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209121039.q8CAdm0e050728>