[exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim…

Startseite
Nachricht löschen
Nachricht beantworten
Autor: Philip Hazel
Datum:  
To: exim-cvs
Betreff: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim/exim-src/src child.c local_scan.h
ph10 2006/02/14 10:26:27 GMT

  Modified files:
    exim-doc/doc-txt     ChangeLog 
    exim-src/src         child.c local_scan.h 
  Log:
  Add enabling function child_open_exim2() with extra arguments.


  Revision  Changes    Path
  1.296     +5 -0      exim/exim-doc/doc-txt/ChangeLog
  1.9       +27 -4     exim/exim-src/src/child.c
  1.7       +1 -0      exim/exim-src/src/local_scan.h


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.295
  retrieving revision 1.296
  diff -u -r1.295 -r1.296
  --- ChangeLog    13 Feb 2006 16:23:57 -0000    1.295
  +++ ChangeLog    14 Feb 2006 10:26:26 -0000    1.296
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.295 2006/02/13 16:23:57 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.296 2006/02/14 10:26:26 ph10 Exp $


   Change log file for Exim from version 4.21
   -------------------------------------------
  @@ -148,6 +148,11 @@
         that did not have a forward lookup, an error message of the form "no IP
         address found for host xxx.xxx.xxx (during SMTP connection from NULL)"
         could be logged. Now it outputs the IP address instead of "NULL".
  +
  +PH/28 An enabling patch from MH: add new function child_open_exim2() which
  +      allows the sender and the authenticated sender to be set when
  +      submitting a message from within Exim. Since child_open_exim() is
  +      documented for local_scan(), the new function should be too.



Exim version 4.60

  Index: child.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/child.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- child.c    7 Feb 2006 14:05:17 -0000    1.8
  +++ child.c    14 Feb 2006 10:26:27 -0000    1.9
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/child.c,v 1.8 2006/02/07 14:05:17 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/child.c,v 1.9 2006/02/14 10:26:27 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -174,6 +174,11 @@
   the pid of the new process, or -1 if things go wrong. If debug_fd is
   non-negative, it is passed as stderr.


  +This interface is now a just wrapper for the more complicated function
  +child_open_exim2(), which has additional arguments. The wrapper must continue
  +to exist, even if all calls from within Exim are changed, because it is
  +documented for use from local_scan().
  +
   Argument: fdptr   pointer to int for the stdin fd
   Returns:          pid of the created process or -1 if anything has gone wrong
   */
  @@ -181,6 +186,24 @@
   pid_t
   child_open_exim(int *fdptr)
   {
  +return child_open_exim2(fdptr, US"<>", bounce_sender_authentication);
  +}
  +
  +
  +/* This is a more complicated function for creating a child Exim process, with
  +more arguments.
  +
  +Arguments:
  +  fdptr                   pointer to int for the stdin fd
  +  sender                  for a sender address (data for -f)
  +  sender_authentication   authenticated sender address or NULL
  +
  +Returns:          pid of the created process or -1 if anything has gone wrong
  +*/
  +
  +pid_t
  +child_open_exim2(int *fdptr, uschar *sender, uschar *sender_authentication)
  +{
   int pfd[2];
   int save_errno;
   pid_t pid;
  @@ -203,13 +226,13 @@
     force_fd(pfd[pipe_read], 0);
     (void)close(pfd[pipe_write]);
     if (debug_fd > 0) force_fd(debug_fd, 2);
  -  if (bounce_sender_authentication != NULL)
  +  if (sender_authentication != NULL)
       child_exec_exim(CEE_EXEC_EXIT, FALSE, NULL, FALSE, 8,
  -      US"-t", US"-oem", US"-oi", US"-f", US"<>", US"-oMas",
  -      bounce_sender_authentication, message_id_option);
  +      US"-t", US"-oem", US"-oi", US"-f", sender, US"-oMas",
  +      sender_authentication, message_id_option);
     else
       child_exec_exim(CEE_EXEC_EXIT, FALSE, NULL, FALSE, 6,
  -      US"-t", US"-oem", US"-oi", US"-f", US"<>", message_id_option);
  +      US"-t", US"-oem", US"-oi", US"-f", sender, message_id_option);
     /* Control does not return here. */
     }



  Index: local_scan.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/local_scan.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- local_scan.h    7 Feb 2006 11:19:00 -0000    1.6
  +++ local_scan.h    14 Feb 2006 10:26:27 -0000    1.7
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/local_scan.h,v 1.6 2006/02/07 11:19:00 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/local_scan.h,v 1.7 2006/02/14 10:26:27 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -162,6 +162,7 @@
   extern int     child_close(pid_t, int);
   extern pid_t   child_open(uschar **, uschar **, int, int *, int *, BOOL);
   extern pid_t   child_open_exim(int *);
  +extern pid_t   child_open_exim2(int *, uschar *, uschar *);
   extern void    debug_printf(char *, ...) PRINTF_FUNCTION;
   extern uschar *expand_string(uschar *);
   extern void    header_add(int, char *, ...);