qt: Add job for tofupolicy
[gpgme.git] / src / assuan-support.c
index f49ab32..2cfdc35 100644 (file)
@@ -26,6 +26,10 @@ int
 _gpgme_assuan_log_cb (assuan_context_t ctx, void *hook,
                      unsigned int cat, const char *msg)
 {
+  (void)ctx;
+  (void)hook;
+  (void)cat;
+
   if (msg == NULL)
     return 1;
 
@@ -49,6 +53,8 @@ my_pipe (assuan_context_t ctx, assuan_fd_t fds[2], int inherit_idx)
   int res;
   int gfds[2];
 
+  (void)ctx;
+
   res = _gpgme_io_pipe (gfds, inherit_idx);
 
   /* For now... */
@@ -64,20 +70,23 @@ my_pipe (assuan_context_t ctx, assuan_fd_t fds[2], int inherit_idx)
 static int
 my_close (assuan_context_t ctx, assuan_fd_t fd)
 {
+  (void)ctx;
   return _gpgme_io_close ((int) fd);
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 my_read (assuan_context_t ctx, assuan_fd_t fd, void *buffer, size_t size)
 {
+  (void)ctx;
   return _gpgme_io_read ((int) fd, buffer, size);
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 my_write (assuan_context_t ctx, assuan_fd_t fd, const void *buffer, size_t size)
 {
+  (void)ctx;
   return _gpgme_io_write ((int) fd, buffer, size);
 }
 
@@ -86,6 +95,7 @@ static int
 my_recvmsg (assuan_context_t ctx, assuan_fd_t fd, assuan_msghdr_t msg,
            int flags)
 {
+  (void)ctx;
 #ifdef HAVE_W32_SYSTEM
   gpg_err_set_errno (ENOSYS);
   return -1;
@@ -100,6 +110,7 @@ static int
 my_sendmsg (assuan_context_t ctx, assuan_fd_t fd, const assuan_msghdr_t msg,
            int flags)
 {
+  (void)ctx;
 #ifdef HAVE_W32_SYSTEM
   gpg_err_set_errno (ENOSYS);
   return -1;
@@ -124,6 +135,9 @@ my_spawn (assuan_context_t ctx, pid_t *r_pid, const char *name,
   struct spawn_fd_item_s *fd_items;
   int i;
 
+  (void)ctx;
+  (void)flags;
+
   assert (name);
 
   if (! name)
@@ -168,7 +182,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, (char*const*)argv, IOSPAWN_FLAG_NOCLOSE,
+  err = _gpgme_io_spawn (name, (char*const*)argv,
+                         (IOSPAWN_FLAG_NOCLOSE | IOSPAWN_FLAG_DETACHED),
                         fd_items, atfork, atforkvalue, r_pid);
   if (! err)
     {
@@ -193,6 +208,7 @@ static pid_t
 my_waitpid (assuan_context_t ctx, pid_t pid,
            int nowait, int *status, int options)
 {
+  (void)ctx;
 #ifdef HAVE_W32_SYSTEM
   CloseHandle ((HANDLE) pid);
 #else
@@ -200,7 +216,7 @@ my_waitpid (assuan_context_t ctx, pid_t pid,
      NOWAIT in POSIX systems just means the caller already did the
      waitpid for this child.  */
   if (! nowait)
-    return _gpgme_ath_waitpid (pid, status, options); 
+    return _gpgme_ath_waitpid (pid, status, options);
 #endif
   return 0;
 }
@@ -222,6 +238,29 @@ my_socketpair (assuan_context_t ctx, int namespace, int style,
 }
 
 
+static int
+my_socket (assuan_context_t ctx, int namespace, int style, int protocol)
+{
+  (void)ctx;
+  return _gpgme_io_socket (namespace, style, protocol);
+}
+
+
+static int
+my_connect (assuan_context_t ctx, int sock, struct sockaddr *addr,
+           socklen_t length)
+{
+  (void)ctx;
+  return _gpgme_io_connect (sock, addr, length);
+}
+
+
+/* Note for Windows: Ignore the incompatible pointer type warning for
+   my_read and my_write.  Mingw has been changed to use int for
+   ssize_t on 32 bit systems while we use long.  For 64 bit we use
+   int64_t while mingw uses __int64_t.  It doe not matter at all
+   because under Windows long and int are both 32 bit even on 64
+   bit.  */
 struct assuan_system_hooks _gpgme_assuan_system_hooks =
   {
     ASSUAN_SYSTEM_HOOKS_VERSION,
@@ -234,6 +273,8 @@ struct assuan_system_hooks _gpgme_assuan_system_hooks =
     my_sendmsg,
     my_spawn,
     my_waitpid,
-    my_socketpair
+    my_socketpair,
+    my_socket,
+    my_connect
   };