aboutsummaryrefslogtreecommitdiffstats
path: root/src/assuan-socket-server.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2007-07-12 10:06:26 +0000
committerWerner Koch <[email protected]>2007-07-12 10:06:26 +0000
commit35fedf1acdf8aabea7a897dad06672cce10b6a3d (patch)
tree899f9afec6ecbd4eb8fb20b8669448730cac2b7c /src/assuan-socket-server.c
parent2007-07-08 Marcus Brinkmann <[email protected]> (diff)
downloadlibassuan-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.c33
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)