]> SAFE projects GIT repository - jmp/mailleur/commitdiff
relayable afn list should be ready to be used
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 16 Jul 2025 14:26:21 +0000 (10:26 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 16 Jul 2025 14:26:21 +0000 (10:26 -0400)
lib/Makefile
lib/lvleml.c
lib/lvleml.h
lib/unieml.c
lib/unieml.h

index 2824fc1300035688ff0019ece4ab95ad75235780..7e79c7edc9cc514bdb120d64acd2f98bba19528c 100644 (file)
@@ -159,7 +159,9 @@ devsql.h:                                   \
 uniprc.h:                                      \
           subrou.h
 
-unitls.h:                                      \
+unieml.h                                       \
+unitls.h                                       \
+       :                                       \
           subafn.h
 
 libpos.a:  unimar.o                            \
index 892f3bb71fc3094c46ff5d70228baf68ce7b7023..b5b9443f8f2c99a23a513cfc945815b20d91c394 100644 (file)
@@ -88,8 +88,8 @@ if (contact!=(CONTYP *)0) {
   (void) freesessid(contact);
   contact->sqlptr=sql_closesql(contact->sqlptr);
   contact->logptr=log_closelog(contact->logptr);
-  contact->relayok=(char **)rou_freelist((void **)contact->relayok,
-                                         (genfree_t)rou_freestr);
+  contact->relayok=(AFNTYP **)rou_freelist((void **)contact->relayok,
+                                         (genfree_t)afn_freeipnum);
   contact->recipients=(RCPTYP **)rou_freelist((void **)contact->recipients,
                                               (genfree_t)eml_freerecipient);
   contact->authname=rou_freestr(contact->authname);
@@ -2345,6 +2345,7 @@ while (proceed==true) {
         }
       break;
     case 2      :       //loading the relayable IP list
+      //contact->relayok=eml_load_relayed(getenv(RELAYS));
       contact->relayok=eml_load_relayed(getenv(RELAYS));
       break;
     case 3      :       //waiting from contact
index 41c11eeb6b9e2b3b90bfa67d080670a78925d484..095cf7e417b91967949a144610277af9c92798bb 100644 (file)
@@ -28,7 +28,7 @@ typedef struct  {
         char *locserv;          //local service port
         char *peername;         //socket remote peer FQDN
         char *peerip;           //socket remote peer IP
-        char **relayok;         //List of IP which are relayable
+        AFNTYP **relayok;       //List of IP which are relayable
         int numreset;           //number of SMTP reset received
         char *mainsesid;        //session main ID
         SESTYP *session;        //SMTP current session information
index 320de799e2b75b40421fa91db16280b9cd32eace..930b2f08665335e644e5ebe39087e6937015cedc 100644 (file)
@@ -17,6 +17,7 @@
 #include        <unistd.h>
 #include        <uuid/uuid.h>
 
+#include       "subafn.h"
 #include       "subrou.h"
 #include       "unieml.h"
 
@@ -432,18 +433,18 @@ return qfile;
 /*      relayed.                                        */
 /*                                                      */
 /********************************************************/
-PUBLIC char **eml_load_relayed(char *relayedfile)
+PUBLIC AFNTYP **eml_load_relayed(char *relayedfile)
 
 {
 #define OPEP    "unieml.c:eml_load_relayed,"
 
-char **list;
+AFNTYP **list;
 char *filename;
 FILE *relays;
 int phase;
 _Bool proceed;
 
-list=(char **)0;
+list=(AFNTYP **)0;
 filename=(char *)0;
 relays=(FILE *)0;
 phase=0;
@@ -470,24 +471,19 @@ while (proceed==true) {
     
       num=0; 
       while (fgets(line,sizeof(line)-1,relays)!=(char *)0) {
-        char *mask;
-        struct sockaddr_in sa;
+        AFNTYP *afn;
 
         num++;
         (void) rou_clean_conf_line(line);
         if (strlen(line)==0)
           continue;
-        if ((mask=strrchr(line,'/'))!=(char *)0)
-          *mask='\000';
-        if (inet_pton(AF_INET,line,&(sa.sin_addr))<=0) {
+        if ((afn=afn_getoneipnum(line))==(AFNTYP *)0) {
           (void) rou_alert(0,"%s line='%03d' <%s> not a valid IP "
                              "(error=<%s>, config?)",
                              OPEP,num,line,strerror(errno));
           continue;
           }
-        if (mask!=(char *)0)
-          *mask='/';
-        list=(char **)rou_addlist((void **)list,strdup(line));
+        list=(AFNTYP **)rou_addlist((void **)list,(void *)afn);
         }
       }
       break;
index a29c91373702fee7f9b2b3492ba3c3743a3513f5..5e24048b26fd78f828c3781ef334699b86cf8a22 100644 (file)
@@ -10,6 +10,8 @@
 
 #include        <stdio.h>
 
+#include        "subafn.h"     
+
 #define HFROM   "From: "        //Then email header header from
 #define HTITLE  "Subject: "     //Then email subject entry
 
@@ -140,7 +142,7 @@ extern FILE *eml_closeqfile(FILE *qfile);
 
 //Procedure to load the list of IP/Network from
 //which incoming email can be relayed to another domain MX
-extern char **eml_load_relayed(char *relayedfile);
+extern AFNTYP **eml_load_relayed(char *relayedfile);
 
 //Procedure to list all file within queue directory
 //and with a specific extenstion