Release Notes:
+fetchmail-4.5.6 ():
+* SDPS support, experimental version 2. Requires configure --enable-SDPS.
+
fetchmail-4.5.5 (Mon Aug 3 16:08:14 EDT 1998):
* Brendan Cully's FAQ entry on GSSAPI.
* Andrew Cagney's improvement to Received-line parsing.
flag skip; /* suppress poll in implicit mode? */
flag dns; /* do DNS lookup on multidrop? */
flag uidl; /* use RFC1725 UIDLs? */
- flag checkalias; /* try to resolve aliases by comparing IPs ?*/
+#ifdef SDPS_ENABLE
+ flag sdps; /* use Demon Internet SDPS *ENV */
+#endif /* SDPS_ENABLE */
+ flag checkalias; /* resolve aliases by comparing IPs? */
#ifdef linux
/* XXX -- should probably use a table lookup here */
if (strcasecmp(optarg,"pop2") == 0)
ctl->server.protocol = P_POP2;
+#ifdef SDPS_ENABLE
+ else if (strcasecmp(optarg,"sdps") == 0)
+ {
+ ctl->server.protocol = P_POP3;
+ ctl->server.sdps = TRUE;
+ }
+#endif /* SDPS_ENABLE */
else if (strcasecmp(optarg,"pop3") == 0)
ctl->server.protocol = P_POP3;
else if (strcasecmp(optarg,"apop") == 0)
* If we see either, and we're in multidrop mode, try to use
* the SDPS *ENV extension.
*/
- sdps_enable = MULTIDROP(ctl) && strstr(greeting, "demon.");
+ sdps_enable = (MULTIDROP(ctl) && strstr(greeting, "demon."));
+ /*
+ * Use SDPS if configured, regardless of the greeting string
+ * returned from the POP server. (Users accessing demon by a
+ * POP3 proxy may need this)
+ */
+ if (ctl->server.sdps)
+ sdps_enable = ctl->server.sdps;
#endif /* SDPS_ENABLE */
switch (ctl->server.protocol) {
if (sdps_enable)
{
int linecount = 0;
-
sdps_envto = (char *)NULL;
gen_send(sock, "*ENV %d", number);
do {
if (gen_recv(sock, buf, sizeof(buf)))
+ {
break;
+ }
linecount++;
- if (buf[0] == '-' || strncmp(buf , "+OK", 3))
- break;
- if (linecount == 4)
+ if (linecount == 5)
{
- sdps_envto = strdup(buf);
+ sdps_envto = strdup(buf);
error(0, 0, "*ENV returned envelope address %s");
}
} while
- (buf[0] != '.' && (buf[1] == '\r' || buf[1] == '\n'));
+ (buf[0] !='.');
}
#endif /* SDPS_ENABLE */
(auto)|(AUTO) { yylval.proto = P_AUTO; return PROTO; }
(pop2)|(POP2) { yylval.proto = P_POP2; return PROTO; }
+(sdps)|(SDPS) { return SDPS; }
(pop3)|(POP3) { yylval.proto = P_POP3; return PROTO; }
(imap-k4)|(IMAP-K4) { yylval.proto = P_IMAP_K4; return PROTO; }
(imap-gss)|(IMAP-GSS) { yylval.proto = P_IMAP_GSS; return PROTO; }
}
%token DEFAULTS POLL SKIP VIA AKA LOCALDOMAINS PROTOCOL
-%token AUTHENTICATE TIMEOUT KPOP KERBEROS4 KERBEROS5 KERBEROS
+%token AUTHENTICATE TIMEOUT KPOP SDPS KERBEROS4 KERBEROS5 KERBEROS
%token ENVELOPE QVIRTUAL USERNAME PASSWORD FOLDER SMTPHOST MDA SMTPADDRESS
%token SPAMRESPONSE PRECONNECT POSTCONNECT LIMIT
%token NETSEC INTERFACE MONITOR
current.server.port = KPOP_PORT;
#endif /* INET6 */
}
+ | SDPS {
+ current.server.protocol = P_POP3;
+ current.server.sdps = TRUE;
+ }
| UIDL {current.server.uidl = FLAG_TRUE;}
| NO UIDL {current.server.uidl = FLAG_FALSE;}
| CHECKALIAS {current.server.checkalias = FLAG_TRUE;}