vtcp connection string simplified

Till now, vtcp connection contained both port and subport.
Now the port, if not specified, defaults to 9220.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
This commit is contained in:
Martin Sustrik 2011-08-04 13:11:15 +02:00
parent be48970977
commit 24230515f5
2 changed files with 30 additions and 14 deletions

View File

@ -83,15 +83,27 @@ int zmq::vtcp_connecter_t::set_address (const char *addr_)
{
const char *delimiter = strrchr (addr_, '.');
if (!delimiter) {
errno = EINVAL;
return -1;
delimiter = strrchr (addr_, ':');
if (!delimiter) {
errno = EINVAL;
return -1;
}
std::string addr_str (addr_, delimiter - addr_);
addr_str += ":9220";
std::string subport_str (delimiter + 1);
subport = (vtcp_subport_t) atoi (subport_str.c_str ());
int rc = resolve_ip_hostname (&addr, &addr_len, addr_str.c_str ());
if (rc != 0)
return -1;
}
else {
std::string addr_str (addr_, delimiter - addr_);
std::string subport_str (delimiter + 1);
subport = (vtcp_subport_t) atoi (subport_str.c_str ());
int rc = resolve_ip_hostname (&addr, &addr_len, addr_str.c_str ());
if (rc != 0)
return -1;
}
std::string addr_str (addr_, delimiter - addr_);
std::string subport_str (delimiter + 1);
subport = (vtcp_subport_t) atoi (subport_str.c_str ());
int rc = resolve_ip_hostname (&addr, &addr_len, addr_str.c_str ());
if (rc != 0)
return -1;
return 0;
}

View File

@ -59,15 +59,19 @@ int zmq::vtcp_listener_t::set_address (const char *addr_)
}
// Parse port and subport.
uint16_t port;
uint32_t subport;
const char *delimiter = strrchr (addr_, '.');
if (!delimiter) {
errno = EINVAL;
return -1;
port = 9220;
subport = (uint32_t) atoi (addr_ + 2);
}
else {
std::string port_str (addr_ + 2, delimiter - addr_ - 2);
std::string subport_str (delimiter + 1);
port = (uint16_t) atoi (port_str.c_str ());
subport = (uint32_t) atoi (subport_str.c_str ());
}
std::string port_str (addr_ + 2, delimiter - addr_ - 2);
std::string subport_str (delimiter + 1);
uint16_t port = (uint16_t) atoi (port_str.c_str ());
uint32_t subport = (uint32_t) atoi (subport_str.c_str ());
// Start listening.
s = vtcp_bind (port, subport);