[Pkg-gnupg-commit] [libassuan] 142/437: * mkerrors: Include config.h into assuan-errors.c. This is required so that assuan.h knows about the W32 macro.

Eric Dorland eric at moszumanska.debian.org
Fri May 22 05:33:35 UTC 2015


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository libassuan.

commit e0c9ab2751206b517d2b3276a1eef8e707f25a78
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Aug 9 12:49:11 2005 +0000

    * mkerrors: Include config.h into assuan-errors.c.  This is
    required so that assuan.h knows about the W32 macro.
    
    * assuan.h [_ASSUAN_EXT_SYM_PREFIX]: New.
    * assuan-io.c [_ASSUAN_NO_PTH]: New.
    * assuan-pipe-connect.c (fix_signals) [_ASSUAN_NO_FIXED_SIGNALS]: New.
    (assuan_pipe_connect2) [_ASSUAN_USE_DOUBLE_FORK]: Use double fork.
    (fix_signals) [_ASSUAN_USE_DOUBLE_FORK]: Do not wait..
---
 NEWS                      |   3 +
 src/ChangeLog             |  11 +++
 src/assuan-io.c           |  24 ++++--
 src/assuan-pipe-connect.c | 210 ++++++++++++++++++++++++++--------------------
 src/assuan.h              | 127 +++++++++++++++++++++++++++-
 src/mkerrors              |   4 +
 6 files changed, 275 insertions(+), 104 deletions(-)

diff --git a/NEWS b/NEWS
index 0e31971..4b2a24e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,9 @@
 Noteworthy changes in version 0.6.11
 -------------------------------------------------
 
+ * Internal cleanups to make inclusion of the code into libraries
+   easier.
+
 
 Noteworthy changes in version 0.6.10 (2005-06-20)
 -------------------------------------------------
diff --git a/src/ChangeLog b/src/ChangeLog
index 544184f..d622f74 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,14 @@
+2005-08-09  Werner Koch  <wk at g10code.com>
+
+	* mkerrors: Include config.h into assuan-errors.c.  This is
+	required so that assuan.h knows about the W32 macro.
+
+	* assuan.h [_ASSUAN_EXT_SYM_PREFIX]: New.
+	* assuan-io.c [_ASSUAN_NO_PTH]: New.
+	* assuan-pipe-connect.c (fix_signals) [_ASSUAN_NO_FIXED_SIGNALS]: New.
+	(assuan_pipe_connect2) [_ASSUAN_USE_DOUBLE_FORK]: Use double fork.
+	(fix_signals) [_ASSUAN_USE_DOUBLE_FORK]: Do not wait..
+	
 2005-05-21  Werner Koch  <wk at g10code.com>
 
 	* assuan-util.c (assuan_set_flag, assuan_get_flag): New.
diff --git a/src/assuan-io.c b/src/assuan-io.c
index 3fe11e6..321f2ba 100644
--- a/src/assuan-io.c
+++ b/src/assuan-io.c
@@ -29,6 +29,7 @@
 #include <windows.h>
 #endif
 
+#ifndef _ASSUAN_NO_PTH
 extern ssize_t pth_read (int fd, void *buffer, size_t size);
 extern ssize_t pth_write (int fd, const void *buffer, size_t size);
 
@@ -36,29 +37,34 @@ extern ssize_t pth_write (int fd, const void *buffer, size_t size);
 #pragma weak pth_read
 #pragma weak pth_write
 #endif
+#endif /*!_ASSUAN_NO_PTH*/
 
 ssize_t
 _assuan_simple_read (assuan_context_t ctx, void *buffer, size_t size)
 {
-#ifndef HAVE_W32_SYSTEM
-  return (pth_read ? pth_read : read) (ctx->inbound.fd, buffer, size);
+#ifdef _ASSUAN_NO_PTH
+  return read (ctx->inbound.fd, buffer, size);
 #else
+# ifndef HAVE_W32_SYSTEM
+  return (pth_read ? pth_read : read) (ctx->inbound.fd, buffer, size);
+# else
   return pth_read ? pth_read (ctx->inbound.fd, buffer, size)
                   : recv (ctx->inbound.fd, buffer, size, 0);
-#endif
+# endif
+# endif
 }
 
 ssize_t
 _assuan_simple_write (assuan_context_t ctx, const void *buffer, size_t size)
 {
-#ifndef HAVE_W32_SYSTEM
-  return (pth_write ? pth_write : write) (ctx->outbound.fd, buffer, size);
+#ifdef _ASSUAN_NO_PTH
+  return write (ctx->outbound.fd, buffer, size);
 #else
+# ifndef HAVE_W32_SYSTEM
+  return (pth_write ? pth_write : write) (ctx->outbound.fd, buffer, size);
+# else
   return pth_write ? pth_write (ctx->outbound.fd, buffer, size)
                    : send (ctx->outbound.fd, buffer, size, 0);
+# endif
 #endif
 }
