From 23de35eb5c246b917d01e9a8595f621ecbdfb9a0 Mon Sep 17 00:00:00 2001 From: "Jean-Marc Pigeon (Delson)" Date: Sat, 3 May 2025 13:31:19 -0400 Subject: [PATCH] Opening tls in server mode is working --- lib/devsoc.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/lib/devsoc.c b/lib/devsoc.c index 85765ac..8ed19e4 100644 --- a/lib/devsoc.c +++ b/lib/devsoc.c @@ -1377,6 +1377,7 @@ return socptr; PUBLIC _Bool soc_starttls(SOCPTR *socptr,_Bool server) { +#define OPEP "devsoc.c:soc_starttls," _Bool ok; SOCTYP *soc; @@ -1388,19 +1389,34 @@ if ((soc!=(SOCTYP *)0)&&(soc->modtls==false)) { char buffer[100]; peerip=soc_getaddrinfo(socptr,false,false); - (void) usleep(100000); //lets wait for 100 millisec - tosend=snprintf(buffer,sizeof(buffer),"%d 2.0.0 Ready to start TLS%s", - SIGNON,CRLF); - (void) soc_writebuffer(soc,buffer,tosend); - if ((soc->tls=tls_opentls(soc->handle,true))!=(TLSTYP *)0) { + switch (server) { + case true : + (void) usleep(100000); //lets wait for 100 millisec + tosend=snprintf(buffer,sizeof(buffer),"%d 2.0.0 Ready to start TLS%s", + SIGNON,CRLF); + (void) soc_writebuffer(soc,buffer,tosend); + soc->tls=tls_opentls(soc->handle,true); + break; + case false : + (void) rou_alert(0,"%s JMPDBG starting cleint mode",OPEP); + break; + } + if (soc->tls!=(TLSTYP *)0) { soc->proto=pro_smtps; soc->modtls=true; - (void) socpurge(soc,peerip); ok=true; + switch (server) { + case true : + (void) socpurge(soc,peerip); + break; + case false : + break; + } } peerip=rou_freestr(peerip); } return ok; +#undef OPEP } /* ^L -- 2.47.3