diff options
Diffstat (limited to '')
-rw-r--r-- | assuan/assuan-pipe-server.c | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/assuan/assuan-pipe-server.c b/assuan/assuan-pipe-server.c index 58f981a09..c283a925f 100644 --- a/assuan/assuan-pipe-server.c +++ b/assuan/assuan-pipe-server.c @@ -24,6 +24,26 @@ #include "assuan-defs.h" +static void +deinit_pipe_server (ASSUAN_CONTEXT ctx) +{ + /* nothing to do for this simple server */ +} + +static int +accept_connection (ASSUAN_CONTEXT ctx) +{ + /* This is a NOP for a pipe server */ + return 0; +} + +static int +finish_connection (ASSUAN_CONTEXT ctx) +{ + /* This is a NOP for a pipe server */ + return 0; +} + int assuan_init_pipe_server (ASSUAN_CONTEXT *r_ctx, int filedes[2]) @@ -43,6 +63,10 @@ assuan_init_pipe_server (ASSUAN_CONTEXT *r_ctx, int filedes[2]) ctx->outbound.fd = filedes[1]; ctx->pipe_mode = 1; + ctx->listen_fd = -1; + ctx->deinit_handler = deinit_pipe_server; + ctx->accept_handler = accept_connection; + ctx->finish_handler = finish_connection; rc = _assuan_register_std_commands (ctx); if (rc) @@ -52,11 +76,16 @@ assuan_init_pipe_server (ASSUAN_CONTEXT *r_ctx, int filedes[2]) return rc; } + void -assuan_deinit_pipe_server (ASSUAN_CONTEXT ctx) +assuan_deinit_server (ASSUAN_CONTEXT ctx) { if (ctx) { + /* We use this function pointer to avoid linking other server + when not needed but still allow for a generic deinit function */ + ctx->deinit_handler (ctx); + ctx->deinit_handler = NULL; xfree (ctx->hello_line); xfree (ctx->okay_line); xfree (ctx); @@ -70,5 +99,3 @@ assuan_deinit_pipe_server (ASSUAN_CONTEXT ctx) - - |