]> SAFE projects GIT repository - jmp/mailleur/commitdiff
ORGN command is working within receiver and feeder
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Tue, 15 Jul 2025 03:39:28 +0000 (23:39 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Tue, 15 Jul 2025 03:39:28 +0000 (23:39 -0400)
app/feeder.c
data-feed/feed05.tst
lib/Makefile
lib/devsoc.c
lib/lvleml.c

index b080e194d5f14c3fd87dc245b92b8f9768f4e10d..31056a0fa4bbf116d0d839e57bab0e276655d3f9 100644 (file)
@@ -433,7 +433,10 @@ switch (getcmd(line)) {
     break;
   case cmd_orgn       :       //send command to override client IP
     if (param!=(char *)0) {
-      (void) sendout(fd->socptr,line);
+      char cmd[100];
+
+      (void) snprintf(cmd,sizeof(cmd)-1,"%s %s",line,param);
+      (void) sendout(fd->socptr,cmd);
       }
     else {
       (void) report(*numline,line,"Missing new PEER IP value");
index 5f1ac1f2ef983eb6931f0663472cea5410275ac2..a203b49868cd136f86ee27e939139b60f19bf298 100644 (file)
@@ -1,10 +1,11 @@
 T:(feed05) Email testing remote server
+C:CONNECT
 #====================================================
 R:220 mailleur.example.com, ESMTP (cleartext) mailleur...
 C:ORGN: 91.199.160.44
-R:220 xxxmailleur.example.com, ESMTP (cleartext) mailleur...
+R:220 mailleur.example.com, ESMTP (cleartext) mailleur...
 S:helo example.com
-R:250 mailleur.example.com, link (cleartext) ready, your IP/FQDN=[127.127.99.25/No.Reverse]
+R:250 mailleur.example.com, link (cleartext) ready, your IP/FQDN=[91.199.160.44/painsmille.shop]
 S:MAIL FROM: <trouble@mailref1.example.com>
 R:457-4.5.7 Your Credential need to be checked
 R:457 5.5.3 Closing connection
index 9617ca36fd9f2bc88e6934ac365ba4ae0a0b27a2..2824fc1300035688ff0019ece4ab95ad75235780 100644 (file)
@@ -78,7 +78,7 @@ devlog.o:                                     \
 
 devsoc.o:                                      \
           subafn.h subrou.h                    \
-          unieml.h uniprc.h                    \
+          unidns.h unieml.h uniprc.h           \
           devsoc.h devsoc.c
 
 devsql.o:                                      \
index f3cd43317a953fc548e39d1edf78e4556582dcf1..26640051bda743b0ebb7fc7f45380bb81b365e1c 100644 (file)
@@ -19,6 +19,7 @@
 
 #include       "subrou.h"
 #include       "subafn.h"
+#include       "unidns.h"
 #include       "unieml.h"
 #include       "uniprc.h"
 #include       "unitls.h"
@@ -1402,7 +1403,7 @@ if (soc!=(SOCTYP *)0) {
         case EAI_AGAIN          :
         case EAI_NONAME         :
           if (getname==true)
-            (void) strcpy(host,"No.Reverse");
+            (void) strcpy(host,NORVERS);        //NO reverse name
         default                 :
           (void) rou_alert(0,"%s, Unable to get name (local=%d, error=<%s>)",
                               OPEP,local,strerror(errno));
index 04f3f74afa3d6974895bb384db7c2646c6261a5e..eeea4311991c202d2c4ff0fb7632d3c4fafcc387 100644 (file)
@@ -18,6 +18,7 @@
 #include        <time.h>
 #include        <unistd.h>
 
+#include       "subafn.h"
 #include       "subrou.h"
 #include       "subcnv.h"
 #include       "unidig.h"
@@ -353,8 +354,8 @@ while (proceed==true) {
     case 2      :       //freeing memory
       if (srv->credit<0) {
         status=NEWSITE;
-        (void) transmit(contact,true,"%d-4.5.7 Your Credential need to be checked",
-                                     status);
+        (void) transmit(contact,true,"%d-4.5.7 Your Credential (%3d) need "
+                                     "to be checked",status,srv->credit);
         phase=999;      //To many server connected
         }
       break;
@@ -1335,13 +1336,26 @@ return done;
 /*                                             */
 /************************************************/
 #ifdef  MODEDEBUG
-static _Bool setnewrmtip(CONTYP *contact,char *rmtip)
+static _Bool set_orgn_rmtip(CONTYP *contact,char *rmtip)
 
 {
 _Bool isok;
+AFNTYP **afns;
 
-isok=true;
-(void) rou_alert(0,"JMPDBG");
+isok=false;
+if ((afns=afn_getipnum(rmtip))!=(AFNTYP **)0) {
+  char *reverse;
+
+  reverse=afn_reversipnum(afns[0]);
+  contact->peerip=rou_freestr(contact->peerip);
+  contact->peerip=strdup(rmtip);
+  contact->peername=rou_freestr(contact->peername);
+  contact->peername=dns_get_reverse_addr(reverse);
+  reverse=rou_freestr(reverse);
+  afns=(AFNTYP **)rou_freelist((void **)afns,(genfree_t)afn_freeipnum);
+  isok=true;
+  }
+(void) signon(contact);
 return isok;
 }
 #endif
@@ -2210,7 +2224,7 @@ while (proceed==true) {
       break;
 #ifdef  MODEDEBUG
     case c_orgn         :       //Debug mode to override remote IP
-      proceed=setnewrmtip(contact,line);
+      proceed=set_orgn_rmtip(contact,line);
       break;
 #endif
     case c_auth         :       //Auth request