]> Pileus Git - ~andy/fetchmail/blobdiff - odmr.c
Minor bug fixes for socket.c
[~andy/fetchmail] / odmr.c
diff --git a/odmr.c b/odmr.c
index 18ef2e635e9d6e96698353bef557f3a9a9d410b5..d495e9cd0223713270710c20acb0a601c75f4178 100644 (file)
--- a/odmr.c
+++ b/odmr.c
@@ -27,6 +27,7 @@
 #include  <unistd.h>
 #include  "i18n.h"
 #include  "fetchmail.h"
+#include  "sdump.h"
 #include  "smtp.h"
 #include  "socket.h"
 
@@ -35,7 +36,8 @@ static int odmr_ok (int sock, char *argbuf)
 {
     int ok;
 
-    ok = SMTP_ok(sock, SMTP_MODE);
+    (void)argbuf;
+    ok = SMTP_ok(sock, SMTP_MODE, TIMEOUT_DEFAULT);
     if (ok == SM_UNRECOVERABLE)
        return(PS_PROTOCOL);
     else
@@ -51,6 +53,7 @@ static int odmr_getrange(int sock, struct query *ctl, const char *id,
     char buf [MSGBUFSIZE+1];
     struct idlist *qnp;                /* pointer to Q names */
 
+    (void)id;
     if ((ok = SMTP_ehlo(sock, SMTP_MODE, fetchmailhost, 
                        ctl->server.esmtp_name, ctl->server.esmtp_password,
                        &opts)))
@@ -124,9 +127,12 @@ static int odmr_getrange(int sock, struct query *ctl, const char *id,
        report(stderr, GT_("Authentication required.\n"));
        return(PS_AUTHFAIL);
 
-    default:
-       report(stderr, GT_("Unknown ODMR error %d\n"), atoi(buf));
-       return(PS_PROTOCOL);
+    default: {
+           char *t = sdump(buf, strlen(buf));
+           report(stderr, GT_("Unknown ODMR error \"%s\"\n"), t);
+           xfree(t);
+           return(PS_PROTOCOL);
+       }
     }
 
     /*
@@ -136,7 +142,7 @@ static int odmr_getrange(int sock, struct query *ctl, const char *id,
      * instead, we'll use select(2) to watch the read sides of both
      * sockets and just throw their data at each other.
      */
-    if ((smtp_sock = smtp_open(ctl)) == -1)
+    if ((smtp_sock = smtp_setup(ctl)) == -1)
        return(PS_SOCKET);
     else
     {
@@ -146,7 +152,6 @@ static int odmr_getrange(int sock, struct query *ctl, const char *id,
        {
            fd_set      readfds;
            struct timeval timeout;
-           char        buf[MSGBUFSIZE];
 
            FD_ZERO(&readfds);
            FD_SET(sock, &readfds);