diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-03-14 15:40:46 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-03-14 17:16:39 -0700 |
| commit | 85ccb0066a86a3558ae81cd357463f8dc631f94b (patch) | |
| tree | 15838902439f6ed188ffb70fe2170605f26894bc /src/platform/posix | |
| parent | f4de6b5302df8befbd2b229b701d0bf9ca81a5fb (diff) | |
| download | nng-85ccb0066a86a3558ae81cd357463f8dc631f94b.tar.gz nng-85ccb0066a86a3558ae81cd357463f8dc631f94b.tar.bz2 nng-85ccb0066a86a3558ae81cd357463f8dc631f94b.zip | |
fixes #289 nng_sockaddr could just be a union
fixes #290 sockaddr improvements
Diffstat (limited to 'src/platform/posix')
| -rw-r--r-- | src/platform/posix/posix_ipc.c | 3 | ||||
| -rw-r--r-- | src/platform/posix/posix_resolv_gai.c | 21 | ||||
| -rw-r--r-- | src/platform/posix/posix_sockaddr.c | 14 | ||||
| -rw-r--r-- | src/platform/posix/posix_tcp.c | 14 |
4 files changed, 25 insertions, 27 deletions
diff --git a/src/platform/posix/posix_ipc.c b/src/platform/posix/posix_ipc.c index cd9da243..f7cfc0db 100644 --- a/src/platform/posix/posix_ipc.c +++ b/src/platform/posix/posix_ipc.c @@ -59,8 +59,7 @@ nni_plat_ipc_ep_init(nni_plat_ipc_ep **epp, const nni_sockaddr *sa, int mode) break; case NNI_EP_MODE_LISTEN: - if ((rv = nni_plat_ipc_remove_stale( - sa->s_un.s_path.sa_path)) != 0) { + if ((rv = nni_plat_ipc_remove_stale(sa->s_ipc.sa_path)) != 0) { return (rv); } diff --git a/src/platform/posix/posix_resolv_gai.c b/src/platform/posix/posix_resolv_gai.c index f2f8a9fc..496fb97b 100644 --- a/src/platform/posix/posix_resolv_gai.c +++ b/src/platform/posix/posix_resolv_gai.c @@ -171,19 +171,18 @@ nni_posix_resolv_task(void *arg) switch (probe->ai_addr->sa_family) { case AF_INET: - rv = 0; - sin = (void *) probe->ai_addr; - sa->s_un.s_in.sa_family = NNG_AF_INET; - sa->s_un.s_in.sa_port = sin->sin_port; - sa->s_un.s_in.sa_addr = sin->sin_addr.s_addr; + rv = 0; + sin = (void *) probe->ai_addr; + sa->s_in.sa_family = NNG_AF_INET; + sa->s_in.sa_port = sin->sin_port; + sa->s_in.sa_addr = sin->sin_addr.s_addr; break; case AF_INET6: - rv = 0; - sin6 = (void *) probe->ai_addr; - sa->s_un.s_in6.sa_family = NNG_AF_INET6; - sa->s_un.s_in6.sa_port = sin6->sin6_port; - memcpy(sa->s_un.s_in6.sa_addr, sin6->sin6_addr.s6_addr, - 16); + rv = 0; + sin6 = (void *) probe->ai_addr; + sa->s_in6.sa_family = NNG_AF_INET6; + sa->s_in6.sa_port = sin6->sin6_port; + memcpy(sa->s_in6.sa_addr, sin6->sin6_addr.s6_addr, 16); break; } } diff --git a/src/platform/posix/posix_sockaddr.c b/src/platform/posix/posix_sockaddr.c index e9691d91..ba088ed9 100644 --- a/src/platform/posix/posix_sockaddr.c +++ b/src/platform/posix/posix_sockaddr.c @@ -36,10 +36,10 @@ nni_posix_nn2sockaddr(void *sa, const nni_sockaddr *na) if ((sa == NULL) || (na == NULL)) { return (0); } - switch (na->s_un.s_family) { + switch (na->s_family) { case NNG_AF_INET: sin = (void *) sa; - nsin = &na->s_un.s_in; + nsin = &na->s_in; memset(sin, 0, sizeof(*sin)); sin->sin_family = PF_INET; sin->sin_port = nsin->sa_port; @@ -48,7 +48,7 @@ nni_posix_nn2sockaddr(void *sa, const nni_sockaddr *na) case NNG_AF_INET6: sin6 = (void *) sa; - nsin6 = &na->s_un.s_in6; + nsin6 = &na->s_in6; memset(sin6, 0, sizeof(*sin6)); #ifdef SIN6_LEN sin6->sin6_len = sizeof(*sin6); @@ -60,7 +60,7 @@ nni_posix_nn2sockaddr(void *sa, const nni_sockaddr *na) case NNG_AF_IPC: spath = (void *) sa; - nspath = &na->s_un.s_path; + nspath = &na->s_ipc; memset(spath, 0, sizeof(*spath)); // Make sure that the path fits! sz = sizeof(spath->sun_path); @@ -89,21 +89,21 @@ nni_posix_sockaddr2nn(nni_sockaddr *na, const void *sa) switch (((struct sockaddr *) sa)->sa_family) { case AF_INET: sin = (void *) sa; - nsin = &na->s_un.s_in; + nsin = &na->s_in; nsin->sa_family = NNG_AF_INET; nsin->sa_port = sin->sin_port; nsin->sa_addr = sin->sin_addr.s_addr; break; case AF_INET6: sin6 = (void *) sa; - nsin6 = &na->s_un.s_in6; + nsin6 = &na->s_in6; nsin6->sa_family = NNG_AF_INET6; nsin6->sa_port = sin6->sin6_port; memcpy(nsin6->sa_addr, sin6->sin6_addr.s6_addr, 16); break; case AF_UNIX: spath = (void *) sa; - nspath = &na->s_un.s_path; + nspath = &na->s_ipc; nspath->sa_family = NNG_AF_IPC; (void) snprintf(nspath->sa_path, sizeof(nspath->sa_path), "%s", spath->sun_path); diff --git a/src/platform/posix/posix_tcp.c b/src/platform/posix/posix_tcp.c index 8a6fe9d1..9caa157f 100644 --- a/src/platform/posix/posix_tcp.c +++ b/src/platform/posix/posix_tcp.c @@ -40,11 +40,11 @@ nni_plat_tcp_ep_init(nni_plat_tcp_ep **epp, const nni_sockaddr *lsa, return (rv); } - if ((rsa != NULL) && (rsa->s_un.s_family != NNG_AF_UNSPEC)) { + if ((rsa != NULL) && (rsa->s_family != NNG_AF_UNSPEC)) { len = nni_posix_nn2sockaddr((void *) &ss, rsa); nni_posix_epdesc_set_remote(ed, &ss, len); } - if ((lsa != NULL) && (lsa->s_un.s_family != NNG_AF_UNSPEC)) { + if ((lsa != NULL) && (lsa->s_family != NNG_AF_UNSPEC)) { len = nni_posix_nn2sockaddr((void *) &ss, lsa); nni_posix_epdesc_set_local(ed, &ss, len); } @@ -130,15 +130,15 @@ nni_plat_tcp_ntop(const nni_sockaddr *sa, char *ipstr, char *portstr) const void *ap; uint16_t port; int af; - switch (sa->s_un.s_family) { + switch (sa->s_family) { case NNG_AF_INET: - ap = &sa->s_un.s_in.sa_addr; - port = sa->s_un.s_in.sa_port; + ap = &sa->s_in.sa_addr; + port = sa->s_in.sa_port; af = AF_INET; break; case NNG_AF_INET6: - ap = &sa->s_un.s_in6.sa_addr; - port = sa->s_un.s_in6.sa_port; + ap = &sa->s_in6.sa_addr; + port = sa->s_in6.sa_port; af = AF_INET6; break; default: |
