diff options
Diffstat (limited to 'src/assuan-support.c')
-rw-r--r-- | src/assuan-support.c | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/assuan-support.c b/src/assuan-support.c index 4646416f..d5defa8a 100644 --- a/src/assuan-support.c +++ b/src/assuan-support.c @@ -4,6 +4,7 @@ #include <assert.h> #include <stdlib.h> +#include <errno.h> #include "assuan.h" @@ -76,7 +77,8 @@ my_recvmsg (assuan_context_t ctx, assuan_fd_t fd, assuan_msghdr_t msg, int flags) { #ifdef HAVE_W32_SYSTEM - return gpg_error (GPG_ERR_NOT_IMPLEMENTED); + errno = ENOSYS; + return -1; #else return _gpgme_io_recvmsg (fd, msg, flags); #endif @@ -89,7 +91,8 @@ my_sendmsg (assuan_context_t ctx, assuan_fd_t fd, const assuan_msghdr_t msg, int flags) { #ifdef HAVE_W32_SYSTEM - return gpg_error (GPG_ERR_NOT_IMPLEMENTED); + errno = ENOSYS; + return -1; #else return _gpgme_io_sendmsg (fd, msg, flags); #endif @@ -107,14 +110,17 @@ my_spawn (assuan_context_t ctx, pid_t *r_pid, const char *name, void (*atfork) (void *opaque, int reserved), void *atforkvalue, unsigned int flags) { - gpg_error_t err; + int err; struct spawn_fd_item_s *fd_items; int i; assert (name); if (! name) - return gpg_error (GPG_ERR_NOT_IMPLEMENTED); + { + errno = ENOSYS; + return -1; + } i = 0; if (fd_child_list) @@ -126,7 +132,7 @@ my_spawn (assuan_context_t ctx, pid_t *r_pid, const char *name, i += 3; fd_items = malloc (sizeof (struct spawn_fd_item_s) * i); if (! fd_items) - return gpg_error_from_syserror (); + return -1; i = 0; if (fd_child_list) { @@ -152,7 +158,8 @@ my_spawn (assuan_context_t ctx, pid_t *r_pid, const char *name, fd_items[i].fd = -1; fd_items[i].dup_to = -1; - err = _gpgme_io_spawn (name, argv, IOSPAWN_FLAG_NOCLOSE, fd_items, r_pid); + err = _gpgme_io_spawn (name, argv, IOSPAWN_FLAG_NOCLOSE, fd_items, + atfork, atforkvalue, r_pid); if (! err) { i = 0; @@ -195,8 +202,13 @@ static int my_socketpair (assuan_context_t ctx, int namespace, int style, int protocol, assuan_fd_t filedes[2]) { - assert ("Should never happen."); - return gpg_error (GPG_ERR_NOT_IMPLEMENTED); +#ifdef HAVE_W32_SYSTEM + errno = ENOSYS; + return -1; +#else + /* FIXME: Debug output missing. */ + return __assuan_socketpair (ctx, namespace, style, protocol, filedes); +#endif } |