diff options
author | Neal Walfield <[email protected]> | 2002-11-24 16:08:49 +0000 |
---|---|---|
committer | Neal Walfield <[email protected]> | 2002-11-24 16:08:49 +0000 |
commit | 9404e15fa162ca70ca5d2d4e6da04742171c1946 (patch) | |
tree | 9ebd1b584c2e6c7021f0b8e209db5d3be108bb31 | |
parent | 2002-11-24 Neal H. Walfield <[email protected]> (diff) | |
download | libassuan-9404e15fa162ca70ca5d2d4e6da04742171c1946.tar.gz libassuan-9404e15fa162ca70ca5d2d4e6da04742171c1946.zip |
2002-11-24 Neal H. Walfield <[email protected]>
* assuan-domain-connect.c (do_finish): Remove.
(_assuan_domain_init): Use default handlers where possible.
Add an assert and update comments.
* assuan-domain-server.c (accept_connection): Remove.
(assuan_init_domain_server): Use default handlers where possible.
Put the server in pipe mode: it can only be used by a single
client.
-rw-r--r-- | src/ChangeLog | 10 | ||||
-rw-r--r-- | src/assuan-domain-connect.c | 22 | ||||
-rw-r--r-- | src/assuan-domain-server.c | 10 |
3 files changed, 23 insertions, 19 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 2a2355f..eeb286d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,15 @@ 2002-11-24 Neal H. Walfield <[email protected]> + * assuan-domain-connect.c (do_finish): Remove. + (_assuan_domain_init): Use default handlers where possible. + Add an assert and update comments. + * assuan-domain-server.c (accept_connection): Remove. + (assuan_init_domain_server): Use default handlers where possible. + Put the server in pipe mode: it can only be used by a single + client. + +2002-11-24 Neal H. Walfield <[email protected]> + * assuan.h: Add prototype for assuan_domain_connect and assuan_init_domain_server. * assuan-defs.h: Include <unistd.h>. diff --git a/src/assuan-domain-connect.c b/src/assuan-domain-connect.c index 86f85e2..d50ba1e 100644 --- a/src/assuan-domain-connect.c +++ b/src/assuan-domain-connect.c @@ -49,12 +49,6 @@ #define LOGERRORX(a) fputs ((a), stderr) #endif -static int -do_finish (ASSUAN_CONTEXT ctx) -{ - return 0; -} - static void do_deinit (ASSUAN_CONTEXT ctx) { @@ -69,7 +63,6 @@ do_deinit (ASSUAN_CONTEXT ctx) free (ctx->domainbuffer); } - /* XXX: Do we want to do this? Most likely. */ unlink (ctx->myaddr.sun_path); } @@ -191,7 +184,7 @@ domain_reader (ASSUAN_CONTEXT ctx, void *buf, size_t buflen) return len; } -/* Write to the pipe server. */ +/* Write to the domain server. */ static ssize_t domain_writer (ASSUAN_CONTEXT ctx, const void *buf, size_t buflen) { @@ -245,8 +238,11 @@ _assuan_domain_init (ASSUAN_CONTEXT *r_ctx, /* Save it in case we need it later. */ ctx->pid = peer; + + /* Override the default (NOP) handlers. */ ctx->deinit_handler = do_deinit; - ctx->finish_handler = do_finish; + + /* Setup the socket. */ fd = socket (PF_LOCAL, SOCK_DGRAM, 0); if (fd == -1) @@ -258,8 +254,10 @@ _assuan_domain_init (ASSUAN_CONTEXT *r_ctx, ctx->inbound.fd = fd; ctx->outbound.fd = fd; - ctx->io = &io; + /* And the io buffers. */ + + ctx->io = &io; ctx->domainbuffer = 0; ctx->domainbufferoffset = 0; ctx->domainbuffersize = 0; @@ -270,9 +268,11 @@ _assuan_domain_init (ASSUAN_CONTEXT *r_ctx, for (tries = 0; tries < TMP_MAX; tries ++) { char *p; - /* XXX: L_tmpnam must be shorter than sizeof (sun_path)! */ char buf[L_tmpnam]; + /* XXX: L_tmpnam must be shorter than sizeof (sun_path)! */ + assert (L_tmpnam < sizeof (ctx->myaddr.sun_path)); + p = tmpnam (buf); if (! p) { diff --git a/src/assuan-domain-server.c b/src/assuan-domain-server.c index 506ee05..b62b140 100644 --- a/src/assuan-domain-server.c +++ b/src/assuan-domain-server.c @@ -26,13 +26,6 @@ #include "assuan-defs.h" -static int -accept_connection (ASSUAN_CONTEXT ctx) -{ - /* NOP. */ - return 0; -} - /* Initialize a server. */ AssuanError assuan_init_domain_server (ASSUAN_CONTEXT *r_ctx, @@ -46,7 +39,8 @@ assuan_init_domain_server (ASSUAN_CONTEXT *r_ctx, return err; (*r_ctx)->is_server = 1; - (*r_ctx)->accept_handler = accept_connection; + /* A domain server can only be used once. */ + (*r_ctx)->pipe_mode = 1; return 0; } |