]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Auth plain/login seesm working no memory leak
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 2 Jul 2025 19:39:04 +0000 (15:39 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 2 Jul 2025 19:39:04 +0000 (15:39 -0400)
data-feed/feedxx.tst
lib/lvleml.c
lib/modrec.c

index e596bd912196836211cee83fa9a0367a6c5914c2..845b533725bc9fb634c44e80a0a4d91bcba81c41 100644 (file)
@@ -29,9 +29,11 @@ S:bWFpbGxldXI=
 R:235 5.7.5 Authentication successful
 S:AUTH PLAIN AHVzZXIxQG1haWxwb3N0Zy5leGFtcGxlLmNvbQBtYWlsbGV1cg==
 R:504 5.7.4 authentication failed
-S:AUTH PLAIN QmlncmVfYmlncmUgbm91c2Vy
+#\0bigre_bigre\0nouser
+S:AUTH PLAIN XDBiaWdyZV9iaWdyZVwwbm91c2Vy
 R:504 5.7.4 authentication failed
-S:AUTH PLAIN cG9zdG1hc3RlckBleGFtcGxlLmNvbSBub3Bhc3N3ZA==
+#\0postmaster@example.com\0nopasswd
+S:AUTH PLAIN XDBwb3N0bWFzdGVyQGV4YW1wbGUuY29tXDBub3Bhc3N3ZA==
 R:504 5.7.4 authentication failed
 S:QUIT
 R:221 2.0.0 Bye, closing connection...
index 362aacd556723fba19e46324f03c0cd6c8993772..66f0361bc8396478b8c8a4c7ee0145a7caaf757b 100644 (file)
@@ -317,7 +317,6 @@ char local[200];
 decoded=(char *)0;
 (void) memset(local,'\000',sizeof(local));
 (void) strncpy(local,received,sizeof(local)-1);
-(void) rou_alert(0,"%s received=<%s",OPEP,received);
 if (strlen(local)==0) {
   char *line;
   int got;
@@ -333,7 +332,6 @@ if (strlen(local)==0) {
   }
 if (strlen(local)>0) 
   decoded=cnv_getb64(local);
-(void) rou_alert(0,"%s decoded=<%s",OPEP,decoded);
 return decoded;
 
 #undef  OPEP
@@ -529,26 +527,31 @@ while (proceed==true) {
         }
       break;
     case 4      :       //we have a decoded sequence, check password
-      if (checklogin(contact->sqlptr,decoded)==false) {
+      isok=checklogin(contact->sqlptr,decoded);
+      break;
+    case 5      :       //we have login status
+      if (strlen(decoded)>0) {   //always
         char *data[3];
         const char *fmt;
         
         (void) memset(data,'\000',sizeof(data));
         (void) split_auth_plain(decoded,data);
-        fmt="    Auth Rejected status='%d' for user=<%s> pass=<%s>";
-        (void) log_fprintlog(contact->logptr,true,fmt,BADAUTH,data[1],data[2]);
-        (void) sleep(2);
-        (void) transmit(contact,true,"%d 5.7.4 authentication failed",BADAUTH);
+        fmt="    Auth accepted for user=<%s>";
+        if (isok==false) {
+          fmt="    Auth Rejected status='%d' for user=<%s> pass=<%s>";
+          (void) log_fprintlog(contact->logptr,true,fmt,BADAUTH,data[1],data[2]);
+          (void) sleep(2);
+          (void) transmit(contact,true,"%d 5.7.4 authentication failed",BADAUTH);
+          }
+        else {
+          (void) log_fprintlog(contact->logptr,true,fmt,data[1]);
+          (void) transmit(contact,true,"%d 5.7.5 Authentication successful",IDOK);
+          }
         for (int i=0;i<3;i++) 
           data[i]=rou_freestr(data[i]);
-        phase=999;
         }
       decoded=rou_freestr(decoded);
       break;
-    case 5      :       //everything is fine
-      (void) transmit(contact,true,"%d 5.7.5 Authentication successful",IDOK);
-      isok=true;
-      break;
     default     :       //SAFE Guard
       proceed=false;
       break;
index bda80e66f46e6b673742552187b5501c13a42a03..e9da5992a8d2fb54f9b7d01882e42e3b7e9e66eb 100644 (file)
@@ -50,7 +50,6 @@ while (data!=(char *)0) {
     ptr++;
     }
   seg=strdup(data);
-  (void) rou_alert(0,"JMPDBG seg=<%s>",seg);
   confargv=(char **)rou_addlist((void **)confargv,(void *)seg);
   data=ptr;
   }
@@ -393,10 +392,6 @@ while (proceed==true) {
   //(void) rou_alert(0,"JMPDBG %s phase='%d'",OPEP,phase);
   switch (phase) {
     case 0      :       //preparing iteration
-      //JMPDBG
-      for (int i=0;i<argc;i++)
-        (void) rou_alert(0,"%s JMPDBG argv[%d]=<%s>",OPEP,i,argv[i]);
-      //JMPDBG
       if ((nbrbind=prepbinding(&bindings,argc,argv))==0) {
         (void) rou_alert(0,"%s, No listening IP found (config?)",OPEP);
         phase=999;