Mercurial > dovecot > core-2.2
diff src/lib/network.c @ 13363:7b293478f609
Make static analyzer happy.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 01 Sep 2011 11:57:59 +0300 |
parents | d473660bc54d |
children | 97135a53951e |
line wrap: on
line diff
--- a/src/lib/network.c Thu Sep 01 11:50:49 2011 +0300 +++ b/src/lib/network.c Thu Sep 01 11:57:59 2011 +0300 @@ -25,6 +25,11 @@ #endif }; +union sockaddr_union_unix { + struct sockaddr sa; + struct sockaddr_un sun; +}; + #ifdef HAVE_IPV6 # define SIZEOF_SOCKADDR(so) ((so).sa.sa_family == AF_INET6 ? \ sizeof(so.sin6) : sizeof(so.sin)) @@ -677,16 +682,16 @@ int net_getunixname(int fd, const char **name_r) { - struct sockaddr_un sa; - socklen_t addrlen = sizeof(sa); + union sockaddr_union_unix so; + socklen_t addrlen = sizeof(so); - if (getsockname(fd, (void *)&sa, &addrlen) < 0) + if (getsockname(fd, &so.sa, &addrlen) < 0) return -1; - if (sa.sun_family != AF_UNIX) { + if (so.sun.sun_family != AF_UNIX) { errno = ENOTSOCK; return -1; } - *name_r = t_strdup(sa.sun_path); + *name_r = t_strdup(so.sun.sun_path); return 0; }