X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=rcfile_y.y;h=39bb7a99c217e83adde71af8e09cf1d277df1240;hb=33cddbff323efcbae1503e91e6e65b2733da80c7;hp=74e195cd6c2937fedc49805a704ec0de92cd8308;hpb=62a673b11f3fa98e06ae3159618c8540dfb3c595;p=~andy%2Ffetchmail diff --git a/rcfile_y.y b/rcfile_y.y index 74e195cd..39bb7a99 100644 --- a/rcfile_y.y +++ b/rcfile_y.y @@ -57,6 +57,7 @@ extern char * yytext; %token DEFAULTS POLL SKIP VIA AKA LOCALDOMAINS PROTOCOL %token AUTHENTICATE TIMEOUT KPOP SDPS ENVELOPE QVIRTUAL +%token PINENTRY_TIMEOUT PWMD_SOCKET PWMD_FILE %token USERNAME PASSWORD FOLDER SMTPHOST FETCHDOMAINS MDA BSMTP LMTP %token SMTPADDRESS SMTPNAME SPAMRESPONSE PRECONNECT POSTCONNECT LIMIT WARNINGS %token INTERFACE MONITOR PLUGIN PLUGOUT @@ -65,6 +66,7 @@ extern char * yytext; %token SET LOGFILE DAEMON SYSLOG IDFILE PIDFILE INVISIBLE POSTMASTER BOUNCEMAIL %token SPAMBOUNCE SOFTBOUNCE SHOWDOTS %token BADHEADER ACCEPT REJECT_ +%token RETRIEVEERROR ABORT CONTINUE MARKSEEN %token PROTO AUTHTYPE %token STRING %token NUMBER @@ -110,6 +112,13 @@ statement : SET LOGFILE optmap STRING {run.logfile = prependdir ($4, rcfiledir); | SET NO INVISIBLE {run.invisible = FALSE;} | SET SHOWDOTS {run.showdots = FLAG_TRUE;} | SET NO SHOWDOTS {run.showdots = FLAG_FALSE;} + | SET PINENTRY_TIMEOUT optmap NUMBER { +#ifdef HAVE_LIBPWMD + run.pinentry_timeout = $4; +#else + yyerror(GT_("pwmd not enabled")); +#endif + } /* * The way the next two productions are written depends on the fact that @@ -167,8 +176,8 @@ serv_option : AKA alias_list yyerror(GT_("SDPS not enabled.")); #endif /* SDPS_ENABLE */ } - | UIDL {current.server.uidl = FLAG_TRUE;} - | NO UIDL {current.server.uidl = FLAG_FALSE;} + | UIDL {/* EMPTY - removed in 7.0.0 */} + | NO UIDL {/* EMPTY - removed in 7.0.0 */} | CHECKALIAS {current.server.checkalias = FLAG_TRUE;} | NO CHECKALIAS {current.server.checkalias = FLAG_FALSE;} | SERVICE STRING { @@ -229,6 +238,9 @@ serv_option : AKA alias_list | NO TRACEPOLLS {current.server.tracepolls = FLAG_FALSE;} | BADHEADER ACCEPT {current.server.badheader = BHACCEPT;} | BADHEADER REJECT_ {current.server.badheader = BHREJECT;} + | RETRIEVEERROR ABORT {current.server.retrieveerror = RE_ABORT;} + | RETRIEVEERROR CONTINUE {current.server.retrieveerror = RE_CONTINUE;} + | RETRIEVEERROR MARKSEEN {current.server.retrieveerror = RE_MARKSEEN;} ; userspecs : user1opts {record_current(); user_reset();} @@ -366,6 +378,22 @@ user_option : TO mapping_list HERE | EXPUNGE NUMBER {current.expunge = NUM_VALUE_IN($2);} | PROPERTIES STRING {current.properties = $2;} + + | PWMD_SOCKET STRING { +#ifdef HAVE_LIBPWMD + current.pwmd_socket = xstrdup($2); +#else + yyerror(GT_("pwmd not enabled")); +#endif + } + + | PWMD_FILE STRING { +#ifdef HAVE_LIBPWMD + current.pwmd_file = xstrdup($2); +#else + yyerror(GT_("pwmd not enabled")); +#endif + } ; %% @@ -475,7 +503,8 @@ int prc_parse_file (const char *pathname, const flag securecheck) yyparse(); /* parse entire file */ - fclose(yyin); /* not checking this should be safe, file mode was r */ + if (yyin != stdin) + fclose(yyin); /* not checking this should be safe, file mode was r */ if (prc_errflag) return(PS_SYNTAX);