diff options
author | Eric Wong <e@80x24.org> | 2015-01-14 01:39:38 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-01-14 02:57:24 +0000 |
commit | 3bd881bfcda950e8d5a06cfef0847e6f46327182 (patch) | |
tree | b9fd9515559053f5b228dfc80d5fa6263ac6b3b5 /ext | |
parent | c388c34a38f819969511a598cc0cd1014de3e18c (diff) | |
download | raindrops-3bd881bfcda950e8d5a06cfef0847e6f46327182.tar.gz |
POSIX and glibc 2.2+ declare the hostlen and servlen args of getnameinfo(3) to be socklen_t, not size_t, so favor socklen_t for those calculations. While we're at it, nlmsg_len is u32, too, so cast it as such to avoid the warning. Tested on clang version 3.5-1ubuntu1 on x86-64
Diffstat (limited to 'ext')
-rw-r--r-- | ext/raindrops/linux_inet_diag.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/ext/raindrops/linux_inet_diag.c b/ext/raindrops/linux_inet_diag.c index 5f21295..35bb127 100644 --- a/ext/raindrops/linux_inet_diag.c +++ b/ext/raindrops/linux_inet_diag.c @@ -232,8 +232,8 @@ static struct listen_stats *stats_for(st_table *table, struct inet_diag_msg *r) char *key, *port, *old_key; size_t alloca_len; struct listen_stats *stats; - size_t keylen; - size_t portlen = sizeof("65535"); + socklen_t keylen; + socklen_t portlen = (socklen_t)sizeof("65535"); union any_addr sa; socklen_t len = sizeof(struct sockaddr_storage); int rc; @@ -274,8 +274,8 @@ static struct listen_stats *stats_for(st_table *table, struct inet_diag_msg *r) *key = 0; } - keylen = strlen(key); - portlen = strlen(port); + keylen = (socklen_t)strlen(key); + portlen = (socklen_t)strlen(port); switch (sa.ss.ss_family) { case AF_INET: @@ -396,8 +396,8 @@ static void prep_diag_args( nladdr->nl_family = AF_NETLINK; - req->nlh.nlmsg_len = sizeof(struct diag_req) + - RTA_LENGTH(args->iov[2].iov_len); + req->nlh.nlmsg_len = (unsigned int)(sizeof(struct diag_req) + + RTA_LENGTH(args->iov[2].iov_len)); req->nlh.nlmsg_type = TCPDIAG_GETSOCK; req->nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST; req->nlh.nlmsg_pid = getpid(); |