X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvcl-ldpreload%2Fsrc%2Flibvcl-ldpreload%2Fvcom_socket.c;h=96108afe0f71eb747eaecbd165baeab2e62a71f4;hb=9c4b5b28b1c1df0c100b377a2f5bfc07bd9a0b2e;hp=1686c4fc3cff2b98d5d57e1b4930e48ad89360e0;hpb=bd187a8272762d64f1cbe12da7c82fc86dcbe2bf;p=vpp.git diff --git a/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket.c b/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket.c index 1686c4fc3cf..96108afe0f7 100644 --- a/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket.c +++ b/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket.c @@ -1256,24 +1256,17 @@ vcom_socket_bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len) } rv = vppcom_session_bind (vsock->sid, &ep); - /* TBD: remove libc_bind code snippet - * once vppcom implements vppcom_session_getsockname */ - if (rv == 0) - { - rv = libc_bind (__fd, __addr, __len); - if (rv != 0) - { - rv = -errno; - } - } return rv; } int vppcom_session_getsockname (int sid, vppcom_endpt_t * ep) { - /* TBD: move it to vppcom */ - return 0; + int rv; + uint32_t size = sizeof (*ep); + + rv = vppcom_session_attr (sid, VPPCOM_ATTR_GET_LCL_ADDR, ep, &size); + return rv; } int @@ -1305,18 +1298,6 @@ vcom_socket_getsockname (int __fd, __SOCKADDR_ARG __addr, return -EINVAL; } - /* TBD: remove libc_getsockname code snippet - * once vppcom implements vppcom_session_getsockname */ - rv = libc_getsockname (__fd, __addr, __len); - if (rv != 0) - { - rv = -errno; - return rv; - } - - /* TBD: use the below code snippet when vppcom - * implements vppcom_session_getsockname */ -#if 0 vppcom_endpt_t ep; ep.ip = (u8 *) & ((const struct sockaddr_in *) __addr)->sin_addr; rv = vppcom_session_getsockname (vsock->sid, &ep); @@ -1342,7 +1323,6 @@ vcom_socket_getsockname (int __fd, __SOCKADDR_ARG __addr, } } } -#endif return rv; } @@ -1394,8 +1374,11 @@ vcom_socket_connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len) int vppcom_session_getpeername (int sid, vppcom_endpt_t * ep) { - /* TBD: move it to vppcom */ - return 0; + int rv; + uint32_t size = sizeof (*ep); + + rv = vppcom_session_attr (sid, VPPCOM_ATTR_GET_PEER_ADDR, ep, &size); + return rv; } int @@ -1427,32 +1410,6 @@ vcom_socket_getpeername (int __fd, __SOCKADDR_ARG __addr, return -EINVAL; } - /* DAW: hack to allow iperf3 to be happy w/ getpeername output */ - { - uint8_t *a; - ((struct sockaddr_in *) __addr)->sin_family = AF_INET; - ((struct sockaddr_in *) __addr)->sin_port = 0x1000; - a = (uint8_t *) & ((struct sockaddr_in *) __addr)->sin_addr; - a[0] = 0x7f; - a[1] = 0x00; - a[2] = 0x00; - a[3] = 0x01; - *__len = sizeof (struct sockaddr_in); - return 0; - } - - /* TBD: remove libc_getpeername code snippet - * once vppcom implements vppcom_session_getpeername */ - rv = libc_getpeername (__fd, __addr, __len); - if (rv != 0) - { - rv = -errno; - return rv; - } - - /* TBD: use the below code snippet when vppcom - * implements vppcom_session_getpeername */ -#if 0 vppcom_endpt_t ep; ep.ip = (u8 *) & ((const struct sockaddr_in *) __addr)->sin_addr; rv = vppcom_session_getpeername (vsock->sid, &ep); @@ -1478,7 +1435,6 @@ vcom_socket_getpeername (int __fd, __SOCKADDR_ARG __addr, } } } -#endif return rv; } @@ -1775,12 +1731,7 @@ vppcom_getsockopt (int __sid, int __level, int __optname, { /* 1. for socket level options that are NOT socket attributes * and that has corresponding vpp options get from vppcom */ -#if 0 return 0; -#endif - - /* 2. unhandled options */ - return -ENOPROTOOPT; } int