Solution: allow brackets in tcp ipv6 address

This commit is contained in:
Constantin Rack 2015-06-23 08:54:49 +02:00
parent d33fb6a2af
commit 15f9ee19cb
2 changed files with 7 additions and 3 deletions

View File

@ -717,11 +717,12 @@ int zmq::socket_base_t::connect (const char *addr_)
// Following code is quick and dirty check to catch obvious errors, // Following code is quick and dirty check to catch obvious errors,
// without trying to be fully accurate. // without trying to be fully accurate.
const char *check = address.c_str (); const char *check = address.c_str ();
if (isalnum (*check) || isxdigit (*check)) { if (isalnum (*check) || isxdigit (*check) || *check == '[') {
check++; check++;
while (isalnum (*check) while (isalnum (*check)
|| isxdigit (*check) || isxdigit (*check)
|| *check == '.' || *check == '-' || *check == ':'|| *check == ';') || *check == '.' || *check == '-' || *check == ':'|| *check == ';'
|| *check == ']')
check++; check++;
} }
// Assume the worst, now look for success // Assume the worst, now look for success

View File

@ -41,6 +41,9 @@ int main (void)
int rc = zmq_connect (sock, "tcp://localhost:1234"); int rc = zmq_connect (sock, "tcp://localhost:1234");
assert (rc == 0); assert (rc == 0);
rc = zmq_connect (sock, "tcp://[::1]:1234");
assert (rc == 0);
rc = zmq_connect (sock, "tcp://localhost:invalid"); rc = zmq_connect (sock, "tcp://localhost:invalid");
assert (rc == -1); assert (rc == -1);