aboutsummaryrefslogtreecommitdiffstats
path: root/src/assuan-socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/assuan-socket.c')
-rw-r--r--src/assuan-socket.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/assuan-socket.c b/src/assuan-socket.c
index 3fefc39..0588dc2 100644
--- a/src/assuan-socket.c
+++ b/src/assuan-socket.c
@@ -989,6 +989,24 @@ use_socks (struct sockaddr *addr)
}
+static assuan_fd_t
+_assuan_sock_accept (assuan_context_t ctx, assuan_fd_t sockfd,
+ struct sockaddr *addr, socklen_t *p_addrlen)
+{
+ (void)ctx;
+#ifdef HAVE_W32_SYSTEM
+ assuan_fd_t res;
+
+ res = SOCKET2HANDLE (accept (HANDLE2SOCKET (sockfd), addr, p_addrlen));
+ if (res == SOCKET2HANDLE (INVALID_SOCKET))
+ gpg_err_set_errno (_assuan_sock_wsa2errno (WSAGetLastError ()));
+ return res;
+#else
+ return accept (sockfd, addr, p_addrlen);
+#endif
+}
+
+
int
_assuan_sock_connect (assuan_context_t ctx, assuan_fd_t sockfd,
struct sockaddr *addr, int addrlen)
@@ -1483,6 +1501,13 @@ assuan_sock_get_flag (assuan_fd_t sockfd, const char *name, int *r_value)
return _assuan_sock_get_flag (sock_ctx, sockfd, name, r_value);
}
+assuan_fd_t
+assuan_sock_accept (assuan_fd_t sockfd, struct sockaddr *addr,
+ socklen_t *p_addrlen)
+{
+ return _assuan_sock_accept (sock_ctx, sockfd, addr, p_addrlen);
+}
+
int
assuan_sock_connect (assuan_fd_t sockfd, struct sockaddr *addr, int addrlen)
{