aboutsummaryrefslogtreecommitdiffstats
path: root/tests/fdpassing.c
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2009-09-21 01:08:08 +0000
committerMarcus Brinkmann <[email protected]>2009-09-21 01:08:08 +0000
commitcd87e56dac64c74d45f42838fc1049848f8aadcd (patch)
treeff70f9a6e8601305d06bebb55709350d3d8dbae4 /tests/fdpassing.c
parent2009-09-08 Marcus Brinkmann <[email protected]> (diff)
downloadlibassuan-cd87e56dac64c74d45f42838fc1049848f8aadcd.tar.gz
libassuan-cd87e56dac64c74d45f42838fc1049848f8aadcd.zip
2009-09-19 Marcus Brinkmann <[email protected]>
* tests/fdpassing.c: Update to new API. * configure.ac: Check for stdint.h and inttypes.h. Invoke AC_TYPE_UINTPTR_T. doc/ 2009-09-21 Marcus Brinkmann <[email protected]> * assuan.texi: Update to new API. src/ 2009-09-19 Marcus Brinkmann <[email protected]> * src/libassuan.vers, src/libassuan.def: Update to new API. * assuan.c, context.c, system.c, debug.c: New files. * Makefile.am (common_sources): Add assuan.c, context.c, system.c and debug.c. * assuan.h: Include <stdarg.h>. Fix inclusion of <gpg-error.h>. (_ASSUAN_EXT_SYM_PREFIX, _ASSUAN_PREFIX1, _ASSUAN_PREFIX2) (_ASSUAN_PREFIX): Remove support for renaming the whole library, now that we have a stable shared library interface that can evolve to cover all needs (particularly those of GPGME). (assuan_malloc_hooks, assuan_malloc_hooks_t, assuan_log_cb_t) (assuan_io_monitor_t): New types. (ASSUAN_LOG_INIT, ASSUAN_LOG_CTX, ASSUAN_LOG_ENGINE) (ASSUAN_LOG_DATA, ASSUAN_LOG_SYSIO, ASSUAN_IO_FROM_PEER) (ASSUAN_IO_TO_PEER, ASSUAN_IO_MONITOR_NOLOG) (ASSUAN_IO_MONITOR_IGNORE): New symbols. (assuan_set_gpg_err_source, assuan_get_gpg_err_source) (assuan_get_malloc_hooks, assuan_set_log_cb, assuan_get_log_cb) (assuan_new, assuan_new_ext, assuan_release): New function prototypes. (assuan_init_pipe_server, assuan_init_socket_server) (assuan_init_socket_server_ext, assuan_pipe_connect) (assuan_pipe_connect_ext, assuan_socket_connect) (assuan_socket_connect_ext): Take a context argument instead of pointer to context. (assuan_deinit_server, assuan_disconnect) (assuan_set_assuan_err_source): Remove function prototypes. * assuan-defs.h (ASSUAN_GCC_A_PURE): Moved here from XXX (_assuan_error): New macro. (struct assuan_context_s): New members err_source, w32_strerror, malloc_hooks, log_cb, log_cb_data: New members. Move confidential into flags. New member engine. (_assuan_log_handler, _assuan_error_default, _assuan_disconnect): New prototypes. (_assuan_new_context): Remove prototype. (_assuan_malloc, _assuan_calloc, _assuan_realloc, _assuan_free): Add context argument to prototype. * assuan-util.c (alloc_func, realloc_func, free_func): Remove global variables. (assuan_set_malloc_hooks, _assuan_malloc, _assuan_realloc) (_assuan_calloc, _assuan_free, assuan_set_pointer) (assuan_get_pointer, assuan_begin_confidential) (assuan_end_confidential, assuan_set_io_monitor, assuan_set_flag) (assuan_get_flag): Move functions to ... * assuan-client.c: Add ctx argument to all invocations of _assuan_error. * assuan-socket-server.c, assuan-socket-connect.c, assuan-connect.c: Likewise. * assuan-buffer.c: Likewise. Also update access to confidential flag. * assuan-uds.c: Add ctx argument to all invocations of _assuan_malloc, _assuan_realloc, _assuan_calloc, _assuan_free and _assuan_error. * assuan_listen.c, assuan-inquire.c, assuan-handler.c: Likewise. * assuan-error.c (err_source): Remove global variable. (assuan_set_assuan_err_source): Removed function. (_assuan_w32_strerror): Moved here from assuan-logging.c and made thread-safe. (_assuan_error): Removed function (is now macro). * assuan-handler.c: Update access to confidential flag. * assuan-socket-server.c (accept_connection_bottom): Update access to confidential flag in context. (assuan_init_socket_server, assuan_init_socket_server_ext): Take ctx argument instead of pointer to ctx. * assuan-inquire.c (init_membuf, put_membuf, get_membuf) (free_membuf): Take context argument and change all callers. * assuan-socket-server.c (assuan_socket_connect) (assuan_socket_connect_ext): Take ctx argument instead of pointer to ctx. * assuan-pipe-connect.c (initial_handshake, pipe_connect_unix) (socketpair_connect, assuan_pipe_connect) (assuan_pipe_connect_ext): Likewise. (socketpair_connect): Now that ctx is not a pointer argument anymore, return if we are server or client in the argv argument. * assuan-logging.c (_assuan_log_handler): New function. (_assuan_w32_strerror): Move to assuan-error.c * assuan-connect.c (assuan_disconnect): Renamed to ... (_assuan_disconnect): ... this. * assuan-pipe-server.c (_assuan_new_context): Removed function. (assuan_init_pipe_server): Take ctx argument instead of pointer to ctx. (_assuan_release_context): Removed function. (_assuan_deinit_server): Reimplement.
Diffstat (limited to 'tests/fdpassing.c')
-rw-r--r--tests/fdpassing.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/tests/fdpassing.c b/tests/fdpassing.c
index fa26353..7197ff7 100644
--- a/tests/fdpassing.c
+++ b/tests/fdpassing.c
@@ -75,7 +75,7 @@ register_commands (assuan_context_t ctx)
static struct
{
const char *name;
- int (*handler) (assuan_context_t, char *line);
+ gpg_error_t (*handler) (assuan_context_t, char *line);
} table[] =
{
{ "ECHO", cmd_echo },
@@ -104,7 +104,11 @@ server (void)
log_info ("server started\n");
- rc = assuan_init_pipe_server (&ctx, NULL);
+ rc = assuan_new (&ctx);
+ if (rc)
+ log_fatal ("assuan_new failed: %s\n", gpg_strerror (rc));
+
+ rc = assuan_init_pipe_server (ctx, NULL);
if (rc)
log_fatal ("assuan_init_pipe_server failed: %s\n", gpg_strerror (rc));
@@ -132,7 +136,7 @@ server (void)
log_error ("assuan_process failed: %s\n", gpg_strerror (rc));
}
- assuan_deinit_server (ctx);
+ assuan_release (ctx);
}
@@ -193,7 +197,7 @@ client (assuan_context_t ctx, const char *fname)
/* Give us some time to check with lsof that all descriptors are closed. */
/* sleep (10); */
- assuan_disconnect (ctx);
+ assuan_release (ctx);
return 0;
}
@@ -210,7 +214,7 @@ main (int argc, char **argv)
{
int last_argc = -1;
assuan_context_t ctx;
- int err;
+ gpg_error_t err;
int no_close_fds[2];
const char *arglist[10];
int is_server = 0;
@@ -260,7 +264,6 @@ main (int argc, char **argv)
assuan_set_assuan_log_prefix (log_prefix);
- assuan_set_assuan_log_stream (stderr);
if (is_server)
{
@@ -269,6 +272,8 @@ main (int argc, char **argv)
}
else
{
+ const char *loc;
+
no_close_fds[0] = 2;
no_close_fds[1] = -1;
if (with_exec)
@@ -278,8 +283,13 @@ main (int argc, char **argv)
arglist[2] = verbose? "--verbose":NULL;
arglist[3] = NULL;
}
- err = assuan_pipe_connect_ext (&ctx, with_exec? "./fdpassing":NULL,
- with_exec? arglist :NULL,
+
+ err = assuan_new (&ctx);
+ if (err)
+ log_fatal ("assuan_new failed: %s\n", gpg_strerror (err));
+
+ err = assuan_pipe_connect_ext (ctx, with_exec? "./fdpassing":NULL,
+ with_exec ? arglist : &loc,
no_close_fds, NULL, NULL, 1);
if (err)
{
@@ -287,7 +297,7 @@ main (int argc, char **argv)
return 1;
}
- if (!ctx)
+ if (!with_exec && loc[0] == 's')
{
server ();
log_info ("server finished\n");
@@ -297,12 +307,12 @@ main (int argc, char **argv)
if (client (ctx, fname))
{
log_info ("waiting for server to terminate...\n");
- assuan_disconnect (ctx);
+ assuan_release (ctx);
}
log_info ("client finished\n");
}
}
- return errorcount? 1:0;
+ return errorcount ? 1 : 0;
}