diff options
author | Werner Koch <[email protected]> | 2007-07-12 10:06:26 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2007-07-12 10:06:26 +0000 |
commit | 35fedf1acdf8aabea7a897dad06672cce10b6a3d (patch) | |
tree | 899f9afec6ecbd4eb8fb20b8669448730cac2b7c /src/assuan-socket-server.c | |
parent | 2007-07-08 Marcus Brinkmann <[email protected]> (diff) | |
download | libassuan-35fedf1acdf8aabea7a897dad06672cce10b6a3d.tar.gz libassuan-35fedf1acdf8aabea7a897dad06672cce10b6a3d.zip |
Introduced new type for better support of W32 HADNLES vs. file descriptors.
Diffstat (limited to 'src/assuan-socket-server.c')
-rw-r--r-- | src/assuan-socket-server.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/src/assuan-socket-server.c b/src/assuan-socket-server.c index abd4e56..97cddec 100644 --- a/src/assuan-socket-server.c +++ b/src/assuan-socket-server.c @@ -45,7 +45,7 @@ static struct assuan_io io = { _assuan_simple_read, static int accept_connection_bottom (assuan_context_t ctx) { - int fd = ctx->connected_fd; + assuan_fd_t fd = ctx->connected_fd; ctx->peercred.valid = 0; #ifdef HAVE_SO_PEERCRED @@ -87,12 +87,13 @@ accept_connection_bottom (assuan_context_t ctx) static int accept_connection (assuan_context_t ctx) { - int fd; + assuan_fd_t fd; struct sockaddr_un clnt_addr; socklen_t len = sizeof clnt_addr; - fd = accept (ctx->listen_fd, (struct sockaddr*)&clnt_addr, &len ); - if (fd == -1) + fd = SOCKET2HANDLE(accept (HANDLE2SOCKET(ctx->listen_fd), + (struct sockaddr*)&clnt_addr, &len )); + if (fd == ASSUAN_INVALID_FD) { ctx->os_errno = errno; return _assuan_error (ASSUAN_Accept_Failed); @@ -105,12 +106,12 @@ accept_connection (assuan_context_t ctx) static int finish_connection (assuan_context_t ctx) { - if (ctx->inbound.fd != -1) + if (ctx->inbound.fd != ASSUAN_INVALID_FD) { _assuan_close (ctx->inbound.fd); } - ctx->inbound.fd = -1; - ctx->outbound.fd = -1; + ctx->inbound.fd = ASSUAN_INVALID_FD; + ctx->outbound.fd = ASSUAN_INVALID_FD; return 0; } @@ -124,7 +125,7 @@ deinit_socket_server (assuan_context_t ctx) /* Initialize a server for the socket LISTEN_FD which has already be put into listen mode */ int -assuan_init_socket_server (assuan_context_t *r_ctx, int listen_fd) +assuan_init_socket_server (assuan_context_t *r_ctx, assuan_fd_t listen_fd) { return assuan_init_socket_server_ext (r_ctx, listen_fd, 0); } @@ -132,7 +133,7 @@ assuan_init_socket_server (assuan_context_t *r_ctx, int listen_fd) /* Initialize a server using the already accepted socket FD. This fucntion is deprecated. */ int -assuan_init_connected_socket_server (assuan_context_t *r_ctx, int fd) +assuan_init_connected_socket_server (assuan_context_t *r_ctx, assuan_fd_t fd) { return assuan_init_socket_server_ext (r_ctx, fd, 2); } @@ -143,7 +144,7 @@ assuan_init_connected_socket_server (assuan_context_t *r_ctx, int fd) 1 - FD has already been accepted. */ int -assuan_init_socket_server_ext (assuan_context_t *r_ctx, int fd, +assuan_init_socket_server_ext (assuan_context_t *r_ctx, assuan_fd_t fd, unsigned int flags) { assuan_context_t ctx; @@ -156,21 +157,21 @@ assuan_init_socket_server_ext (assuan_context_t *r_ctx, int fd, ctx->is_server = 1; if ((flags & 2)) ctx->pipe_mode = 1; /* We want a second accept to indicate EOF. */ - ctx->input_fd = -1; - ctx->output_fd = -1; + ctx->input_fd = ASSUAN_INVALID_FD; + ctx->output_fd = ASSUAN_INVALID_FD; - ctx->inbound.fd = -1; - ctx->outbound.fd = -1; + ctx->inbound.fd = ASSUAN_INVALID_FD; + ctx->outbound.fd = ASSUAN_INVALID_FD; if ((flags & 2)) { - ctx->listen_fd = -1; + ctx->listen_fd = ASSUAN_INVALID_FD; ctx->connected_fd = fd; } else { ctx->listen_fd = fd; - ctx->connected_fd = -1; + ctx->connected_fd = ASSUAN_INVALID_FD; } ctx->deinit_handler = (flags & 1)? _assuan_uds_deinit:deinit_socket_server; ctx->accept_handler = ((flags & 2) |