]> Pileus Git - ~andy/fetchmail/commitdiff
Copy loop has monitoring and termination now.
authorEric S. Raymond <esr@thyrsus.com>
Wed, 7 Feb 2001 08:09:57 +0000 (08:09 -0000)
committerEric S. Raymond <esr@thyrsus.com>
Wed, 7 Feb 2001 08:09:57 +0000 (08:09 -0000)
svn path=/trunk/; revision=3030

odmr.c

diff --git a/odmr.c b/odmr.c
index d0623c0f45181e6b5b28bd379749fa718a31f551..95da24691ab365a38d1625b4f8e3f8d9ac33c80b 100644 (file)
--- a/odmr.c
+++ b/odmr.c
@@ -125,7 +125,7 @@ static int odmr_getrange(int sock, struct query *ctl, const char *id,
      * throw their data at each other.
      */
     smtp_sock = SockOpen(ctl->smtphost, SMTP_PORT, NULL, NULL);
-    if (smtp_sock)
+    if (smtp_sock == -1)
        return(PS_SOCKET);
     else
     {
@@ -150,14 +150,25 @@ static int odmr_getrange(int sock, struct query *ctl, const char *id,
            if (FD_ISSET(sock, &readfds))
            {
                int n = SockRead(sock, buf, sizeof(buf));
+               if (n <= 0)
+                   break;
+
                SockWrite(smtp_sock, buf, n);
+               if (outlevel >= O_MONITOR)
+                   report(stdout, "ODMR< %s\n", buf);
            }
            if (FD_ISSET(smtp_sock, &readfds))
            {
                int n = SockRead(smtp_sock, buf, sizeof(buf));
+               if (n <= 0)
+                   break;
+
                SockWrite(sock, buf, n);
+               if (outlevel >= O_MONITOR)
+                   report(stdout, "ODMR> %s\n", buf);
            }
        }
+       SockClose(smtp_sock);
     }
 
     return(0);