]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Adding closeonesock procedure
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 19 Mar 2025 09:16:18 +0000 (05:16 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 19 Mar 2025 09:16:18 +0000 (05:16 -0400)
lib/devsoc.c
lib/devsoc.h
lib/subrou.c

index 314631e8de9d4db029ae92fa4b40975240272776..2ce895dbca61804f99e458c0528bc4ae7f954cc7 100644 (file)
@@ -646,6 +646,51 @@ return (SOCPTR *)soc;
 #undef  OPEP
 }
 /*
+\f
+*/
+/********************************************************/
+/*                                                     */
+/*     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
 */
 /********************************************************/
index 495b26b1189eec2fd346b90d6fac7d066ab8a563..c6797375dfa0a1c980ace394c340aac0f517598f 100644 (file)
@@ -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
index acf03892818f0954c70c29ccee4c3e3c599f647f..f14523d143f623d1a887433f27961c74aaeee4d6 100644 (file)
@@ -21,7 +21,7 @@
 
 //version definition 
 #define VERSION "0.6"
-#define RELEASE "6"
+#define RELEASE "7"
 
 //Public variables
 PUBLIC  int debug=0;            //debug level