ph10 2005/08/22 11:49:04 BST
Modified files:
exim-doc/doc-txt ChangeLog
exim-src ACKNOWLEDGMENTS
exim-src/src exim.h local_scan.h verify.c
exim-src/src/auths call_radius.c
Log:
(1) Patch for radius problem. (2) Include config.h inside local_scan.h.
Revision Changes Path
1.206 +17 -0 exim/exim-doc/doc-txt/ChangeLog
1.31 +1 -0 exim/exim-src/ACKNOWLEDGMENTS
1.4 +4 -3 exim/exim-src/src/auths/call_radius.c
1.18 +2 -3 exim/exim-src/src/exim.h
1.5 +3 -1 exim/exim-src/src/local_scan.h
1.25 +7 -1 exim/exim-src/src/verify.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.205
retrieving revision 1.206
diff -u -r1.205 -r1.206
--- ChangeLog 16 Aug 2005 12:35:12 -0000 1.205
+++ ChangeLog 22 Aug 2005 10:49:04 -0000 1.206
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.205 2005/08/16 12:35:12 tom Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.206 2005/08/22 10:49:04 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -83,8 +83,25 @@
PH/22 If the log selector "outgoing_port" is set, the port is now also given on
host errors such as "Connection refused".
+PH/23 Applied a patch to fix problems with exim-4.52 while doing radius
+ authentication with radiusclient 0.4.9:
+
+ - Error returned from rc_read_config was caught wrongly
+ - Username/password not passed on to radius server due to wrong length.
+
+ The presumption is that some radiusclient API changes for 4.51/PH/17
+ were not taken care of correctly. The code is still untested by me (my
+ Linux distribution still has 0.3.2 of radiusclient), but it was
+ contributed by a Radius user.
+
+PH/24 When doing a callout, the value of $domain wasn't set correctly when
+ expanding the "port" option of the smtp transport.
+
TK/04 MIME ACL: Fix buffer underrun that occurs when EOF condition is met
while reading a MIME header. Thanks to Tom Hughes for a patch.
+
+PH/24 Include config.h inside local_scan.h so that configuration settings are
+ available.
Exim version 4.52
Index: ACKNOWLEDGMENTS
===================================================================
RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- ACKNOWLEDGMENTS 2 Aug 2005 11:22:23 -0000 1.30
+++ ACKNOWLEDGMENTS 22 Aug 2005 10:49:04 -0000 1.31
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.30 2005/08/02 11:22:23 ph10 Exp $
+$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.31 2005/08/22 10:49:04 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -208,6 +208,7 @@
Harald Schueler Patch for dn_expand() failure on truncated data
Heiko Schlichting Diagnosis of intermittent daemon crash bug
Stephan Schulz Patch for $host_data caching error
+Lai Zit Seng Patch for radiusclient 0.4.9 interface bugs
Tony Sheen Log files with datestamped names and auto rollover
Martin Sluka Patch for exigrep to include non-message lines
Adam Stephens Suggested patch for IGNOREQUOTA in LMTP
Index: exim.h
===================================================================
RCS file: /home/cvs/exim/exim-src/src/exim.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- exim.h 29 Jun 2005 10:56:35 -0000 1.17
+++ exim.h 22 Aug 2005 10:49:04 -0000 1.18
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/exim.h,v 1.17 2005/06/29 10:56:35 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/exim.h,v 1.18 2005/08/22 10:49:04 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -417,9 +417,8 @@
#include "pcre/pcre.h"
/* Exim includes are in several files. Note that local_scan.h #includes
-mytypes.h and store.h, so we don't need to mention them explicitly. */
-
-#include "config.h"
+config.h, mytypes.h, and store.h, so we don't need to mention them explicitly.
+*/
#include "local_scan.h"
#include "macros.h"
Index: local_scan.h
===================================================================
RCS file: /home/cvs/exim/exim-src/src/local_scan.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- local_scan.h 22 Mar 2005 14:11:54 -0000 1.4
+++ local_scan.h 22 Aug 2005 10:49:04 -0000 1.5
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/local_scan.h,v 1.4 2005/03/22 14:11:54 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/local_scan.h,v 1.5 2005/08/22 10:49:04 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -14,9 +14,11 @@
This API is also used for functions called by the ${dlfunc expansion item. */
-/* Some basic types that make some things easier, and the store functions. */
+/* Some basic types that make some things easier, the Exim configuration
+settings, and the store functions. */
#include <sys/types.h>
+#include "config.h"
#include "mytypes.h"
#include "store.h"
Index: verify.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/verify.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- verify.c 1 Aug 2005 13:20:28 -0000 1.24
+++ verify.c 22 Aug 2005 10:49:04 -0000 1.25
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/verify.c,v 1.24 2005/08/01 13:20:28 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/verify.c,v 1.25 2005/08/22 10:49:04 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -152,6 +152,7 @@
uschar *address_key;
uschar *from_address;
uschar *random_local_part = NULL;
+uschar *save_deliver_domain = deliver_domain;
uschar **failure_ptr = is_recipient?
&recipient_verify_failure : &sender_verify_failure;
open_db dbblock;
@@ -415,12 +416,14 @@
deliver_host = host->name;
deliver_host_address = host->address;
+ deliver_domain = addr->domain;
if (!smtp_get_interface(tf->interface, host_af, addr, NULL, &interface,
US"callout") ||
!smtp_get_port(tf->port, addr, &port, US"callout"))
log_write(0, LOG_MAIN|LOG_PANIC, "<%s>: %s", addr->address,
addr->message);
deliver_host = deliver_host_address = NULL;
+ deliver_domain = save_deliver_domain;
/* Set HELO string according to the protocol */
@@ -1053,13 +1056,16 @@
if (tf.hosts != NULL && (host_list == NULL || tf.hosts_override))
{
uschar *s;
+ uschar *save_deliver_domain = deliver_domain;
+ uschar *save_deliver_localpart = deliver_localpart;
host_list = NULL; /* Ignore the router's hosts */
deliver_domain = addr->domain;
deliver_localpart = addr->local_part;
s = expand_string(tf.hosts);
- deliver_domain = deliver_localpart = NULL;
+ deliver_domain = save_deliver_domain;
+ deliver_localpart = save_deliver_localpart;
if (s == NULL)
{
Index: call_radius.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/auths/call_radius.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- call_radius.c 29 Mar 2005 14:19:21 -0000 1.3
+++ call_radius.c 22 Aug 2005 10:49:04 -0000 1.4
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/auths/call_radius.c,v 1.3 2005/03/29 14:19:21 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/auths/call_radius.c,v 1.4 2005/08/22 10:49:04 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -113,16 +113,17 @@
#else /* RADIUS_LIB_RADIUSCLIENT unset => RADIUS_LIB_RADIUSCLIENT2 */
-if ((h = rc_read_config(RADIUS_CONFIG_FILE)) != 0)
+if ((h = rc_read_config(RADIUS_CONFIG_FILE)) == NULL)
*errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE);
else if (rc_read_dictionary(h, rc_conf_str(h, "dictionary")) != 0)
*errptr = string_sprintf("RADIUS: can't read dictionary");
-else if (rc_avpair_add(h, &send, PW_USER_NAME, user, 0, 0) == NULL)
+else if (rc_avpair_add(h, &send, PW_USER_NAME, user, Ustrlen(user), 0) == NULL)
*errptr = string_sprintf("RADIUS: add user name failed\n");
-else if (rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args, 0, 0) == NULL)
+else if (rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args,
+ Ustrlen(radius_args), 0) == NULL)
*errptr = string_sprintf("RADIUS: add password failed\n");
else if (rc_avpair_add(h, &send, PW_SERVICE_TYPE, &service, 0, 0) == NULL)