socket_watcher_start: Silence conversion warning for sin(6)_port

Although in_port_t is a typedef for uint16_t, GCC in Ubuntu 12.04
complains about potential loss of data due to converting int to
uint16_t.  Since we know this isn't possible, silence the warning to
avoid breaking QB until it gets upgraded to a newer Ubuntu.
This commit is contained in:
James McCoy
2017-05-27 22:29:55 -04:00
parent 6c135b89ee
commit 62d020aba1

View File

@@ -103,9 +103,9 @@ int socket_watcher_start(SocketWatcher *watcher, int backlog, socket_cb cb)
// contain 0 in this case, unless uv_tcp_getsockname() is used first. // contain 0 in this case, unless uv_tcp_getsockname() is used first.
uv_tcp_getsockname(&watcher->uv.tcp.handle, (struct sockaddr *)&sas, uv_tcp_getsockname(&watcher->uv.tcp.handle, (struct sockaddr *)&sas,
&(int){ sizeof(sas) }); &(int){ sizeof(sas) });
uint16_t port = (sas.ss_family == AF_INET) uint16_t port = (uint16_t)((sas.ss_family == AF_INET)
? ((struct sockaddr_in *)&sas)->sin_port ? ((struct sockaddr_in *)&sas)->sin_port
: ((struct sockaddr_in6 *)&sas)->sin6_port; : ((struct sockaddr_in6 *)&sas)->sin6_port);
// v:servername uses the string from watcher->addr // v:servername uses the string from watcher->addr
size_t len = strlen(watcher->addr); size_t len = strlen(watcher->addr);
snprintf(watcher->addr+len, sizeof(watcher->addr)-len, ":%" PRIu16, snprintf(watcher->addr+len, sizeof(watcher->addr)-len, ":%" PRIu16,