Skip to content

Commit 114890e

Browse files
committed
Implement xlio_socket_geetsockname()
Signed-off-by: Dmytro Podgornyi <[email protected]>
1 parent b94b78b commit 114890e

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

src/core/sock/sock-extra.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,7 @@ struct xlio_api_t *extra_api()
382382
SET_EXTRA_API(xlio_socket_destroy, xlio_socket_destroy, XLIO_EXTRA_API_XLIO_SOCKET);
383383
SET_EXTRA_API(xlio_socket_update, xlio_socket_update, XLIO_EXTRA_API_XLIO_SOCKET);
384384
SET_EXTRA_API(xlio_socket_setsockopt, xlio_socket_setsockopt, XLIO_EXTRA_API_XLIO_SOCKET);
385+
SET_EXTRA_API(xlio_socket_getsockname, xlio_socket_getsockname, XLIO_EXTRA_API_XLIO_SOCKET);
385386
SET_EXTRA_API(xlio_socket_getpeername, xlio_socket_getpeername, XLIO_EXTRA_API_XLIO_SOCKET);
386387
SET_EXTRA_API(xlio_socket_bind, xlio_socket_bind, XLIO_EXTRA_API_XLIO_SOCKET);
387388
SET_EXTRA_API(xlio_socket_connect, xlio_socket_connect, XLIO_EXTRA_API_XLIO_SOCKET);
@@ -530,6 +531,13 @@ extern "C" int xlio_socket_setsockopt(xlio_socket_t sock, int level, int optname
530531
return rc;
531532
}
532533

534+
extern "C" int xlio_socket_getsockname(xlio_socket_t sock, struct sockaddr *addr,
535+
socklen_t *addrlen)
536+
{
537+
sockinfo_tcp *si = reinterpret_cast<sockinfo_tcp *>(sock);
538+
return si->getsockname(addr, addrlen);
539+
}
540+
533541
extern "C" int xlio_socket_getpeername(xlio_socket_t sock, struct sockaddr *addr,
534542
socklen_t *addrlen)
535543
{

src/core/xlio.h

+1
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ int xlio_socket_update(xlio_socket_t sock, unsigned flags, uintptr_t userdata_sq
451451

452452
int xlio_socket_setsockopt(xlio_socket_t sock, int level, int optname, const void *optval,
453453
socklen_t optlen);
454+
int xlio_socket_getsockname(xlio_socket_t sock, struct sockaddr *addr, socklen_t *addrlen);
454455
int xlio_socket_getpeername(xlio_socket_t sock, struct sockaddr *addr, socklen_t *addrlen);
455456

456457
int xlio_socket_bind(xlio_socket_t sock, const struct sockaddr *addr, socklen_t addrlen);

src/core/xlio_extra.h

+1
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ struct __attribute__((packed)) xlio_api_t {
331331
int (*xlio_socket_update)(xlio_socket_t sock, unsigned flags, uintptr_t userdata_sq);
332332
int (*xlio_socket_setsockopt)(xlio_socket_t sock, int level, int optname, const void *optval,
333333
socklen_t optlen);
334+
int (*xlio_socket_getsockname)(xlio_socket_t sock, struct sockaddr *addr, socklen_t *addrlen);
334335
int (*xlio_socket_getpeername)(xlio_socket_t sock, struct sockaddr *addr, socklen_t *addrlen);
335336
int (*xlio_socket_bind)(xlio_socket_t sock, const struct sockaddr *addr, socklen_t addrlen);
336337
int (*xlio_socket_connect)(xlio_socket_t sock, const struct sockaddr *to, socklen_t tolen);

0 commit comments

Comments
 (0)