From: Jean-Marc Pigeon (Delson) Date: Sat, 21 Jun 2025 14:46:15 +0000 (-0400) Subject: Working out the 'L' versus 'R' assignation according binding X-Git-Tag: tag-0.9~57 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=7a1db6769576f1063241b33ebe418080c0b584af;p=jmp%2Fmailleur Working out the 'L' versus 'R' assignation according binding --- diff --git a/lib/lvleml.c b/lib/lvleml.c index bf55c5d..4cc06bf 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -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; diff --git a/lib/lvleml.h b/lib/lvleml.h index a3a1244..32cfa3c 100644 --- a/lib/lvleml.h +++ b/lib/lvleml.h @@ -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 diff --git a/lib/unitls.c b/lib/unitls.c index 5e443ae..80e8c23 100644 --- a/lib/unitls.c +++ b/lib/unitls.c @@ -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); }