65
65
%token AUTHENTICATE TIMEOUT KPOP SDPS ENVELOPE QVIRTUAL
66
66
%token USERNAME PASSWORD FOLDER SMTPHOST FETCHDOMAINS MDA BSMTP LMTP
67
67
%token SMTPADDRESS SMTPNAME SPAMRESPONSE PRECONNECT POSTCONNECT LIMIT WARNINGS
68
%token NETSEC INTERFACE MONITOR PLUGIN PLUGOUT
68
%token INTERFACE MONITOR PLUGIN PLUGOUT
69
69
%token IS HERE THERE TO MAP WILDCARD
70
70
%token BATCHLIMIT FETCHLIMIT FETCHSIZELIMIT FASTUIDL EXPUNGE PROPERTIES
71
71
%token SET LOGFILE DAEMON SYSLOG IDFILE INVISIBLE POSTMASTER BOUNCEMAIL
73
73
%token <proto> PROTO AUTHTYPE
74
74
%token <sval> STRING
75
75
%token <number> NUMBER
76
%token NO KEEP FLUSH FETCHALL REWRITE FORCECR STRIPCR PASS8BITS
76
%token NO KEEP FLUSH LIMITFLUSH FETCHALL REWRITE FORCECR STRIPCR PASS8BITS
77
77
%token DROPSTATUS DROPDELIVERED
78
78
%token DNS SERVICE PORT UIDL INTERVAL MIMEDECODE IDLE CHECKALIAS
79
79
%token SSL SSLKEY SSLCERT SSLPROTO SSLCERTCK SSLCERTPATH SSLFINGERPRINT
151
151
#ifdef KERBEROS_V5
152
152
current.server.authenticate = A_KERBEROS_V5;
154
current.server.authenticate = A_KERBEROS_V4;
154
current.server.authenticate = A_KERBEROS_V4;
155
155
#endif /* KERBEROS_V5 */
157
156
current.server.service = KPOP_PORT;
158
#else /* INET6_ENABLE */
159
current.server.port = KPOP_PORT;
160
#endif /* INET6_ENABLE */
162
158
| PRINCIPAL STRING {current.server.principal = xstrdup($2);}
163
159
| ESMTPNAME STRING {current.server.esmtp_name = xstrdup($2);}
175
171
| CHECKALIAS {current.server.checkalias = FLAG_TRUE;}
176
172
| NO CHECKALIAS {current.server.checkalias = FLAG_FALSE;}
177
173
| SERVICE STRING {
179
174
current.server.service = $2;
180
#endif /* INET6_ENABLE */
179
snprintf(buf, sizeof buf, "%d", port);
180
current.server.service = xstrdup(buf);
186
sprintf(buf, "%d", port);
185
snprintf(buf, sizeof buf, "%d", port);
187
186
current.server.service = xstrdup(buf);
189
current.server.port = $2;
190
#endif /* INET6_ENABLE */
192
188
| INTERVAL NUMBER
193
189
{current.server.interval = $2;}
211
207
| QVIRTUAL STRING {current.server.qvirtual=xstrdup($2);}
217
if (net_security_strtorequest($2, &request, &requestlen))
218
yyerror(GT_("invalid security request"));
220
current.server.netsec = xstrdup($2);
224
yyerror(GT_("network-security support disabled"));
225
#endif /* NET_SECURITY */
227
208
| INTERFACE STRING {
228
#if (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__)
229
210
interface_parse($2, ¤t.server);
230
#else /* (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__) */
231
212
fprintf(stderr, GT_("fetchmail: interface option is only supported under Linux (without IPv6) and FreeBSD\n"));
232
#endif /* (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__) */
234
215
| MONITOR STRING {
235
#if (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__)
236
217
current.server.monitor = xstrdup($2);
237
#else /* (defined(linux) && !defined(INET6_ENABLE)) || defined(__FreeBSD__) */
238
219
fprintf(stderr, GT_("fetchmail: monitor option is only supported under Linux (without IPv6) and FreeBSD\n"));
239
#endif /* (defined(linux) && !defined(INET6_ENABLE) || defined(__FreeBSD__)) */
241
222
| PLUGIN STRING { current.server.plugin = xstrdup($2); }
242
223
| PLUGOUT STRING { current.server.plugout = xstrdup($2); }
243
224
| DNS {current.server.dns = FLAG_TRUE;}
244
225
| NO DNS {current.server.dns = FLAG_FALSE;}
245
226
| NO ENVELOPE {current.server.envelope = STRING_DISABLED;}
246
| TRACEPOLLS {current.tracepolls = FLAG_TRUE;}
247
| NO TRACEPOLLS {current.tracepolls = FLAG_FALSE;}
227
| TRACEPOLLS {current.server.tracepolls = FLAG_TRUE;}
228
| NO TRACEPOLLS {current.server.tracepolls = FLAG_FALSE;}
250
231
userspecs : user1opts {record_current(); user_reset();}
334
315
| KEEP {current.keep = FLAG_TRUE;}
335
316
| FLUSH {current.flush = FLAG_TRUE;}
317
| LIMITFLUSH {current.limitflush = FLAG_TRUE;}
336
318
| FETCHALL {current.fetchall = FLAG_TRUE;}
337
319
| REWRITE {current.rewrite = FLAG_TRUE;}
338
320
| FORCECR {current.forcecr = FLAG_TRUE;}
360
342
| NO KEEP {current.keep = FLAG_FALSE;}
361
343
| NO FLUSH {current.flush = FLAG_FALSE;}
344
| NO LIMITFLUSH {current.limitflush = FLAG_FALSE;}
362
345
| NO FETCHALL {current.fetchall = FLAG_FALSE;}
363
346
| NO REWRITE {current.rewrite = FLAG_FALSE;}
364
347
| NO FORCECR {current.forcecr = FLAG_FALSE;}
424
if (cygwin_internal(CW_CHECK_NTSEC, pathname))
425
#endif /* __CYGWIN__ */
440
426
if (statbuf.st_mode & (S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH | S_IXOTH))
442
428
fprintf(stderr, GT_("File %s must have no more than -rwx--x--- (0710) permissions.\n"),