From: Jean-Marc Pigeon (Delson) Date: Wed, 19 Mar 2025 09:16:18 +0000 (-0400) Subject: Adding closeonesock procedure X-Git-Tag: tag-0.7~68 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=f5c47e3b83d49bedb69a0c7dc16ec9c2f2512049;p=jmp%2Fmailleur Adding closeonesock procedure --- diff --git a/lib/devsoc.c b/lib/devsoc.c index 314631e..2ce895d 100644 --- a/lib/devsoc.c +++ b/lib/devsoc.c @@ -646,6 +646,51 @@ return (SOCPTR *)soc; #undef OPEP } /* + +*/ +/********************************************************/ +/* */ +/* Procedure to close an exchange socket sonnected */ +/* server. Return a so remote smtp server. */ +/* */ +/********************************************************/ +PUBLIC SOCPTR *soc_closeonesock(SOCPTR *socptr) + +{ +#define OPEP "devsoc.c:soc_closeonesoc" + +SOCTYP *soc; +int phase; +_Bool proceed; + +soc=(SOCTYP *)socptr; +phase=0; +proceed=true; +while (proceed==true) { + switch (phase) { + case 0 : //Do we have an opened socket + if (soc==(SOCTYP *)0) { + (void) rou_alert(0,"%s, Aborting, socket is null (bug?)",OPEP); + phase=999; //no need to go further + } + break; + case 1 : //let close the socket + if (close(soc->handle)<0) { + (void) rou_alert(0,"%s, error on closing socket '%s.%s' (error=<%s>)", + OPEP,soc->ip,soc->port,strerror(errno)); + } + socptr=freesocket(socptr); + break; + default : //SAFE Guard + proceed=false; + break; + } + phase++; + } +return socptr; +#undef OPEP +} +/* ^L */ /********************************************************/ diff --git a/lib/devsoc.h b/lib/devsoc.h index 495b26b..c679737 100644 --- a/lib/devsoc.h +++ b/lib/devsoc.h @@ -42,7 +42,7 @@ extern SOCPTR **soc_mkbindinf(SOCPTR **s,PROTYP proto, //to connect a remote smtp server extern SOCPTR *soc_openonesock(PROTYP proto,const char *ip,const char *port); -//procedure to cloe and exchange socket connected to a remote smtp server +//procedure to close an exchange socket connected to a remote smtp server extern SOCPTR *soc_closeonesock(SOCPTR *socptr); //procedure to return the number of channel to open on the soc diff --git a/lib/subrou.c b/lib/subrou.c index acf0389..f14523d 100644 --- a/lib/subrou.c +++ b/lib/subrou.c @@ -21,7 +21,7 @@ //version definition #define VERSION "0.6" -#define RELEASE "6" +#define RELEASE "7" //Public variables PUBLIC int debug=0; //debug level