- | SMTPADDRESS STRING {current.smtpaddress = xstrdup($2);}
- | SPAMRESPONSE NUMBER {current.antispam = $2;}
- | MDA STRING {current.mda = xstrdup($2);}
- | PRECONNECT STRING {current.preconnect = xstrdup($2);}
- | POSTCONNECT STRING {current.postconnect = xstrdup($2);}
-
- | KEEP {current.keep = FLAG_TRUE;}
- | FLUSH {current.flush = FLAG_TRUE;}
- | FETCHALL {current.fetchall = FLAG_TRUE;}
- | REWRITE {current.rewrite = FLAG_TRUE;}
- | FORCECR {current.forcecr = FLAG_TRUE;}
- | STRIPCR {current.stripcr = FLAG_TRUE;}
- | PASS8BITS {current.pass8bits = FLAG_TRUE;}
- | DROPSTATUS {current.dropstatus = FLAG_TRUE;}
- | MIMEDECODE {current.mimedecode = FLAG_TRUE;}
-
- | NO KEEP {current.keep = FLAG_FALSE;}
- | NO FLUSH {current.flush = FLAG_FALSE;}
- | NO FETCHALL {current.fetchall = FLAG_FALSE;}
- | NO REWRITE {current.rewrite = FLAG_FALSE;}
- | NO FORCECR {current.forcecr = FLAG_FALSE;}
- | NO STRIPCR {current.stripcr = FLAG_FALSE;}
- | NO PASS8BITS {current.pass8bits = FLAG_FALSE;}
- | NO DROPSTATUS {current.dropstatus = FLAG_FALSE;}
- | NO MIMEDECODE {current.mimedecode = FLAG_FALSE;}
-
- | LIMIT NUMBER {current.limit = NUM_VALUE($2);}
- | FETCHLIMIT NUMBER {current.fetchlimit = NUM_VALUE($2);}
- | BATCHLIMIT NUMBER {current.batchlimit = NUM_VALUE($2);}
- | EXPUNGE NUMBER {current.expunge = NUM_VALUE($2);}
+ | FETCHDOMAINS fetch_list
+ | SMTPADDRESS STRING {current.smtpaddress = $2;}
+ | SMTPNAME STRING {current.smtpname = $2;}
+ | SPAMRESPONSE num_list
+ | MDA STRING {current.mda = $2;}
+ | BSMTP STRING {current.bsmtp = prependdir ($2, rcfiledir); free($2);}
+ | LMTP {current.listener = LMTP_MODE;}
+ | PRECONNECT STRING {current.preconnect = $2;}
+ | POSTCONNECT STRING {current.postconnect = $2;}
+
+ | KEEP {current.keep = FLAG_TRUE;}
+ | FLUSH {current.flush = FLAG_TRUE;}
+ | LIMITFLUSH {current.limitflush = FLAG_TRUE;}
+ | FETCHALL {current.fetchall = FLAG_TRUE;}
+ | REWRITE {current.rewrite = FLAG_TRUE;}
+ | FORCECR {current.forcecr = FLAG_TRUE;}
+ | STRIPCR {current.stripcr = FLAG_TRUE;}
+ | PASS8BITS {current.pass8bits = FLAG_TRUE;}
+ | DROPSTATUS {current.dropstatus = FLAG_TRUE;}
+ | DROPDELIVERED {current.dropdelivered = FLAG_TRUE;}
+ | MIMEDECODE {current.mimedecode = FLAG_TRUE;}
+ | IDLE {current.idle = FLAG_TRUE;}
+
+ | SSL {
+#ifdef SSL_ENABLE
+ current.use_ssl = FLAG_TRUE;
+#else
+ yyerror(GT_("SSL is not enabled"));
+#endif
+ }
+ | SSLKEY STRING {current.sslkey = prependdir ($2, rcfiledir); free($2);}
+ | 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;}
+
+ | NO KEEP {current.keep = FLAG_FALSE;}
+ | NO FLUSH {current.flush = FLAG_FALSE;}
+ | NO LIMITFLUSH {current.limitflush = FLAG_FALSE;}
+ | NO FETCHALL {current.fetchall = FLAG_FALSE;}
+ | NO REWRITE {current.rewrite = FLAG_FALSE;}
+ | NO FORCECR {current.forcecr = FLAG_FALSE;}
+ | NO STRIPCR {current.stripcr = FLAG_FALSE;}
+ | NO PASS8BITS {current.pass8bits = FLAG_FALSE;}
+ | NO DROPSTATUS {current.dropstatus = FLAG_FALSE;}
+ | NO DROPDELIVERED {current.dropdelivered = FLAG_FALSE;}
+ | NO MIMEDECODE {current.mimedecode = FLAG_FALSE;}
+ | NO IDLE {current.idle = FLAG_FALSE;}
+
+ | NO SSL {current.use_ssl = FLAG_FALSE;}
+
+ | LIMIT NUMBER {current.limit = NUM_VALUE_IN($2);}
+ | WARNINGS NUMBER {current.warnings = NUM_VALUE_IN($2);}
+ | FETCHLIMIT NUMBER {current.fetchlimit = NUM_VALUE_IN($2);}
+ | FETCHSIZELIMIT NUMBER {current.fetchsizelimit = NUM_VALUE_IN($2);}
+ | FASTUIDL NUMBER {current.fastuidl = NUM_VALUE_IN($2);}
+ | BATCHLIMIT NUMBER {current.batchlimit = NUM_VALUE_IN($2);}
+ | EXPUNGE NUMBER {current.expunge = NUM_VALUE_IN($2);}
+
+ | PROPERTIES STRING {current.properties = $2;}