__assuan_usleep (ctx, usec);
}
+
/* Create a pipe with an inheritable end. */
static int
my_pipe (assuan_context_t ctx, assuan_fd_t fds[2], int inherit_idx)
{
- return _gpgme_io_pipe (fds, inherit_idx);
+ int res;
+ int gfds[2];
+
+ res = _gpgme_io_pipe (gfds, inherit_idx);
+
+ /* For now... */
+ fds[0] = (assuan_fd_t) gfds[0];
+ fds[1] = (assuan_fd_t) gfds[1];
+
+ return res;
}
static int
my_close (assuan_context_t ctx, assuan_fd_t fd)
{
- return _gpgme_io_close (fd);
+ return _gpgme_io_close ((int) fd);
}
static ssize_t
my_read (assuan_context_t ctx, assuan_fd_t fd, void *buffer, size_t size)
{
- return _gpgme_io_read (fd, buffer, size);
+ return _gpgme_io_read ((int) fd, buffer, size);
}
static ssize_t
my_write (assuan_context_t ctx, assuan_fd_t fd, const void *buffer, size_t size)
{
- return _gpgme_io_write (fd, buffer, size);
+ return _gpgme_io_write ((int) fd, buffer, size);
}
int flags)
{
#ifdef HAVE_W32_SYSTEM
- errno = ENOSYS;
+ gpg_err_set_errno (ENOSYS);
return -1;
#else
- return _gpgme_io_recvmsg (fd, msg, flags);
+ return _gpgme_io_recvmsg ((int) fd, msg, flags);
#endif
}
int flags)
{
#ifdef HAVE_W32_SYSTEM
- errno = ENOSYS;
+ gpg_err_set_errno (ENOSYS);
return -1;
#else
- return _gpgme_io_sendmsg (fd, msg, flags);
+ return _gpgme_io_sendmsg ((int) fd, msg, flags);
#endif
}
if (! name)
{
- errno = ENOSYS;
+ gpg_err_set_errno (ENOSYS);
return -1;
}
}
/* fd_in, fd_out, terminator */
i += 3;
- fd_items = malloc (sizeof (struct spawn_fd_item_s) * i);
+ fd_items = calloc (i, sizeof (struct spawn_fd_item_s));
if (! fd_items)
return -1;
i = 0;
{
while (fd_child_list[i] != ASSUAN_INVALID_FD)
{
- fd_items[i].fd = fd_child_list[i];
+ fd_items[i].fd = (int) fd_child_list[i];
fd_items[i].dup_to = -1;
i++;
}
}
if (fd_in != ASSUAN_INVALID_FD)
{
- fd_items[i].fd = fd_in;
+ fd_items[i].fd = (int) fd_in;
fd_items[i].dup_to = 0;
i++;
}
if (fd_out != ASSUAN_INVALID_FD)
{
- fd_items[i].fd = fd_out;
+ fd_items[i].fd = (int) fd_out;
fd_items[i].dup_to = 1;
i++;
}
fd_items[i].fd = -1;
fd_items[i].dup_to = -1;
- err = _gpgme_io_spawn (name, argv, IOSPAWN_FLAG_NOCLOSE, fd_items,
- atfork, atforkvalue, r_pid);
+ err = _gpgme_io_spawn (name, (char*const*)argv, IOSPAWN_FLAG_NOCLOSE,
+ fd_items, atfork, atforkvalue, r_pid);
if (! err)
{
i = 0;
{
while (fd_child_list[i] != ASSUAN_INVALID_FD)
{
- fd_child_list[i] = fd_items[i].peer_name;
+ fd_child_list[i] = (assuan_fd_t) fd_items[i].peer_name;
i++;
}
}
int protocol, assuan_fd_t filedes[2])
{
#ifdef HAVE_W32_SYSTEM
- errno = ENOSYS;
+ gpg_err_set_errno (ENOSYS);
return -1;
#else
/* FIXME: Debug output missing. */
}
+static int
+my_socket (assuan_context_t ctx, int namespace, int style, int protocol)
+{
+ return _gpgme_io_socket (namespace, style, protocol);
+}
+
+
+static int
+my_connect (assuan_context_t ctx, int sock, struct sockaddr *addr,
+ socklen_t length)
+{
+ return _gpgme_io_connect (sock, addr, length);
+}
+
+
struct assuan_system_hooks _gpgme_assuan_system_hooks =
{
ASSUAN_SYSTEM_HOOKS_VERSION,
my_sendmsg,
my_spawn,
my_waitpid,
- my_socketpair
+ my_socketpair,
+ my_socket,
+ my_connect
};