X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=examples%2Fportmap-client.c;h=526e3488544dca378662d754adf9f581e6146a8c;hb=475f1f2808e95332f0f354d8b474ac5fed8138d9;hp=1c3b240a39c509cbbfdf84e04513721e63cc93aa;hpb=75ec99d519800bbc1bda85c0483741cb5d8cac9e;p=deb_libnfs.git diff --git a/examples/portmap-client.c b/examples/portmap-client.c index 1c3b240..526e348 100644 --- a/examples/portmap-client.c +++ b/examples/portmap-client.c @@ -34,9 +34,11 @@ #include #endif +#include #include #include #include +#include #include #include "libnfs-zdr.h" #include "libnfs.h" @@ -189,6 +191,8 @@ void pmap3_uaddr2taddr_cb(struct rpc_context *rpc, int status, void *data, void { struct client *client = private_data; struct pmap3_netbuf *nb = data; + struct sockaddr_storage *ss; + char host[256], port[6]; int i; if (status == RPC_STATUS_ERROR) { @@ -210,6 +214,19 @@ void pmap3_uaddr2taddr_cb(struct rpc_context *rpc, int status, void *data, void } } printf("\n"); + printf(" ---\n"); + ss = (struct sockaddr_storage *)&nb->buf.buf_val[0]; + getnameinfo((struct sockaddr *)ss, sizeof(struct sockaddr_storage), + &host[0], sizeof(host), &port[0], sizeof(port), + NI_NUMERICHOST|NI_NUMERICSERV); + switch (ss->ss_family) { + case AF_INET: + printf(" IPv4: %s:%s\n", &host[0], &port[0]); + break; + case AF_INET6: + printf(" IPv6: %s:%s\n", &host[0], &port[0]); + break; + } client->is_finished = 1; }