From 35a72ec8acba2425a44bd515766aa640d07b2d15 Mon Sep 17 00:00:00 2001 From: "Jean-Marc Pigeon (Delson)" Date: Sat, 7 Jun 2025 16:41:21 -0400 Subject: [PATCH] connect_to_mx start to work --- lib/lvleml.c | 36 ++++++++++++++++++++++++++++++++---- lib/unieml.h | 2 ++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/lib/lvleml.c b/lib/lvleml.c index 62e4d18..f8362d8 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -25,9 +25,10 @@ #include "lvleml.h" typedef struct { - SOCPTR *socptr; - LOGPTR *logptr; - MXTYP **mxs; + SOCPTR *socptr; //socket to remote pointer + LOGPTR *logptr; //Log pointer + const char *domain; //Domain to be reached + MXTYP **mxs; //MX list form domain }RMTTYP; /* ^L @@ -696,7 +697,33 @@ phase=0; proceed=true; while (proceed==true) { switch (phase) { - case 0 : //do ve have MX + case 0 : //do we have MX + if (rmt->mxs==(MXTYP **)0) { + (void) log_fprintlog(rmt->logptr,false,"NO MX found for domain <%s>", + rmt->domain); + phase=999; + } + break; + case 1 : //Trying to connect + MXTYP **mxs; + const char *srcip; + + mxs=rmt->mxs; + srcip=(const char *)0; + while (*mxs!=(MXTYP *)0) { + rmt->socptr=soc_openfeedsock(pro_smtp,srcip,(*mxs)->mxname,EMLPORT); + if (rmt->socptr!=(SOCPTR *)0) { + char cmt[100]; + + (void) snprintf(cmt,sizeof(cmt),"Now Connected to MX <%s>", + (*mxs)->mxname); + (void) log_fprintlog(rmt->logptr,false,cmt); + break; + } + mxs++; + } + if (rmt->socptr==(SOCPTR *)0) + phase=999; break; default : //SAFE Guard proceed=false; @@ -728,6 +755,7 @@ _Bool proceed; isnow=time((time_t *)0); (void) memset(&rmt,'\000',sizeof(rmt)); rmt.mxs=dns_getmx(domain); +rmt.domain=domain; tosend=(TRATYP **)0; phase=0; proceed=true; diff --git a/lib/unieml.h b/lib/unieml.h index 5a9d702..31890e4 100644 --- a/lib/unieml.h +++ b/lib/unieml.h @@ -32,6 +32,8 @@ #define SENDER "sender" //application email sender #define SORTER "sorter" //application email sorter +#define EMLPORT "25" //Default SMTP email port + //list of keyword typedef enum { //list of SMTP protocol keyword c_data, //DATA email contents transfer request -- 2.47.3