X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=odmr.c;h=d495e9cd0223713270710c20acb0a601c75f4178;hb=7f6138ffd4935043382ce5f867ee9e177e0a9787;hp=e1fce32dc28229fdbea231d8ad82fcc238a9e633;hpb=7ff1619df0d9c4fc58119bd23e8e6904679db8b6;p=~andy%2Ffetchmail diff --git a/odmr.c b/odmr.c index e1fce32d..d495e9cd 100644 --- a/odmr.c +++ b/odmr.c @@ -27,6 +27,7 @@ #include #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))) @@ -80,11 +83,11 @@ static int odmr_getrange(int sock, struct query *ctl, const char *id, */ buf[0] = '\0'; for (qnp = ctl->domainlist; qnp; qnp = qnp->next) - if (strlen(buf) + strlen((const char *)qnp->id) + 1 >= sizeof(buf)) + if (strlen(buf) + strlen(qnp->id) + 1 >= sizeof(buf)) break; else { - strcat(buf, (const char *)qnp->id); + strcat(buf, qnp->id); strcat(buf, ","); } buf[strlen(buf) - 1] = '\0'; /* nuke final comma */ @@ -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);