#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
-#ifdef HAVE_STRING_H /* strcat() */
#include <string.h>
-#endif
-#ifdef HAVE_NET_SOCKET_H /* BeOS needs this */
-#include <net/socket.h>
-#endif
#include <sys/types.h>
-#ifdef HAVE_NET_SELECT_H /* AIX needs this */
-#include <net/select.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H /* AIX 4.1, at least, needs this */
#include <sys/select.h>
-#endif
#include <netdb.h>
#include <errno.h>
#include <unistd.h>
-#include "i18n.h"
+#include "gettext.h"
#include "fetchmail.h"
+#include "sdump.h"
#include "smtp.h"
#include "socket.h"
{
int ok;
- ok = SMTP_ok(sock);
+ (void)argbuf;
+ ok = SMTP_ok(sock, SMTP_MODE, TIMEOUT_DEFAULT);
if (ok == SM_UNRECOVERABLE)
return(PS_PROTOCOL);
else
char buf [MSGBUFSIZE+1];
struct idlist *qnp; /* pointer to Q names */
- if ((ok = SMTP_ehlo(sock, fetchmailhost,
+ (void)id;
+ if ((ok = SMTP_ehlo(sock, SMTP_MODE, fetchmailhost,
ctl->server.esmtp_name, ctl->server.esmtp_password,
&opts)))
{
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);
+ }
}
/*
* 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
{
{
fd_set readfds;
struct timeval timeout;
- char buf[MSGBUFSIZE];
FD_ZERO(&readfds);
FD_SET(sock, &readfds);
static const struct method odmr =
{
"ODMR", /* ODMR protocol */
-#ifdef INET6_ENABLE
- "odmr", /* standard SMTP port */
- "odmrs", /* ssl SMTP port */
-#else /* INET6_ENABLE */
- 366, /* standard SMTP port */
- 2366, /* ssl SMTP port (BOGUS! RANDOM VALUE) */
-#endif /* INET6_ENABLE */
+ "odmr", /* standard ODMR port */
+ "odmrs", /* ssl ODMR port */
FALSE, /* this is not a tagged protocol */
FALSE, /* this does not use a message delimiter */
odmr_ok, /* parse command response */
NULL, /* no message trailer */
NULL, /* how to delete a message */
NULL, /* how to mark a message as seen */
+ NULL, /* no mailbox support */
odmr_logout, /* log out, we're done */
FALSE, /* no, we can't re-poll */
};
return(PS_SYNTAX);
}
if (ctl->mailboxes->id) {
- fprintf(stderr, GT_("Option --remote is not supported with ODMR\n"));
+ fprintf(stderr, GT_("Option --folder is not supported with ODMR\n"));
return(PS_SYNTAX);
}
if (check_only) {