common: New function to validate domain names.
[gnupg.git] / common / exechelp.h
index d6ef5f0..9e1f56f 100644 (file)
@@ -1,5 +1,6 @@
 /* exechelp.h - Definitions for the fork and exec helpers
  * Copyright (C) 2004, 2009, 2010 Free Software Foundation, Inc.
+ * Copyright (C) 2004, 2006-2012, 2014-2017 g10 Code GmbH
  *
  * This file is part of GnuPG.
  *
@@ -24,7 +25,8 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: (LGPL-3.0+ OR GPL-2.0+)
  */
 
 #ifndef GNUPG_COMMON_EXECHELP_H
@@ -90,6 +92,10 @@ gpg_error_t gnupg_create_pipe (int filedes[2]);
    If PREEXEC is not NULL, the given function will be called right
    before the exec.
 
+   IF EXCEPT is not NULL, it is expected to be an ordered list of file
+   descriptors, terminated by an entry with the value (-1).  These
+   file descriptors won't be closed before spawning a new program.
+
    Returns 0 on success or an error code.  Calling gnupg_wait_process
    and gnupg_release_process is required if the function succeeded.
 
@@ -111,12 +117,12 @@ gpg_error_t gnupg_create_pipe (int filedes[2]);
    GNUPG_SPAWN_RUN_ASFW
           On W32 (but not on W32CE) run AllowSetForegroundWindow for
           the child.  Note that due to unknown problems this actually
-          allows SetForegroundWindow for all childs of this process.
+          allows SetForegroundWindow for all children of this process.
 
  */
 gpg_error_t
 gnupg_spawn_process (const char *pgmname, const char *argv[],
-                     void (*preexec)(void), unsigned int flags,
+                     int *execpt, void (*preexec)(void), unsigned int flags,
                      estream_t *r_infp,
                      estream_t *r_outfp,
                      estream_t *r_errfp,
@@ -158,7 +164,7 @@ gpg_error_t gnupg_spawn_process_fd (const char *pgmname,
 
    Other error codes may be returned as well.  Unless otherwise noted,
    -1 will be stored at R_EXITCODE.  R_EXITCODE may be passed as NULL
-   if the exit code is not required (in that case an error messge will
+   if the exit code is not required (in that case an error message will
    be printed).  Note that under Windows PID is not the process id but
    the handle of the process.  */
 gpg_error_t gnupg_wait_process (const char *pgmname, pid_t pid, int hang,