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
This commit is contained in:
parent
8840ea45ae
commit
2c0a5e3cee
@ -1931,6 +1931,7 @@ cfline(const char *line, struct filed *f, const char *prog, const char *host)
|
||||
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, const char *prog, const char *host)
|
||||
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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user