diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | fetchmail-FAQ.html | 5 | ||||
-rw-r--r-- | fetchmail.man | 17 | ||||
-rw-r--r-- | options.c | 8 | ||||
-rw-r--r-- | rcfile_y.y | 6 |
5 files changed, 24 insertions, 13 deletions
@@ -202,6 +202,7 @@ fetchmail 6.3.0 (not yet released officially): * Expunge between IMAP folders when polling multiple folders. Sunil Shetye. (MA) * Fix IMAP expunged message counting. Sunil Shetye. (MA) +* Add full support for --service option. Matthias Andree # INTERNAL CHANGES * Switched to automake. Matthias Andree. diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html index 7c96a450..691d1bdc 100644 --- a/fetchmail-FAQ.html +++ b/fetchmail-FAQ.html @@ -2518,9 +2518,8 @@ declaration <tt>auth password</tt> in your .fetchmailrc.</p> literal, for instance, 192.168.0.1</li> <li>Make sure your <code>/etc/services</code> file (or other services database) contains the necessary service entries. If you - cannot fix the services database, use the --port option and give the - numeric port address. Common port addresses - are:<table> + cannot fix the services database, use the --service option and give the + numeric port address. Common port addresses are:<table> <tr><th>service</th><th>port</th></tr> <tr><td>IMAP</td><td>143</td></tr> <tr><td>IMAP+SSL</td><td>993</td></tr> diff --git a/fetchmail.man b/fetchmail.man index 19dd9e4c..dbf2f5cd 100644 --- a/fetchmail.man +++ b/fetchmail.man @@ -270,15 +270,18 @@ depending on upstream server capabilities. Note also that this option may be removed and forced enabled in a future fetchmail version. .TP +.B \-\-service <servicename> +(Keyword: service) +The service option permits you to specify a service name to connect to. +You can specify a decimal port number here, if your services database +lacks the required service-port assignments. See the FAQ item R12 for +details. This replaces the older \-\-port option. +.TP .B \-P <portnumber> | \-\-port <portnumber> (Keyword: port) -The port option permits you to specify a TCP/IP port to connect on. -This option will seldom be necessary as all the supported protocols have -well-established default port numbers. On some older machines, however, -the protocol <\-\-> port mappings are missing from the services database -(often /etc/services), and this port can make fetchmail work for you -even if you don't have system administrator privileges. See the FAQ item -R12 for details. +Obsolete version of \-\-service that does not take service names. +.B Note: +this option may be removed from a future version. .TP .B \-\-principal <principal> (Keyword: principal) @@ -87,10 +87,9 @@ #define LA_FETCHSIZELIMIT 61 #define LA_FASTUIDL 62 - /* don't use 63-122: they could clash with short options */ - #define LA_LIMITFLUSH 128 +#define LA_SERVICE 129 /* options still left: CDgGhHjJoORwWxXYz */ static const char *shortoptions = @@ -120,6 +119,7 @@ static const struct option longoptions[] = { {"proto", required_argument, (int *) 0, LA_PROTOCOL }, {"uidl", no_argument, (int *) 0, LA_UIDL }, {"port", required_argument, (int *) 0, LA_PORT }, + {"service", required_argument, (int *) 0, LA_SERVICE }, {"auth", required_argument, (int *) 0, LA_AUTH}, {"timeout", required_argument, (int *) 0, LA_TIMEOUT }, {"envelope", required_argument, (int *) 0, LA_ENVELOPE }, @@ -387,6 +387,7 @@ struct query *ctl; /* option record to be initialized */ break; case 'P': case LA_PORT: + case LA_SERVICE: ctl->server.service = optarg; break; case LA_AUTH: @@ -680,7 +681,8 @@ struct query *ctl; /* option record to be initialized */ P(GT_(" -p, --protocol specify retrieval protocol (see man page)\n")); P(GT_(" -U, --uidl force the use of UIDLs (pop3 only)\n")); - P(GT_(" -P, --port TCP/IP service port to connect to\n")); + P(GT_(" -P, --port TCP port to connect to (obsolete, use --service)\n")); + P(GT_(" --service TCP service to connect to (can be numeric TCP port)\n")); P(GT_(" --auth authentication type (password/kerberos/ssh/otp)\n")); P(GT_(" -t, --timeout server nonresponse timeout\n")); P(GT_(" -E, --envelope envelope address header\n")); @@ -173,6 +173,12 @@ serv_option : AKA alias_list | SERVICE STRING { current.server.service = $2; } + | SERVICE NUMBER { + int port = $2; + char buf[10]; + snprintf(buf, sizeof buf, "%d", port); + current.server.service = xstrdup(buf); + } | PORT NUMBER { int port = $2; char buf[10]; |