- be C99 friendly. Anonymous unions are a GNU extension. This change is

size-neutral WRT -std=gnu99 and fixes several compilation errors for strict
  C99 mode.
This commit is contained in:
Bernhard Reutner-Fischer
2008-01-29 10:33:34 +00:00
parent c882f341ce
commit 8c69afd992
18 changed files with 98 additions and 99 deletions

View File

@ -99,13 +99,13 @@ int get_nport(const struct sockaddr *sa)
void set_nport(len_and_sockaddr *lsa, unsigned port)
{
#if ENABLE_FEATURE_IPV6
if (lsa->sa.sa_family == AF_INET6) {
lsa->sin6.sin6_port = port;
if (lsa->u.sa.sa_family == AF_INET6) {
lsa->u.sin6.sin6_port = port;
return;
}
#endif
if (lsa->sa.sa_family == AF_INET) {
lsa->sin.sin_port = port;
if (lsa->u.sa.sa_family == AF_INET) {
lsa->u.sin.sin_port = port;
return;
}
/* What? UNIX socket? IPX?? :) */
@ -182,9 +182,9 @@ USE_FEATURE_IPV6(sa_family_t af,)
}
}
#endif
r = xmalloc(offsetof(len_and_sockaddr, sa) + used_res->ai_addrlen);
r = xmalloc(offsetof(len_and_sockaddr, u.sa) + used_res->ai_addrlen);
r->len = used_res->ai_addrlen;
memcpy(&r->sa, used_res->ai_addr, used_res->ai_addrlen);
memcpy(&r->u.sa, used_res->ai_addr, used_res->ai_addrlen);
set_nport(r, htons(port));
ret:
freeaddrinfo(result);
@ -246,9 +246,9 @@ int xsocket_type(len_and_sockaddr **lsap, USE_FEATURE_IPV6(int family,) int sock
len = sizeof(struct sockaddr_in6);
}
#endif
lsa = xzalloc(offsetof(len_and_sockaddr, sa) + len);
lsa = xzalloc(offsetof(len_and_sockaddr, u.sa) + len);
lsa->len = len;
lsa->sa.sa_family = family;
lsa->u.sa.sa_family = family;
*lsap = lsa;
return fd;
}
@ -266,13 +266,13 @@ static int create_and_bind_or_die(const char *bindaddr, int port, int sock_type)
if (bindaddr && bindaddr[0]) {
lsa = xdotted2sockaddr(bindaddr, port);
/* user specified bind addr dictates family */
fd = xsocket(lsa->sa.sa_family, sock_type, 0);
fd = xsocket(lsa->u.sa.sa_family, sock_type, 0);
} else {
fd = xsocket_type(&lsa, USE_FEATURE_IPV6(AF_UNSPEC,) sock_type);
set_nport(lsa, htons(port));
}
setsockopt_reuseaddr(fd);
xbind(fd, &lsa->sa, lsa->len);
xbind(fd, &lsa->u.sa, lsa->len);
free(lsa);
return fd;
}
@ -294,17 +294,17 @@ int create_and_connect_stream_or_die(const char *peer, int port)
len_and_sockaddr *lsa;
lsa = xhost2sockaddr(peer, port);
fd = xsocket(lsa->sa.sa_family, SOCK_STREAM, 0);
fd = xsocket(lsa->u.sa.sa_family, SOCK_STREAM, 0);
setsockopt_reuseaddr(fd);
xconnect(fd, &lsa->sa, lsa->len);
xconnect(fd, &lsa->u.sa, lsa->len);
free(lsa);
return fd;
}
int xconnect_stream(const len_and_sockaddr *lsa)
{
int fd = xsocket(lsa->sa.sa_family, SOCK_STREAM, 0);
xconnect(fd, &lsa->sa, lsa->len);
int fd = xsocket(lsa->u.sa.sa_family, SOCK_STREAM, 0);
xconnect(fd, &lsa->u.sa, lsa->len);
return fd;
}