diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-10-02 17:32:11 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-10-03 09:47:08 -0700 |
| commit | 6fef4c1e5bf73ad76e7cdcfb65540f1308045339 (patch) | |
| tree | ca50ca2c27fb2d0a44ee9dc317cc0b673eaf9e66 /src/platform/posix/posix_pipedesc.c | |
| parent | 6e945e18f3f3e9b7f9ee614eac6d3bf681f768d9 (diff) | |
| download | nng-6fef4c1e5bf73ad76e7cdcfb65540f1308045339.tar.gz nng-6fef4c1e5bf73ad76e7cdcfb65540f1308045339.tar.bz2 nng-6fef4c1e5bf73ad76e7cdcfb65540f1308045339.zip | |
fixes #5 Address properties
Added TCP socket address properties on pipes.
This adds the plumbing for the various platform specifics, and
includes both v4 and v6 handling.
We've included a TCPv6 test as well.
Diffstat (limited to 'src/platform/posix/posix_pipedesc.c')
| -rw-r--r-- | src/platform/posix/posix_pipedesc.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/platform/posix/posix_pipedesc.c b/src/platform/posix/posix_pipedesc.c index 8a087256..a025f83c 100644 --- a/src/platform/posix/posix_pipedesc.c +++ b/src/platform/posix/posix_pipedesc.c @@ -288,6 +288,30 @@ nni_posix_pipedesc_send(nni_posix_pipedesc *pd, nni_aio *aio) } int +nni_posix_pipedesc_peername(nni_posix_pipedesc *pd, nni_sockaddr *sa) +{ + struct sockaddr_storage ss; + socklen_t sslen = sizeof(ss); + + if (getpeername(pd->node.fd, (void *) &ss, &sslen) != 0) { + return (nni_plat_errno(errno)); + } + return (nni_posix_sockaddr2nn(sa, &ss)); +} + +int +nni_posix_pipedesc_sockname(nni_posix_pipedesc *pd, nni_sockaddr *sa) +{ + struct sockaddr_storage ss; + socklen_t sslen = sizeof(ss); + + if (getsockname(pd->node.fd, (void *) &ss, &sslen) != 0) { + return (nni_plat_errno(errno)); + } + return (nni_posix_sockaddr2nn(sa, &ss)); +} + +int nni_posix_pipedesc_init(nni_posix_pipedesc **pdp, int fd) { nni_posix_pipedesc *pd; |
