Hello,

   What order I need to apply the folowing patch's

http://www.nrg4u.com/qmail/qmail-ldap-1.03-20010501.patch.gz,
http://qmail.bayour.com/patches_ldap/qmail-ldap-control_20010502.patch.gz (--problem),
http://www.lifewithqmail.org/ldap/patches/smtp-auth/smtp-auth-20010501.patch
http://www.lifewithqmail.org/ldap/patches/smtp-after-pop/auth_pop.patch-20010501
http://www.lifewithqmail.org/ldap/patches/rbltag/rbltag-20010421.patch
http://www.lifewithqmail.org/ldap/patches/dash-trick/qmail-lspawn.c.patch-20010501

   I make a changes in smtp-auth, when someone in relay domains, do not
ask for Authentication, I have a lot of problems with netscape. This is
modified patch that I found in the net.
    
Marlon Costa

Ps.: Sorry, for my very BAD english, :-(

diff -uNr qmail-1.03-ldap/qmail-smtpd.c qmail-1.03/qmail-smtpd.c
--- qmail-1.03-ldap/qmail-smtpd.c       Sat May 12 14:05:49 2001
+++ qmail-1.03/qmail-smtpd.c    Sat May 12 14:06:11 2001
@@ -40,6 +40,9 @@
 #include "base64.h"
 #endif

+/* vhor */
+#include <syslog.h>
+
 #define MAXHOPS 100
 unsigned int databytes = 0;
 int timeout = 1200;
@@ -619,10 +622,16 @@
   out("\r\n250-PIPELINING\r\n");
 #ifdef USE_SMTPAUTH
 #ifdef USE_OLD_GREETING
-  out("250-AUTH=LOGIN PLAIN\r\n");
+  /* vhor */
+  if (! relayclient) {
+    out("250-AUTH=LOGIN PLAIN\r\n");
+  }
 #endif
 #ifdef USE_NEW_GREETING
-  out("250-AUTH LOGIN PLAIN\r\n");
+  /* vhor */
+  if (! relayclient) {
+    out("250-AUTH LOGIN PLAIN\r\n");
+  }
 #endif
 #endif
 #ifdef TLS
@@ -1171,7 +1180,7 @@

 static void smtpauth_authenticate(void)
 {
-  int st, pid, fds[2];
+  int st, pid, fds[2], i;

     if (pipe(fds)) {
       out("535 pipe failure\r\n");
@@ -1185,6 +1194,12 @@
     submit: /bin/checkpassword /bin/true

     */
+    /* vhor */
+    for(i=0;i<strlen(smtpauthlogin);i++) {
+      if (! isalnum(smtpauthlogin[i]) ) {
+        smtpauthlogin[i] = 'X';
+      }
+    }
     switch ((pid=fork())) {
       case -1: die_fork();
       case 0: close(fds[1]);
@@ -1205,8 +1220,12 @@

     if (wait_crashed(st))
       die_crash();
+    /* vhor */     
+    openlog("qsmtpd",0,LOG_MAIL);
     if (wait_exitcode(st) == 0) {
       out("235 go ahead\r\n");
+      /* vhor */   
+      syslog(LOG_DEBUG,"auth ok for login: %s",smtpauthlogin);
       flush();     
       relayok=relayclient="";
       authenticated=1;
@@ -1214,7 +1233,10 @@
       return;
     }              
     sleep(2);          
+    /* vhor */
+    /* out("235 auth failure, but go ahead\r\n"); */
     out("535 auth failure\r\n");
+    syslog(LOG_DEBUG,"auth fail for login: %s",smtpauthlogin);
     flush();
     return;
 }
@@ -1237,6 +1259,16 @@             
   /* Here i've added support for other auth types.

                                                [EMAIL PROTECTED]       */
+  /* if RELAYCLIENT set, do not know AUTH
+     (Netscape client try AUTH everytime and ask user for password
+      and it is unnecessary in local network.
+         [EMAIL PROTECTED]
+  */                
+  if (relayclient) {
+    out("502 unimplemented (#5.5.1)\r\n");
+    return;
+  }
+  
   if (!authenticated)
   {
     if ((ret=strncasecmp(arg,"login",5))==0)

Reply via email to