]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Working out the 'L' versus 'R' assignation according binding
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Sat, 21 Jun 2025 14:46:15 +0000 (10:46 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Sat, 21 Jun 2025 14:46:15 +0000 (10:46 -0400)
lib/lvleml.c
lib/lvleml.h
lib/unitls.c

index bf55c5dbfeec852c0b8f4088db9114362b2db884..4cc06bf7c18b89dec034a3a34bea54d5502bd5b1 100644 (file)
@@ -50,6 +50,7 @@ if (contact!=(CONTYP *)0) {
   contact->peername=rou_freestr(contact->peername);
   contact->peerip=rou_freestr(contact->peerip);
   contact->locserv=rou_freestr(contact->locserv);
+  contact->localafn=afn_freeipnum(contact->localafn);
   contact->locip=rou_freestr(contact->locip);
   contact->locname=rou_freestr(contact->locname);
   (void) free(contact);
@@ -90,8 +91,11 @@ while (proceed==true) {
       break;
     case 1      :       //check about local domain, TEMPORARY code
       int status;
+      AFNTYP *afns[2];
 
-      status=dns_is_domain_local(rcpt->domain,tls_get_bind_afn());
+      (void) memset(afns,'\000',sizeof(afns));
+      afns[0]=contact->localafn;
+      status=dns_is_domain_local(rcpt->domain,afns);
       switch (status) {
         case dns_nomx   :
           done=false;
@@ -1598,6 +1602,7 @@ while (proceed==true) {
       contact->cursesid=eml_getcursesid(contact->mainsesid,contact->numreset);
       contact->locname=soc_getaddrinfo(contact->socptr,true,true);
       contact->locip=soc_getaddrinfo(contact->socptr,true,false);
+      contact->localafn=afn_getipnum(contact->locip);
       if (contact->locip!=(char *)0) {
         char *ptr;
         
index a3a1244918b2036838288441491276405a41333f..32cfa3cf757849eae1744b53a30e7fc41a3ae87b 100644 (file)
@@ -19,11 +19,12 @@ typedef struct  {
         SOCPTR *socptr;         //established contact socket context
         SQLPTR *sqlptr;         //established contact database access
         char *fqdn;             //fully qualified domain from peer
-        char *locname;          //socket local hostname
         char *locip;            //socket local IP num
+        AFNTYP *localafn;       //local IP as an AFNUM
+        char *locname;          //socket local hostname
         char *locserv;          //local service port
-        char *peerip;           //socket remote peer IP
         char *peername;         //socket remote peer FQDN
+        char *peerip;           //socket remote peer IP
         int numreset;           //number of SMTP reset received
         char *mainsesid;        //session main ID
         char *cursesid;         //current session ID
index 5e443aea07849f924c104def5ef311d17554877d..80e8c231d63cb11aa7fff429d52f5e888ff56f3a 100644 (file)
@@ -495,6 +495,7 @@ while (proceed==true) {
           list->port=strdup(port);;
           list->iteration=iteration;
           list->afn=afn;
+          (void) rou_alert(0,"%s JMPDBG adding afn=<%s>",OPEP,afn->strnumip);
           binds=(const LISTYP **)rou_addlist((void **)binds,(void *)list);
           afns=(AFNTYP **)rou_addlist((void **)afns,(void *)afn);
           }