summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/doc-txt/ChangeLog19
-rw-r--r--src/ACKNOWLEDGMENTS3
-rw-r--r--src/src/auths/call_radius.c9
-rw-r--r--src/src/exim.h7
-rw-r--r--src/src/local_scan.h6
-rw-r--r--src/src/verify.c10
6 files changed, 40 insertions, 14 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 8297b97c1..7ab667a28 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.205 2005/08/16 12:35:12 tom Exp $
+$Cambridge: 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,9 +83,26 @@ PH/21 Added support for host-specific ports to manualroute, queryprogram,
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
-----------------
diff --git a/src/ACKNOWLEDGMENTS b/src/ACKNOWLEDGMENTS
index c8b4d505c..cd9c597d0 100644
--- a/src/ACKNOWLEDGMENTS
+++ b/src/ACKNOWLEDGMENTS
@@ -1,4 +1,4 @@
-$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.30 2005/08/02 11:22:23 ph10 Exp $
+$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.31 2005/08/22 10:49:04 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -208,6 +208,7 @@ Peter Savitch Diagnosis of FPE bug when statvfs() fails on spool
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
diff --git a/src/src/auths/call_radius.c b/src/src/auths/call_radius.c
index a20237689..816164253 100644
--- a/src/src/auths/call_radius.c
+++ b/src/src/auths/call_radius.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/auths/call_radius.c,v 1.3 2005/03/29 14:19:21 ph10 Exp $ */
+/* $Cambridge: 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 if (rc_avpair_add(&send, PW_SERVICE_TYPE, &service, 0) == NULL)
#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)
diff --git a/src/src/exim.h b/src/src/exim.h
index 85571f62f..f1f4bcee9 100644
--- a/src/src/exim.h
+++ b/src/src/exim.h
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/exim.h,v 1.17 2005/06/29 10:56:35 ph10 Exp $ */
+/* $Cambridge: 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 @@ extern int ferror(FILE *);
#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"
diff --git a/src/src/local_scan.h b/src/src/local_scan.h
index fdc73bed5..627a3c588 100644
--- a/src/src/local_scan.h
+++ b/src/src/local_scan.h
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/local_scan.h,v 1.4 2005/03/22 14:11:54 ph10 Exp $ */
+/* $Cambridge: 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 @@ available for use in that function, and which are documented.
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"
diff --git a/src/src/verify.c b/src/src/verify.c
index 5852aa293..c35571e6f 100644
--- a/src/src/verify.c
+++ b/src/src/verify.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/verify.c,v 1.24 2005/08/01 13:20:28 ph10 Exp $ */
+/* $Cambridge: 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 @@ BOOL done = FALSE;
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 @@ for (host = host_list; host != NULL && !done; host = host->next)
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 @@ while (addr_new != NULL)
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)
{