]> Pileus Git - ~andy/fetchmail/commitdiff
SockClose() abstraction.
authorEric S. Raymond <esr@thyrsus.com>
Sat, 25 Jul 1998 14:20:54 +0000 (14:20 -0000)
committerEric S. Raymond <esr@thyrsus.com>
Sat, 25 Jul 1998 14:20:54 +0000 (14:20 -0000)
svn path=/trunk/; revision=2021

driver.c
imap.c
socket.c
socket.h

index 1ce13b5d06269c183935fabd77ff8e9e0acfe121..f009915830300a78229e50ebfe3b00b28c82e52e 100644 (file)
--- a/driver.c
+++ b/driver.c
@@ -406,7 +406,7 @@ static int smtp_open(struct query *ctl)
             * RFC 1869 warns that some listeners hang up on a failed EHLO,
             * so it's safest not to assume the socket will still be good.
             */
-           close(ctl->smtp_socket);
+           SockClose(ctl->smtp_socket);
            ctl->smtp_socket = -1;
 
            /* if opening for ESMTP failed, try SMTP */
@@ -417,7 +417,7 @@ static int smtp_open(struct query *ctl)
                    SMTP_helo(ctl->smtp_socket, id_me) == SM_OK)
                break;  /* success */
 
-           close(ctl->smtp_socket);
+           SockClose(ctl->smtp_socket);
            ctl->smtp_socket = -1;
        }
        set_timeout(0);
@@ -1780,7 +1780,7 @@ const struct method *proto;       /* protocol method table */
        if (ctl->smtp_socket != -1)
            close(ctl->smtp_socket);
        if (sock != -1)
-           close(sock);
+           SockClose(sock);
        if (sinkfp)
            pclose(sinkfp);
        ok = PS_ERROR;
@@ -2305,13 +2305,13 @@ const struct method *proto;     /* protocol method table */
         */
        if (ok == 0)
            ok = (fetches > 0) ? PS_SUCCESS : PS_NOMAIL;
-       close(sock);
+       SockClose(sock);
        goto closeUp;
 
     cleanUp:
        if (ok != 0 && ok != PS_SOCKET)
            (protocol->logout_cmd)(sock, ctl);
-       close(sock);
+       SockClose(sock);
     }
 
     msg = (char *)NULL;                /* sacrifice to -Wall */
diff --git a/imap.c b/imap.c
index 412e1dc86faa8eb43706f7adab6294762dec8fbe..c1187cf68b824af1bc1fa051d753a7f7fda33b17 100644 (file)
--- a/imap.c
+++ b/imap.c
@@ -607,7 +607,7 @@ int imap_getauth(int sock, struct query *ctl, char *greeting)
        {
            imap_version = IMAP4;
            if (outlevel == O_VERBOSE)
-           error(0, 0, "Protocol identified as IMAP4 rev 0");
+               error(0, 0, "Protocol identified as IMAP4 rev 0");
        }
     }
     else if (ok == PS_ERROR)
@@ -622,11 +622,12 @@ int imap_getauth(int sock, struct query *ctl, char *greeting)
     peek_capable = (imap_version >= IMAP4);
 
 #if OPIE
-    if ((ctl->server.protocol == P_IMAP) && strstr(capabilities, "AUTH=X-OTP")) {
-      if (outlevel == O_VERBOSE)
-        error(0, 0, "OTP authentication is supported");
-      if (do_otp(sock, ctl) == PS_SUCCESS)
-        return PS_SUCCESS;
+    if ((ctl->server.protocol == P_IMAP) && strstr(capabilities, "AUTH=X-OTP"))
+    {
+       if (outlevel == O_VERBOSE)
+           error(0, 0, "OTP authentication is supported");
+       if (do_otp(sock, ctl) == PS_SUCCESS)
+           return(PS_SUCCESS);
     };
 #endif /* OPIE */
 
index 3ba586962b0f2428f7b842ee2619873791caa217..24f64af74d13ac8af843907ebf2d43b7fb6ad80d 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -220,6 +220,12 @@ int SockPeek(int sock)
        return(ch);
 }
 
+int SockClose(int sock)
+/* close a socket (someday we may do other cleanup here) */
+{
+    return(close(sock));
+}
+
 #ifdef MAIN
 /*
  * Use the chargen service to test input beuffering directly.
@@ -233,6 +239,7 @@ main()
 
     while (SockRead(sock, buf, sizeof(buf)-1))
        SockWrite(1, buf, strlen(buf));
+    SockClose(sock);
 }
 #endif /* MAIN */
 
index 7e8441a80cee0add915926f303a6303f4d35d2d2..89907745a235608e87f3db3be8dd0900959524fe 100644 (file)
--- a/socket.h
+++ b/socket.h
@@ -43,4 +43,10 @@ int SockPrintf(int sock, char *format, ...) ;
 int SockPrintf();
 #endif
  
+/*
+Close a socket previously opened by SockOpen.  This allows for some
+additional clean-up if necessary.
+*/
+int SockClose(int sock);
+
 #endif /* SOCKET__ */