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

Góra strony
Delete this message
Reply to this message
Autor: Philip Hazel
Data:  
Dla: exim-cvs
Temat: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim/exim-src/src os.c version.c
ph10 2005/12/01 14:21:25 GMT

  Modified files:
    exim-doc/doc-txt     ChangeLog 
    exim-src/src         os.c version.c 
  Log:
  The code for finding all the local interface addresses on a FreeBSD
  system running IPv6 was broken.


  Revision  Changes    Path
  1.269     +12 -0     exim/exim-doc/doc-txt/ChangeLog
  1.4       +5 -4      exim/exim-src/src/os.c
  1.12      +1 -1      exim/exim-src/src/version.c


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.268
  retrieving revision 1.269
  diff -u -r1.268 -r1.269
  --- ChangeLog    28 Nov 2005 10:07:55 -0000    1.268
  +++ ChangeLog    1 Dec 2005 14:21:25 -0000    1.269
  @@ -1,7 +1,19 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.268 2005/11/28 10:07:55 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.269 2005/12/01 14:21:25 ph10 Exp $


   Change log file for Exim from version 4.21
   -------------------------------------------
  +
  +Exim version 4.61
  +-----------------
  +
  +PH/01 The code for finding all the local interface addresses on a FreeBSD
  +      system running IPv6 was broken. This may well have applied to all BSD
  +      systems, as well as to others that have similar system calls. The broken
  +      code found IPv4 interfaces correctly, but gave incorrect values for the
  +      IPv6 interfaces. In particular, ::1 was not found. The effect in Exim was
  +      that it would not match correctly against @[] and not recognize the IPv6
  +      addresses as local.
  +


Exim version 4.60
-----------------

  Index: os.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/os.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- os.c    27 Jun 2005 14:29:43 -0000    1.3
  +++ os.c    1 Dec 2005 14:21:25 -0000    1.4
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/os.c,v 1.3 2005/06/27 14:29:43 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/os.c,v 1.4 2005/12/01 14:21:25 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -661,8 +661,9 @@
     if ((ifreq.V_ifr_flags & IFF_UP) == 0) continue;


     /* On some operating systems we have to get the IP address of the interface
  -  by another call. On others, it's already there, but we must reinstate the
  -  data in ifreq, because SIOCGIFFLAGS may wreck it. */
  +  by another call. On others, it's already there, but we must copy the full
  +  length because we only copied the basic length above, and anyway,
  +  GIFFLAGS may have wrecked the data. */


     #ifndef SIOCGIFCONF_GIVES_ADDR
     if (ioctl(vs, V_GIFADDR, (char *)&ifreq) < 0)
  @@ -671,8 +672,8 @@
     addrp = &ifreq.V_ifr_addr;


     #else
  -  memcpy((char *)&ifreq, cp, sizeof(ifreq));
  -  memcpy(addrbuf, (char *)&(ifreq.V_ifr_addr), len - sizeof(ifreq.V_ifr_name));
  +  memcpy(addrbuf, cp + offsetof(struct V_ifreq, V_ifr_addr),
  +    len - sizeof(ifreq.V_ifr_name));
     addrp = (struct sockaddr *)addrbuf;
     #endif



  Index: version.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/version.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- version.c    12 Oct 2005 15:45:38 -0000    1.11
  +++ version.c    1 Dec 2005 14:21:25 -0000    1.12
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/version.c,v 1.11 2005/10/12 15:45:38 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/version.c,v 1.12 2005/12/01 14:21:25 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -12,7 +12,7 @@
   #include "exim.h"



-#define THIS_VERSION "4.60"
+#define THIS_VERSION "4.61"


/* The header file cnumber.h contains a single line containing the