char *sval;
}
-%token DEFAULTS POLL SKIP VIA AKA LOCALDOMAINS PROTOCOL ANY
-%token PREAUTHENTICATE TIMEOUT KPOP SDPS KERBEROS4 KERBEROS5 KERBEROS GSSAPI
-%token SSH ENVELOPE QVIRTUAL USERNAME PASSWORD FOLDER SMTPHOST MDA BSMTP LMTP
+%token DEFAULTS POLL SKIP VIA AKA LOCALDOMAINS PROTOCOL
+%token AUTHENTICATE TIMEOUT KPOP SDPS ENVELOPE QVIRTUAL
+%token USERNAME PASSWORD FOLDER SMTPHOST FETCHDOMAINS MDA BSMTP LMTP
%token SMTPADDRESS SMTPNAME SPAMRESPONSE PRECONNECT POSTCONNECT LIMIT WARNINGS
%token NETSEC INTERFACE MONITOR PLUGIN PLUGOUT
%token IS HERE THERE TO MAP WILDCARD
%token BATCHLIMIT FETCHLIMIT EXPUNGE PROPERTIES
%token SET LOGFILE DAEMON SYSLOG IDFILE INVISIBLE POSTMASTER BOUNCEMAIL
%token SPAMBOUNCE SHOWDOTS
-%token <proto> PROTO
+%token <proto> PROTO AUTHTYPE
%token <sval> STRING
%token <number> NUMBER
%token NO KEEP FLUSH FETCHALL REWRITE FORCECR STRIPCR PASS8BITS
%token DROPSTATUS DROPDELIVERED
%token DNS SERVICE PORT UIDL INTERVAL MIMEDECODE IDLE CHECKALIAS
-%token SSL SSLKEY SSLCERT
+%token SSL SSLKEY SSLCERT SSLPROTO SSLCERTCK SSLCERTPATH SSLFINGERPRINT
%token PRINCIPAL
+%token TRACEPOLLS
%%
| SET NO SPAMBOUNCE {run.spambounce = FALSE;}
| SET PROPERTIES optmap STRING {run.properties =xstrdup($4);}
| SET SYSLOG {run.use_syslog = TRUE;}
+ | SET NO SYSLOG {run.use_syslog = FALSE;}
| SET INVISIBLE {run.invisible = TRUE;}
+ | SET NO INVISIBLE {run.invisible = FALSE;}
| SET SHOWDOTS {run.showdots = TRUE;}
+ | SET NO SHOWDOTS {run.showdots = FALSE;}
/*
* The way the next two productions are written depends on the fact that
/* detect and complain about the most common user error */
| define_server serverspecs userspecs serv_option
- {yyerror(_("server option after user options"));}
+ {yyerror(GT_("server option after user options"));}
;
define_server : POLL STRING {reset_server($2, FALSE);}
| PROTOCOL KPOP {
current.server.protocol = P_POP3;
- if (current.server.preauthenticate == A_PASSWORD)
+ if (current.server.authenticate == A_PASSWORD)
#ifdef KERBEROS_V5
- current.server.preauthenticate = A_KERBEROS_V5;
+ current.server.authenticate = A_KERBEROS_V5;
#else
- current.server.preauthenticate = A_KERBEROS_V4;
+ current.server.authenticate = A_KERBEROS_V4;
#endif /* KERBEROS_V5 */
#if INET6_ENABLE
current.server.service = KPOP_PORT;
current.server.protocol = P_POP3;
current.server.sdps = TRUE;
#else
- yyerror(_("SDPS not enabled."));
+ yyerror(GT_("SDPS not enabled."));
#endif /* SDPS_ENABLE */
}
| UIDL {current.server.uidl = FLAG_TRUE;}
}
| INTERVAL NUMBER
{current.server.interval = $2;}
- | PREAUTHENTICATE ANY
- {current.server.preauthenticate = A_ANY;}
- | PREAUTHENTICATE PASSWORD
- {current.server.preauthenticate = A_PASSWORD;}
- | PREAUTHENTICATE GSSAPI
- {current.server.preauthenticate = A_GSSAPI;}
- | PREAUTHENTICATE KERBEROS4
- {current.server.preauthenticate = A_KERBEROS_V4;}
- | PREAUTHENTICATE KERBEROS5
- {current.server.preauthenticate = A_KERBEROS_V5;}
- | PREAUTHENTICATE KERBEROS {
-#ifdef KERBEROS_V5
- current.server.preauthenticate = A_KERBEROS_V5;
-#else
- current.server.preauthenticate = A_KERBEROS_V4;
-#endif /* KERBEROS_V5 */
- }
- | PREAUTHENTICATE SSH
- {current.server.preauthenticate = A_SSH;}
+ | AUTHENTICATE AUTHTYPE
+ {current.server.authenticate = $2;}
| TIMEOUT NUMBER
{current.server.timeout = $2;}
| ENVELOPE NUMBER STRING
int requestlen;
if (net_security_strtorequest($2, &request, &requestlen))
- yyerror(_("invalid security request"));
+ yyerror(GT_("invalid security request"));
else {
current.server.netsec = xstrdup($2);
free(request);
}
#else
- yyerror(_("network-security support disabled"));
+ yyerror(GT_("network-security support disabled"));
#endif /* NET_SECURITY */
}
| INTERFACE STRING {
#if (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__)
interface_parse($2, ¤t.server);
#else /* (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__) */
- fprintf(stderr, _("fetchmail: interface option is only supported under Linux and FreeBSD\n"));
+ fprintf(stderr, GT_("fetchmail: interface option is only supported under Linux (without IPv6) and FreeBSD\n"));
#endif /* (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__) */
}
| MONITOR STRING {
#if (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__)
current.server.monitor = xstrdup($2);
#else /* (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__) */
- fprintf(stderr, _("fetchmail: monitor option is only supported under Linux\n"));
+ fprintf(stderr, GT_("fetchmail: monitor option is only supported under Linux (without IPv6) and FreeBSD\n"));
#endif /* (defined(linux) && !defined(INET6_ENABLE) || defined(__FreeBSD__)) */
}
| PLUGIN STRING { current.server.plugin = xstrdup($2); }
| DNS {current.server.dns = FLAG_TRUE;}
| NO DNS {current.server.dns = FLAG_FALSE;}
| NO ENVELOPE {current.server.envelope = STRING_DISABLED;}
+ | TRACEPOLLS {current.tracepolls = FLAG_TRUE;}
+ | NO TRACEPOLLS {current.tracepolls = FLAG_FALSE;}
;
userspecs : user1opts {record_current(); user_reset();}
| smtp_list STRING {save_str(¤t.smtphunt, $2,TRUE);}
;
+fetch_list : STRING {save_str(¤t.domainlist, $1,TRUE);}
+ | fetch_list STRING {save_str(¤t.domainlist, $2,TRUE);}
+ ;
+
num_list : NUMBER
{
struct idlist *id;
| PASSWORD STRING {current.password = xstrdup($2);}
| FOLDER folder_list
| SMTPHOST smtp_list
+ | FETCHDOMAINS fetch_list
| SMTPADDRESS STRING {current.smtpaddress = xstrdup($2);}
| SMTPNAME STRING {current.smtpname = xstrdup($2);}
| SPAMRESPONSE num_list
| SSL {current.use_ssl = FLAG_TRUE;}
| SSLKEY STRING {current.sslkey = xstrdup($2);}
| SSLCERT STRING {current.sslcert = xstrdup($2);}
+ | SSLPROTO STRING {current.sslproto = xstrdup($2);}
+ | SSLCERTCK {current.sslcertck = FLAG_TRUE;}
+ | SSLCERTPATH STRING {current.sslcertpath = xstrdup($2);}
+ | SSLFINGERPRINT STRING {current.sslfingerprint = xstrdup($2);}
| NO KEEP {current.keep = FLAG_FALSE;}
| NO FLUSH {current.flush = FLAG_FALSE;}
void yyerror (const char *s)
/* report a syntax error */
{
- report_at_line(stderr, 0, rcfile, prc_lineno, _("%s at %s"), s,
- (yytext && yytext[0]) ? yytext : _("end of input"));
+ report_at_line(stderr, 0, rcfile, prc_lineno, GT_("%s at %s"), s,
+ (yytext && yytext[0]) ? yytext : GT_("end of input"));
prc_errflag++;
}
if ((statbuf.st_mode & S_IFLNK) == S_IFLNK)
{
- fprintf(stderr, _("File %s must not be a symbolic link.\n"), pathname);
+ fprintf(stderr, GT_("File %s must not be a symbolic link.\n"), pathname);
return(PS_IOERR);
}
#ifndef __BEOS__
if (statbuf.st_mode & ~(S_IFREG | S_IREAD | S_IWRITE | S_IEXEC | S_IXGRP))
{
- fprintf(stderr, _("File %s must have no more than -rwx--x--- (0710) permissions.\n"),
+ fprintf(stderr, GT_("File %s must have no more than -rwx--x--- (0710) permissions.\n"),
pathname);
return(PS_IOERR);
}
if (statbuf.st_uid != getuid())
#endif /* HAVE_GETEUID */
{
- fprintf(stderr, _("File %s must be owned by you.\n"), pathname);
+ fprintf(stderr, GT_("File %s must be owned by you.\n"), pathname);
return(PS_IOERR);
}
#endif