-
-
-
-
diff --git a/src/assuan-pipe-connect.c b/src/assuan-pipe-connect.c
index 5b952b2..4ce3862 100644
--- a/src/assuan-pipe-connect.c
+++ b/src/assuan-pipe-connect.c
@@ -60,6 +60,7 @@
 static void
 fix_signals (void)
 {
+#ifndef _ASSUAN_NO_FIXED_SIGNALS
 #ifndef HAVE_DOSISH_SYSTEM  /* No SIGPIPE for these systems.  */
   static int fixed_signals;
 
@@ -79,6 +80,7 @@ fix_signals (void)
       /* FIXME: This is not MT safe */
     }
 #endif /*HAVE_DOSISH_SYSTEM*/
+#endif /*!_ASSUAN_NO_FIXED_SIGNALS*/
 }
 
 
@@ -119,9 +121,11 @@ do_finish (assuan_context_t ctx)
   if (ctx->pid != -1 && ctx->pid)
     {
 #ifndef HAVE_W32_SYSTEM
+#ifndef _ASSUAN_USE_DOUBLE_FORK
       if (!ctx->flags.no_waitpid)
         waitpid (ctx->pid, NULL, 0); 
       ctx->pid = -1;
+#endif
 #endif /*!HAVE_W32_SYSTEM*/
     }
   return 0;
