]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Checking timeout condition on connect
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Tue, 10 Jun 2025 13:43:36 +0000 (09:43 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Tue, 10 Jun 2025 13:43:36 +0000 (09:43 -0400)
lib/geseml.c
lib/lvleml.c
lib/unieml.h

index 589366acdfd2e170e3a0750d920eb0595534129c..d33729cb6a949f655173e1a67251ff854c2693fb 100644 (file)
@@ -698,20 +698,24 @@ switch (fork()) {
   case 0        :       //the forked process
     char *execpath;
     char *argv[10];
+    char dbgstr[10];
     char buffer[300];
 
     (void) memset(argv,'\000',sizeof(argv));
+    (void) snprintf(dbgstr,sizeof(dbgstr),"%d",debug);
     (void) snprintf(buffer,sizeof(buffer),"%s%s",SBINDIR,SENDER);        
     execpath=rou_apppath(buffer);
     (void) snprintf(buffer,sizeof(buffer),"%s.%s",todo,EXTODO);
     argv[0]=SENDER;
     argv[1]="-c";
     argv[2]=config;
-    argv[3]=buffer;
+    argv[3]="-d";
+    argv[4]=dbgstr;
+    argv[5]=buffer;
     if (rootdir!=(char *)0) {
-      argv[3]="-r";
-      argv[4]=rootdir;
-      argv[5]=buffer;
+      argv[5]="-r";
+      argv[6]=rootdir;
+      argv[7]=buffer;
       }
     (void) rou_alert(0,"%s JMPDBG starting sender=<%s> todo= <%s>",
                         OPEP,execpath,buffer);
index e3f9cc04a53f45197e271e63370273006ca850ec..f36c89ca250fa762da2bfcd955e87c546c487082 100644 (file)
@@ -795,6 +795,8 @@ return done;
 static _Bool connect_to_mx(RMTTYP *rmt)
 
 {
+#define OPEP    "lvleml.c:connect_to_mx,"
+
 _Bool done;
 int phase;
 int proceed;
@@ -819,6 +821,8 @@ while (proceed==true) {
       srcip=(const char *)0;
       while (*mxs!=(MXTYP *)0) {
         rmt->curmx=*mxs;
+        (void) rou_alert(0,"%s JMPDBG trying connect to <%s>",
+                            OPEP,rmt->curmx->mxname);
         rmt->socptr=soc_openfeedsock(pro_smtp,srcip,rmt->curmx->mxname,EMLPORT);
         if (rmt->socptr!=(SOCPTR *)0) {
           char cmt[100];
@@ -858,6 +862,8 @@ while (proceed==true) {
   phase++;
   }
 return done;
+
+#undef  OPEP
 }
 /*
 ^L
@@ -1034,6 +1040,18 @@ while (proceed==true) {
         (void) snprintf(cmt,sizeof(cmt),"Unable to contact ANY MX for domain <%s>",
                                          dstdomain); 
         (void) log_fprintlog(rmt.logptr,false,cmt);
+        if (tra!=(TRATYP **)0) {
+          char note[150];
+
+          (void) snprintf(note,sizeof(note),"%d %s",NOANSWR,cmt);
+          while (*tra!=(TRATYP *)0) {
+            register char **resp;
+
+            resp=(char **)0;
+            (*tra)->resp=(char **)rou_addlist((void **)resp,(void *)strdup(note));
+            tra++;
+            }
+          }
         phase=999;      //No need to go further
         }
       break;
index ad886dc29d9721718471ff91a606894eeb8ccae3..a325007c7adb8d8e08dc3ed43526d387ea410b45 100644 (file)
@@ -17,6 +17,7 @@
 #define        CMDOK   250             //Everything OK
 #define        DATAOK  354             //Ready to accept EMAIL data
 #define        ERRPROC 451             //local processing error
+#define NOANSWR 460             //no answer from remote
 #define BADPAR  501             //error in parameters
 #define CMDBAD  502             //command not implemented
 #define DATRJC  521             //Data Rejected