#! /bin/sh -e ## 45_auth_hack_outlook4.dpatch by Piotr Roszatycki ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: If the auth_hack_outlook4 option is set to true, exim duplicate ## DP: AUTH in the EHLO reply and Outlook 4 can work with exim AUTH. if [ $# -ne 1 ]; then echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" exit 1 fi case "$1" in -patch) patch -f --no-backup-if-mismatch -p1 < $0;; -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;; *) echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" exit 1;; esac exit 0 @DPATCH@ diff -ru exim-4.44.orig/src/globals.c exim-4.44/src/globals.c --- exim-4.44.orig/src/globals.c 2005-01-11 14:43:27 +0100 +++ exim-4.44/src/globals.c 2005-02-16 16:44:37 +0100 @@ -281,6 +281,7 @@ BOOL allow_unqualified_recipient = TRUE; /* For local messages */ BOOL allow_unqualified_sender = TRUE; /* Reset for SMTP */ BOOL allow_utf8_domains = FALSE; +BOOL auth_hack_outlook4 = FALSE; uschar *authenticated_id = NULL; uschar *authenticated_sender = NULL; BOOL authentication_failed = FALSE; diff -ru exim-4.44.orig/src/globals.h exim-4.44/src/globals.h --- exim-4.44.orig/src/globals.h 2005-01-11 14:43:27 +0100 +++ exim-4.44/src/globals.h 2005-02-16 16:44:37 +0100 @@ -130,6 +130,7 @@ extern BOOL allow_unqualified_recipient; /* As it says */ extern BOOL allow_unqualified_sender; /* Ditto */ extern BOOL allow_utf8_domains; /* For experimenting */ +extern BOOL auth_hack_outlook4; /* If FALSE, advertise only when needed */ extern uschar *authenticated_id; /* ID that was authenticated */ extern uschar *authenticated_sender; /* From AUTH on MAIL */ extern BOOL authentication_failed; /* TRUE if AUTH was tried and failed */ diff -ru exim-4.44.orig/src/readconf.c exim-4.44/src/readconf.c --- exim-4.44.orig/src/readconf.c 2005-01-11 13:54:54 +0100 +++ exim-4.44/src/readconf.c 2005-02-16 16:45:12 +0100 @@ -153,6 +153,7 @@ { "allow_mx_to_ip", opt_bool, &allow_mx_to_ip }, { "allow_utf8_domains", opt_bool, &allow_utf8_domains }, { "auth_advertise_hosts", opt_stringptr, &auth_advertise_hosts }, + { "auth_hack_outlook4", opt_bool, &auth_hack_outlook4 }, { "auto_thaw", opt_time, &auto_thaw }, { "bi_command", opt_stringptr, &bi_command }, { "bounce_message_file", opt_stringptr, &bounce_message_file }, diff -ru exim-4.44.orig/src/smtp_in.c exim-4.44/src/smtp_in.c --- exim-4.44.orig/src/smtp_in.c 2005-01-11 14:30:55 +0100 +++ exim-4.44/src/smtp_in.c 2005-02-16 16:44:37 +0100 @@ -2470,7 +2470,9 @@ if (verify_check_host(&auth_advertise_hosts) == OK) { auth_instance *au; + int s_auth; BOOL first = TRUE; + s_auth=ptr; for (au = auths; au != NULL; au = au->next) { if (au->server && (au->advertise_condition == NULL || @@ -2493,7 +2495,15 @@ } else au->advertised = FALSE; } - if (!first) s = string_cat(s, &size, &ptr, US"\r\n", 2); + if (!first) + { + s = string_cat(s, &size, &ptr, US"\r\n", 2); + if (auth_hack_outlook4) + { + s = string_cat(s, &size, &ptr, s+s_auth,ptr-s_auth); + *(s+s_auth+8)='='; + } + } } }