@@ -339,8 +343,8 @@ assuan_pipe_connect2 (assuan_context_t *ctx,
   if (!fdp || *fdp == -1)
     {
       nullfd = CreateFile ("nul", GENERIC_WRITE,
-                       FILE_SHARE_READ | FILE_SHARE_WRITE,
-                       NULL, OPEN_EXISTING, 0, NULL);
+                           FILE_SHARE_READ | FILE_SHARE_WRITE,
+                           NULL, OPEN_EXISTING, 0, NULL);
       if (nullfd == INVALID_HANDLE_VALUE)
         {
           _assuan_log_printf ("can't open `nul': %s\n", w32_strerror (-1));
@@ -361,8 +365,8 @@ assuan_pipe_connect2 (assuan_context_t *ctx,
   /* Note: We inherit all handles flagged as inheritable.  This seems
      to be a security flaw but there seems to be no way of selecting
      handles to inherit. */
-/*   _assuan_log_printf ("CreateProcess, path=`%s' cmdline=`%s'\n", */
-/*                       name, cmdline); */
+  /*   _assuan_log_printf ("CreateProcess, path=`%s' cmdline=`%s'\n", */
+  /*                       name, cmdline); */
   if (!CreateProcess (name,                 /* Program to start.  */
                       cmdline,              /* Command line arguments.  */
                       &sec_attr,            /* Process security attributes.  */
@@ -399,10 +403,10 @@ assuan_pipe_connect2 (assuan_context_t *ctx,
   CloseHandle (fd_to_handle (rp[1]));
   CloseHandle (fd_to_handle (wp[0]));
 
-/*   _assuan_log_printf ("CreateProcess ready: hProcess=%p hThread=%p" */
-/*                       " dwProcessID=%d dwThreadId=%d\n", */
-/*                       pi.hProcess, pi.hThread, */
-/*                       (int) pi.dwProcessId, (int) pi.dwThreadId); */
+  /*   _assuan_log_printf ("CreateProcess ready: hProcess=%p hThread=%p" */
+  /*                       " dwProcessID=%d dwThreadId=%d\n", */
+  /*                       pi.hProcess, pi.hThread, */
+  /*                       (int) pi.dwProcessId, (int) pi.dwThreadId); */
 
   ResumeThread (pi.hThread);
   CloseHandle (pi.hThread); 
@@ -447,6 +451,8 @@ assuan_pipe_connect2 (assuan_context_t *ctx,
   (*ctx)->deinit_handler = do_deinit;
   (*ctx)->finish_handler = do_finish;
 
+  /* FIXME: For GPGME we should better use _gpgme_io_spawn.  The PID
+     stored here is actually soon useless.  */
   (*ctx)->pid = fork ();
   if ((*ctx)->pid < 0)
     {
@@ -460,96 +466,114 @@ assuan_pipe_connect2 (assuan_context_t *ctx,
 
   if ((*ctx)->pid == 0)
     {
-      int i, n;
-      char errbuf[512];
-      int *fdp;
+#ifdef _ASSUAN_USE_DOUBLE_FORK      
+      if ((pid = fork ()) == 0)
+#endif
+	{
+          int i, n;
+          char errbuf[512];
+          int *fdp;
+          
+          if (atfork)
+            atfork (atforkvalue, 0);
+
+          /* Dup handles to stdin/stdout. */
+          if (rp[1] != STDOUT_FILENO)
+            {
+              if (dup2 (rp[1], STDOUT_FILENO) == -1)
+                {
+                  _assuan_log_printf ("dup2 failed in child: %s\n",
+                                      strerror (errno));
+                  _exit (4);
+                }
+            }
+          if (wp[0] != STDIN_FILENO)
+            {
+              if (dup2 (wp[0], STDIN_FILENO) == -1)
+                {
+                  _assuan_log_printf ("dup2 failed in child: %s\n",
+                                      strerror (errno));
+                  _exit (4);
+                }
+            }
 
-      if (atfork)
-        atfork (atforkvalue, 0);
+          /* Dup stderr to /dev/null unless it is in the list of FDs to be
+             passed to the child. */
+          fdp = fd_child_list;
+          if (fdp)
+            {
+              for (; *fdp != -1 && *fdp != STDERR_FILENO; fdp++)
+                ;
+            }
+          if (!fdp || *fdp == -1)
+            {
+              int fd = open ("/dev/null", O_WRONLY);
+              if (fd == -1)
+                {
+                  _assuan_log_printf ("can't open `/dev/null': %s\n",
+                                      strerror (errno));
+                  _exit (4);
+                }
+              if (dup2 (fd, STDERR_FILENO) == -1)
+                {
+                  _assuan_log_printf ("dup2(dev/null, 2) failed: %s\n",
+                                      strerror (errno));
+                  _exit (4);
+                }
+            }
 
-      /* Dup handles to stdin/stdout. */
-      if (rp[1] != STDOUT_FILENO)
-	{
-	  if (dup2 (rp[1], STDOUT_FILENO) == -1)
-	    {
-	      _assuan_log_printf ("dup2 failed in child: %s\n",
-                                  strerror (errno));
-	      _exit (4);
-	    }
-	}
-      if (wp[0] != STDIN_FILENO)
-	{
-	  if (dup2 (wp[0], STDIN_FILENO) == -1)
-	    {
-	      _assuan_log_printf ("dup2 failed in child: %s\n",
-                                  strerror (errno));
-	      _exit (4);
-	    }
-	}
-
-      /* Dup stderr to /dev/null unless it is in the list of FDs to be
-         passed to the child. */
-      fdp = fd_child_list;
-      if (fdp)
-        {
-          for (; *fdp != -1 && *fdp != STDERR_FILENO; fdp++)
-            ;
-        }
-      if (!fdp || *fdp == -1)
-        {
-	  int fd = open ("/dev/null", O_WRONLY);
-	  if (fd == -1)
-	    {
-	      _assuan_log_printf ("can't open `/dev/null': %s\n",
-                                  strerror (errno));
-	      _exit (4);
-	    }
-	  if (dup2 (fd, STDERR_FILENO) == -1)
-	    {
-	      _assuan_log_printf ("dup2(dev/null, 2) failed: %s\n",
-                                  strerror (errno));
-	      _exit (4);
-	    }
-	}
-
-
-      /* Close all files which will not be duped and are not in the
-         fd_child_list. */
-      n = sysconf (_SC_OPEN_MAX);
-      if (n < 0)
-        n = MAX_OPEN_FDS;
-      for (i=0; i < n; i++)
-        {
-          if ( i == STDIN_FILENO || i == STDOUT_FILENO || i == STDERR_FILENO)
-            continue;
-	  fdp = fd_child_list;
-	  if (fdp)
-	    {
-	      while (*fdp != -1 && *fdp != i)
-		fdp++;
-	    }
-
-          if (!(fdp && *fdp != -1))
-            close(i);
+
+          /* Close all files which will not be duped and are not in the
+             fd_child_list. */
+          n = sysconf (_SC_OPEN_MAX);
+          if (n < 0)
+            n = MAX_OPEN_FDS;
+          for (i=0; i < n; i++)
+            {
+              if ( i == STDIN_FILENO || i == STDOUT_FILENO
+                   || i == STDERR_FILENO)
+                continue;
+              fdp = fd_child_list;
+              if (fdp)
+                {
+                  while (*fdp != -1 && *fdp != i)
+                    fdp++;
+                }
+
+              if (!(fdp && *fdp != -1))
+                close(i);
+            }
+          errno = 0;
+
+          /* We store our parents pid in the environment so that the
+             execed assuan server is able to read the actual pid of the
+             client.  The server can't use getppid becuase it might have
+             been double forked before the assuan server has been
+             initialized. */
+          setenv ("_assuan_pipe_connect_pid", mypidstr, 1);
+
+          execv (name, argv); 
+          /* oops - use the pipe to tell the parent about it */
+          snprintf (errbuf, sizeof(errbuf)-1,
+                    "ERR %d can't exec `%s': %.50s\n",
+                    ASSUAN_Problem_Starting_Server, name, strerror (errno));
+          errbuf[sizeof(errbuf)-1] = 0;
+          writen (1, errbuf, strlen (errbuf));
+          _exit (4);
         }
-      errno = 0;
-
-      /* We store our parents pid in the environment so that the
-         execed assuan server is able to read the actual pid of the
-         client.  The server can't use getppid becuase it might have
-         been double forked before the assuan server has been
-         initialized. */
-      setenv ("_assuan_pipe_connect_pid", mypidstr, 1);
-
-      execv (name, argv); 
-      /* oops - use the pipe to tell the parent about it */
-      snprintf (errbuf, sizeof(errbuf)-1, "ERR %d can't exec `%s': %.50s\n",
-                ASSUAN_Problem_Starting_Server, name, strerror (errno));
-      errbuf[sizeof(errbuf)-1] = 0;
-      writen (1, errbuf, strlen (errbuf));
-      _exit (4);
+#ifdef _ASSUAN_USE_DOUBLE_FORK
+      if (pid == -1)
+	_exit (1);
+      else
+	_exit (0);
+#endif
     }
 
+#ifdef _ASSUAN_USE_DOUBLE_FORK
+  waitpid ((*ctx)->pid, NULL, 0);
+  (*ctx)->pid = -1;
+#endif
+
   close (rp[1]);
   close (wp[0]);
 
diff --git a/src/assuan.h b/src/assuan.h
index 3ea1817..e72c6d0 100644
--- a/src/assuan.h
+++ b/src/assuan.h
@@ -1,5 +1,5 @@
-/* assuan.c - Definitions for the Assuan protocol
- *	Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+/* assuan.c - Definitions for the Assuan IPC library
+ * Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
  *
  * This file is part of Assuan.
  *
@@ -25,6 +25,128 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+
+/* To use this file with libraries the following macros are often
+   useful:
+
+   #define _ASSUAN_EXT_SYM_PREFIX _foo_
+   
+     This prefixes all external symbols with "_foo_".
+
+   #define _ASSUAN_NO_PTH 
+
+     This avoids inclusion of special GNU Pth hacks.
+
+   #define _ASSUAN_NO_FIXED_SIGNALS 
+
+     This disables changing of certain signal handler; i.e. SIGPIPE.
+
+   #define _ASSUAN_USE_DOUBLE_FORK
+
+     Use a double fork approach when connecting to a server through a pipe.
+ */
+
+
+#ifdef _ASSUAN_EXT_SYM_PREFIX
+#define _ASSUAN_PREFIX1(x,y) x ## y
+#define _ASSUAN_PREFIX2(x,y) _ASSUAN_PREFIX1(x,y)
+#define _ASSUAN_PREFIX(x) _ASSUAN_PREFIX2(_ASSUAN_EXT_SYM_PREFIX,x)
+#define assuan_ _ASSUAN_PREFIX(assuan_)
+#define assuan_register_command _ASSUAN_PREFIX(assuan_register_command)
+#define assuan_register_bye_notify _ASSUAN_PREFIX(assuan_register_bye_notify)
+#define assuan_register_reset_notify \
+  _ASSUAN_PREFIX(assuan_register_reset_notify)
+#define assuan_register_cancel_notify \
+  _ASSUAN_PREFIX(assuan_register_cancel_notify)
+#define assuan_register_input_notify \
+  _ASSUAN_PREFIX(assuan_register_input_notify)
+#define assuan_register_output_notify \
+  _ASSUAN_PREFIX(assuan_register_output_notify)
+#define assuan_register_option_handler \
+  _ASSUAN_PREFIX(assuan_register_option_handler)
+#define assuan_process _ASSUAN_PREFIX(assuan_process)
+#define assuan_process_next _ASSUAN_PREFIX(assuan_process_next)
+#define assuan_get_active_fds _ASSUAN_PREFIX(assuan_get_active_fds)
+#define assuan_get_data_fp _ASSUAN_PREFIX(assuan_get_data_fp)
+#define assuan_set_okay_line _ASSUAN_PREFIX(assuan_set_okay_line)
+#define assuan_write_status _ASSUAN_PREFIX(assuan_write_status)
+#define assuan_command_parse_fd _ASSUAN_PREFIX(assuan_command_parse_fd)
+#define assuan_set_hello_line _ASSUAN_PREFIX(assuan_set_hello_line)
+#define assuan_accept _ASSUAN_PREFIX(assuan_accept)
+#define assuan_get_input_fd _ASSUAN_PREFIX(assuan_get_input_fd)
+#define assuan_get_output_fd _ASSUAN_PREFIX(assuan_get_output_fd)
+#define assuan_close_input_fd _ASSUAN_PREFIX(assuan_close_input_fd)
+#define assuan_close_output_fd _ASSUAN_PREFIX(assuan_close_output_fd)
+#define assuan_init_pipe_server _ASSUAN_PREFIX(assuan_init_pipe_server)
+#define assuan_deinit_server _ASSUAN_PREFIX(assuan_deinit_server)
+#define assuan_init_socket_server _ASSUAN_PREFIX(assuan_init_socket_server)
+#define assuan_init_connected_socket_server \
+  _ASSUAN_PREFIX(assuan_init_connected_socket_server)
+#define assuan_pipe_connect _ASSUAN_PREFIX(assuan_pipe_connect)
+#define assuan_socket_connect _ASSUAN_PREFIX(assuan_socket_connect)
+#define assuan_domain_connect _ASSUAN_PREFIX(assuan_domain_connect)
+#define assuan_init_domain_server _ASSUAN_PREFIX(assuan_init_domain_server)
+#define assuan_disconnect _ASSUAN_PREFIX(assuan_disconnect)
+#define assuan_get_pid _ASSUAN_PREFIX(assuan_get_pid)
+#define assuan_transact _ASSUAN_PREFIX(assuan_transact)
+#define assuan_inquire _ASSUAN_PREFIX(assuan_inquire)
+#define assuan_read_line _ASSUAN_PREFIX(assuan_read_line)
+#define assuan_pending_line _ASSUAN_PREFIX(assuan_pending_line)
+#define assuan_write_line _ASSUAN_PREFIX(assuan_write_line)
+#define assuan_send_data _ASSUAN_PREFIX(assuan_send_data)
+#define assuan_sendfd _ASSUAN_PREFIX(assuan_sendfd)
+#define assuan_receivefd _ASSUAN_PREFIX(assuan_receivefd)
+#define assuan_set_malloc_hooks _ASSUAN_PREFIX(assuan_set_malloc_hooks)
+#define assuan_set_log_stream _ASSUAN_PREFIX(assuan_set_log_stream)
+#define assuan_set_error _ASSUAN_PREFIX(assuan_set_error)
+#define assuan_set_pointer _ASSUAN_PREFIX(assuan_set_pointer)
+#define assuan_get_pointer _ASSUAN_PREFIX(assuan_get_pointer)
+#define assuan_begin_confidential _ASSUAN_PREFIX(assuan_begin_confidential)
+#define assuan_end_confidential _ASSUAN_PREFIX(assuan_end_confidential)
+#define assuan_strerror _ASSUAN_PREFIX(assuan_strerror)
+#define assuan_set_assuan_log_stream \
+  _ASSUAN_PREFIX(assuan_set_assuan_log_stream)
+#define assuan_get_assuan_log_stream \
+  _ASSUAN_PREFIX(assuan_get_assuan_log_stream)
+#define assuan_get_assuan_log_prefix \
+  _ASSUAN_PREFIX(assuan_get_assuan_log_prefix)
+#define assuan_set_flag _ASSUAN_PREFIX(assuan_set_flag)
+#define assuan_get_flag _ASSUAN_PREFIX(assuan_get_flag)
+
+/* And now the internal functions, argh...  */
+#define _assuan_read_line _ASSUAN_PREFIX(_assuan_read_line)
+#define _assuan_cookie_write_data _ASSUAN_PREFIX(_assuan_cookie_write_data)
+#define _assuan_cookie_write_flush _ASSUAN_PREFIX(_assuan_cookie_write_flush)
+#define _assuan_read_from_server _ASSUAN_PREFIX(_assuan_read_from_server)
+#define _assuan_domain_init _ASSUAN_PREFIX(_assuan_domain_init)
+#define _assuan_register_std_commands \
+  _ASSUAN_PREFIX(_assuan_register_std_commands)
+#define _assuan_simple_read _ASSUAN_PREFIX(_assuan_simple_read)
+#define _assuan_simple_write _ASSUAN_PREFIX(_assuan_simple_write)
+#define _assuan_simple_read _ASSUAN_PREFIX(_assuan_simple_read)
+#define _assuan_simple_write _ASSUAN_PREFIX(_assuan_simple_write)
+#define _assuan_new_context _ASSUAN_PREFIX(_assuan_new_context)
+#define _assuan_release_context _ASSUAN_PREFIX(_assuan_release_context)
+#define _assuan_malloc _ASSUAN_PREFIX(_assuan_malloc)
+#define _assuan_realloc _ASSUAN_PREFIX(_assuan_realloc)
+#define _assuan_calloc _ASSUAN_PREFIX(_assuan_calloc)
+#define _assuan_free _ASSUAN_PREFIX(_assuan_free)
+#define _assuan_log_print_buffer _ASSUAN_PREFIX(_assuan_log_print_buffer)
+#define _assuan_log_sanitized_string \
+  _ASSUAN_PREFIX(_assuan_log_sanitized_string)
+#define _assuan_log_printf _ASSUAN_PREFIX(_assuan_log_printf)
+#define _assuan_set_default_log_stream \
+  _ASSUAN_PREFIX(_assuan_set_default_log_stream)
+#define _assuan_w32_strerror _ASSUAN_PREFIX(_assuan_w32_strerror)
+#define _assuan_write_line _ASSUAN_PREFIX(_assuan_write_line)
+#define _assuan_close _ASSUAN_PREFIX(_assuan_close)   
+#define _assuan_sock_new _ASSUAN_PREFIX(_assuan_sock_new)  
+#define _assuan_sock_bind _ASSUAN_PREFIX(_assuan_sock_bind)
+#define _assuan_sock_connect _ASSUAN_PREFIX(_assuan_sock_connect)
+
+#endif /*_ASSUAN_EXT_SYM_PREFIX*/
+
+
 #ifdef __cplusplus
 extern "C"
 {
@@ -33,6 +155,7 @@ extern "C"
 #endif
 #endif
 
+
 typedef enum
 {
   ASSUAN_No_Error = 0,
diff --git a/src/mkerrors b/src/mkerrors
index 1112941..e00011b 100755
--- a/src/mkerrors
+++ b/src/mkerrors
@@ -23,6 +23,10 @@ cat <<EOF
 /* Generated automatically by mkerrors */
 /* Do not edit! */
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #include <stdio.h>
 #include "assuan.h"
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libassuan.git



More information about the Pkg-gnupg-commit mailing list