summaryrefslogtreecommitdiffhomepage
path: root/src/internal
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2016-03-22 15:43:24 -0400
committermidipix <writeonce@midipix.org>2016-03-22 15:43:24 -0400
commit5d86252d01b43b40c9c34d5c12b731e85a8ffc1c (patch)
treeba7653f5cfd6ca2c6af23277951b447488de589c /src/internal
parentf5a78b094189d5e1e79ef7800f9e37a9c1540329 (diff)
downloadntapi-5d86252d01b43b40c9c34d5c12b731e85a8ffc1c.tar.bz2
ntapi-5d86252d01b43b40c9c34d5c12b731e85a8ffc1c.tar.xz
socket interfaces: sc_getpeername: initial integration.
Integration of this function into the library has been delayed since the AFD ioctl operation, while succeeding, seems to only memset the caller's address buffer, and accordingly to never copy the remote socket address to it. Callers of sc_getpeername() should therefore first check the return value for success -- which may be used as indication that the socket is connected -- and then test the returned address buffer for validity.
Diffstat (limited to 'src/internal')
-rw-r--r--src/internal/ntapi.c2
-rw-r--r--src/internal/ntapi_fnapi.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/internal/ntapi.c b/src/internal/ntapi.c
index 048a8db..e8173ce 100644
--- a/src/internal/ntapi.c
+++ b/src/internal/ntapi.c
@@ -355,6 +355,7 @@ static int32_t __fastcall __ntapi_init_once(ntapi_vtbl ** pvtbl)
__ntapi->sc_connect = __ntapi_sc_connect_v2;
__ntapi->sc_server_accept_connection = __ntapi_sc_server_accept_connection_v2;
__ntapi->sc_getsockname = __ntapi_sc_getsockname_v2;
+ __ntapi->sc_getpeername = __ntapi_sc_getpeername_v2;
} else {
__ntapi->tt_fork = __ntapi_tt_fork_v1;
__ntapi->tt_create_native_process = __ntapi_tt_create_native_process_v1;
@@ -364,6 +365,7 @@ static int32_t __fastcall __ntapi_init_once(ntapi_vtbl ** pvtbl)
__ntapi->sc_connect = __ntapi_sc_connect_v1;
__ntapi->sc_server_accept_connection = __ntapi_sc_server_accept_connection_v1;
__ntapi->sc_getsockname = __ntapi_sc_getsockname_v1;
+ __ntapi->sc_getpeername = __ntapi_sc_getpeername_v1;
}
/* internals */
diff --git a/src/internal/ntapi_fnapi.h b/src/internal/ntapi_fnapi.h
index 178f2ba..a22c659 100644
--- a/src/internal/ntapi_fnapi.h
+++ b/src/internal/ntapi_fnapi.h
@@ -198,6 +198,8 @@ ntapi_sc_connect __ntapi_sc_connect_v1;
ntapi_sc_connect __ntapi_sc_connect_v2;
ntapi_sc_getsockname __ntapi_sc_getsockname_v1;
ntapi_sc_getsockname __ntapi_sc_getsockname_v2;
+ntapi_sc_getpeername __ntapi_sc_getpeername_v1;
+ntapi_sc_getpeername __ntapi_sc_getpeername_v2;
ntapi_sc_server_accept_connection __ntapi_sc_server_accept_connection_v1;
ntapi_sc_server_accept_connection __ntapi_sc_server_accept_connection_v2;
ntapi_sc_server_duplicate_socket __ntapi_sc_server_duplicate_socket;