]> Pileus Git - ~andy/fetchmail/blobdiff - rcfile_y.y
Update.
[~andy/fetchmail] / rcfile_y.y
index 607e6bd31da38cbf41743d21ac10c86304e79c0b..b32a6b0cfa9143024eb3287edb280afc2a561986 100644 (file)
@@ -66,7 +66,7 @@ extern char * yytext;
 %token USERNAME PASSWORD FOLDER SMTPHOST FETCHDOMAINS MDA BSMTP LMTP
 %token SMTPADDRESS SMTPNAME SPAMRESPONSE PRECONNECT POSTCONNECT LIMIT WARNINGS
 %token INTERFACE MONITOR PLUGIN PLUGOUT
-%token IS HERE THERE TO MAP WILDCARD
+%token IS HERE THERE TO MAP
 %token BATCHLIMIT FETCHLIMIT FETCHSIZELIMIT FASTUIDL EXPUNGE PROPERTIES
 %token SET LOGFILE DAEMON SYSLOG IDFILE PIDFILE INVISIBLE POSTMASTER BOUNCEMAIL
 %token SPAMBOUNCE SOFTBOUNCE SHOWDOTS
@@ -77,7 +77,7 @@ extern char * yytext;
 %token NO KEEP FLUSH LIMITFLUSH FETCHALL REWRITE FORCECR STRIPCR PASS8BITS 
 %token DROPSTATUS DROPDELIVERED
 %token DNS SERVICE PORT UIDL INTERVAL MIMEDECODE IDLE CHECKALIAS 
-%token SSL SSLKEY SSLCERT SSLPROTO SSLCERTCK SSLCERTPATH SSLCOMMONNAME SSLFINGERPRINT
+%token SSL SSLKEY SSLCERT SSLPROTO SSLCERTCK SSLCERTFILE SSLCERTPATH SSLCOMMONNAME SSLFINGERPRINT
 %token PRINCIPAL ESMTPNAME ESMTPPASSWORD
 %token TRACEPOLLS
 
@@ -262,16 +262,16 @@ user1opts : user_option
                | user1opts user_option
                ;
 
-localnames     : WILDCARD              {current.wildcard =  TRUE;}
-               | mapping_list          {current.wildcard =  FALSE;}
-               | mapping_list WILDCARD {current.wildcard =  TRUE;}
-               ;
-
 mapping_list   : mapping               
                | mapping_list mapping
                ;
 
-mapping                : STRING                {save_str_pair(&current.localnames, $1, NULL); free($1);}
+mapping                : STRING                {if (0 == strcmp($1, "*")) {
+                                             current.wildcard = TRUE;
+                                         } else {
+                                           save_str_pair(&current.localnames, $1, NULL);
+                                         }
+                                        free($1);}
                | STRING MAP STRING     {save_str_pair(&current.localnames, $1, $3); free($1); free($3);}
                ;
 
@@ -301,10 +301,10 @@ num_list  : NUMBER
                        }
                ;
 
-user_option    : TO localnames HERE
-               | TO localnames
-               | IS localnames HERE
-               | IS localnames
+user_option    : TO mapping_list HERE
+               | TO mapping_list
+               | IS mapping_list HERE
+               | IS mapping_list
 
                | IS STRING THERE       {current.remotename  = $2;}
                | PASSWORD STRING       {current.password    = $2;}
@@ -344,6 +344,7 @@ user_option : TO localnames HERE
                | SSLCERT STRING        {current.sslcert = prependdir ($2, rcfiledir); free($2);}
                | SSLPROTO STRING       {current.sslproto = $2;}
                | SSLCERTCK             {current.sslcertck = FLAG_TRUE;}
+               | SSLCERTFILE STRING    {current.sslcertfile = prependdir($2, rcfiledir); free($2);}
                | SSLCERTPATH STRING    {current.sslcertpath = prependdir($2, rcfiledir); free($2);}
                | SSLCOMMONNAME STRING  {current.sslcommonname = $2;}
                | SSLFINGERPRINT STRING {current.sslfingerprint = $2;}