aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-01-29 10:33:34 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-01-29 10:33:34 +0000
commit8c69afd992d7cc6c2fc7dea59c3c2bd3f3c21f15 (patch)
tree998a337ecd57b737423a3793365519213f97da72 /libbb
parentc882f341cec8451ee87af6746abb7208272d5b1a (diff)
downloadbusybox-w32-8c69afd992d7cc6c2fc7dea59c3c2bd3f3c21f15.tar.gz
busybox-w32-8c69afd992d7cc6c2fc7dea59c3c2bd3f3c21f15.tar.bz2
busybox-w32-8c69afd992d7cc6c2fc7dea59c3c2bd3f3c21f15.zip
- 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.
Diffstat (limited to 'libbb')
-rw-r--r--libbb/xconnect.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/libbb/xconnect.c b/libbb/xconnect.c
index 91c12f4d3..03ae77329 100644
--- a/libbb/xconnect.c
+++ b/libbb/xconnect.c
@@ -99,13 +99,13 @@ int get_nport(const struct sockaddr *sa)
99void set_nport(len_and_sockaddr *lsa, unsigned port) 99void set_nport(len_and_sockaddr *lsa, unsigned port)
100{ 100{
101#if ENABLE_FEATURE_IPV6 101#if ENABLE_FEATURE_IPV6
102 if (lsa->sa.sa_family == AF_INET6) { 102 if (lsa->u.sa.sa_family == AF_INET6) {
103 lsa->sin6.sin6_port = port; 103 lsa->u.sin6.sin6_port = port;
104 return; 104 return;
105 } 105 }
106#endif 106#endif
107 if (lsa->sa.sa_family == AF_INET) { 107 if (lsa->u.sa.sa_family == AF_INET) {
108 lsa->sin.sin_port = port; 108 lsa->u.sin.sin_port = port;
109 return; 109 return;
110 } 110 }
111 /* What? UNIX socket? IPX?? :) */ 111 /* What? UNIX socket? IPX?? :) */
@@ -182,9 +182,9 @@ USE_FEATURE_IPV6(sa_family_t af,)
182 } 182 }
183 } 183 }
184#endif 184#endif
185 r = xmalloc(offsetof(len_and_sockaddr, sa) + used_res->ai_addrlen); 185 r = xmalloc(offsetof(len_and_sockaddr, u.sa) + used_res->ai_addrlen);
186 r->len = used_res->ai_addrlen; 186 r->len = used_res->ai_addrlen;
187 memcpy(&r->sa, used_res->ai_addr, used_res->ai_addrlen); 187 memcpy(&r->u.sa, used_res->ai_addr, used_res->ai_addrlen);
188 set_nport(r, htons(port)); 188 set_nport(r, htons(port));
189 ret: 189 ret:
190 freeaddrinfo(result); 190 freeaddrinfo(result);
@@ -246,9 +246,9 @@ int xsocket_type(len_and_sockaddr **lsap, USE_FEATURE_IPV6(int family,) int sock
246 len = sizeof(struct sockaddr_in6); 246 len = sizeof(struct sockaddr_in6);
247 } 247 }
248#endif 248#endif
249 lsa = xzalloc(offsetof(len_and_sockaddr, sa) + len); 249 lsa = xzalloc(offsetof(len_and_sockaddr, u.sa) + len);
250 lsa->len = len; 250 lsa->len = len;
251 lsa->sa.sa_family = family; 251 lsa->u.sa.sa_family = family;
252 *lsap = lsa; 252 *lsap = lsa;
253 return fd; 253 return fd;
254} 254}
@@ -266,13 +266,13 @@ static int create_and_bind_or_die(const char *bindaddr, int port, int sock_type)
266 if (bindaddr && bindaddr[0]) { 266 if (bindaddr && bindaddr[0]) {
267 lsa = xdotted2sockaddr(bindaddr, port); 267 lsa = xdotted2sockaddr(bindaddr, port);
268 /* user specified bind addr dictates family */ 268 /* user specified bind addr dictates family */
269 fd = xsocket(lsa->sa.sa_family, sock_type, 0); 269 fd = xsocket(lsa->u.sa.sa_family, sock_type, 0);
270 } else { 270 } else {
271 fd = xsocket_type(&lsa, USE_FEATURE_IPV6(AF_UNSPEC,) sock_type); 271 fd = xsocket_type(&lsa, USE_FEATURE_IPV6(AF_UNSPEC,) sock_type);
272 set_nport(lsa, htons(port)); 272 set_nport(lsa, htons(port));
273 } 273 }
274 setsockopt_reuseaddr(fd); 274 setsockopt_reuseaddr(fd);
275 xbind(fd, &lsa->sa, lsa->len); 275 xbind(fd, &lsa->u.sa, lsa->len);
276 free(lsa); 276 free(lsa);
277 return fd; 277 return fd;
278} 278}
@@ -294,17 +294,17 @@ int create_and_connect_stream_or_die(const char *peer, int port)
294 len_and_sockaddr *lsa; 294 len_and_sockaddr *lsa;
295 295
296 lsa = xhost2sockaddr(peer, port); 296 lsa = xhost2sockaddr(peer, port);
297 fd = xsocket(lsa->sa.sa_family, SOCK_STREAM, 0); 297 fd = xsocket(lsa->u.sa.sa_family, SOCK_STREAM, 0);
298 setsockopt_reuseaddr(fd); 298 setsockopt_reuseaddr(fd);
299 xconnect(fd, &lsa->sa, lsa->len); 299 xconnect(fd, &lsa->u.sa, lsa->len);
300 free(lsa); 300 free(lsa);
301 return fd; 301 return fd;
302} 302}
303 303
304int xconnect_stream(const len_and_sockaddr *lsa) 304int xconnect_stream(const len_and_sockaddr *lsa)
305{ 305{
306 int fd = xsocket(lsa->sa.sa_family, SOCK_STREAM, 0); 306 int fd = xsocket(lsa->u.sa.sa_family, SOCK_STREAM, 0);
307 xconnect(fd, &lsa->sa, lsa->len); 307 xconnect(fd, &lsa->u.sa, lsa->len);
308 return fd; 308 return fd;
309} 309}
310 310