]> Pileus Git - ~andy/fetchmail/commitdiff
Removed all pretentions to RPOP support.
authorEric S. Raymond <esr@thyrsus.com>
Wed, 9 Oct 1996 16:44:21 +0000 (16:44 -0000)
committerEric S. Raymond <esr@thyrsus.com>
Wed, 9 Oct 1996 16:44:21 +0000 (16:44 -0000)
svn path=/trunk/; revision=267

INSTALL
NEWS
README
driver.c
fetchmail.c
fetchmail.h
fetchmail.man
options.c
pop3.c
rcfile_l.l
sample.rcfile

diff --git a/INSTALL b/INSTALL
index cf5d50d823c37a5635607c664217d02aff2be8ad..133678c6bd8a5752fc8e5ca90a44a8d91234eb8e 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -41,12 +41,6 @@ wish to change these defaults, edit the Makefile AFTER you run
 a prefix other than /usr/local, or you can choose completely different
 directories for each item.
 
-Note: if you intended to use RPOP (which we don't recommend, you
-should set up APOP), you'll have to make fetchmail suid root.  This
-is so it can call rresvport and bind to a privileged port, so the
-server's TCP/IP will see that and know it's OK to let it bind to
-a privileged port at the other end.
-
 4. SET UP A RUN CONTROL FILE
 
 See the man page or the file sample.rcfile for a description of how to
diff --git a/NEWS b/NEWS
index e65217720890c62f0a71576e178650b2ee6dbcd4..1025874e34cae37de70c46e62a385c1ff4d971e1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,10 +5,6 @@ bugs affecting normal operation (that is, forwarding to SMTP from a
 single server host).  It will probably undergo substantial change only
 if and when support for a new retrieval protocol is added.
 
-Test RPOP feature against a Unix server that has it.  The protocol
-transactions are certainly OK, the question is whether the rresvport() 
-authentication stuff does what's needed.
-
 Support IMAP4 extensions for secure challenge-response, once they're actually
 standardized.
 
diff --git a/README b/README
index 6af9afcd5d4a62aacdc18537ed399e01b11a5244..5847f8ad56798223a93b4ebd0c7b9aea6a7fdd10 100644 (file)
--- a/README
+++ b/README
@@ -30,7 +30,7 @@ in its class.
 Here are fetchmail's main features.  Those unique to fetchmail are marked
 with **.
 
-       *  **POP2, POP3, **APOP, **RPOP and **IMAP support.
+       *  **POP2, POP3, **APOP, **IMAP support.
 
        ** Host is auto-probed for a working server if no protocol is
           specified for the connection.  Thus you don't need to know
index 6d2227c7abaffaa3502f375b783277eff5986265..ad8bb01626f53668a2e8eadfd9143a880e8fb04e 100644 (file)
--- a/driver.c
+++ b/driver.c
@@ -17,9 +17,6 @@
 #include  <varargs.h>
 #include  <sys/time.h>
 #include  <signal.h>
-#ifdef HAVE_RRESVPORT_H
-#include  <netinet/in.h>
-#endif /* HAVE_RRESVPORT_H */
 
 #include  "socket.h"
 #include  "fetchmail.h"
@@ -542,25 +539,6 @@ struct method *proto;
     tagnum = 0;
     protocol = proto;
 
-#ifdef HAVE_RRESVPORT_H
-    /*
-     * If we're trying to bind to a reserved port on the remote system,
-     * do likewise on the local one so the remote will know we're privileged.
-     * (This is most likely to happen in connection with RPOP.)
-     */
-    if (queryctl->port < IPPORT_RESERVED)
-    {
-       ok = IPPORT_RESERVED - 1;
-       if ((privport = rresvport(&ok)) == -1 || alarmed)
-       {
-           perror("fetchmail, binding to reserved port");
-            alarm(0);
-            signal(SIGALRM, sigsave);
-           return(PS_SOCKET);
-       }
-    }
-#endif /* HAVE_RRESVPORT_H */
-
     /* open a socket to the mail server */
     if ((socket = Socket(queryctl->servername,
                         queryctl->port ? queryctl->port : protocol->port))<0 
index d61efc1702f379e2733ef568db7bb6199473a8e9..8be194b94082da359133871f6bd4bd861bc68b4f 100644 (file)
@@ -197,13 +197,6 @@ char **argv;
                               hostp->servername);
                exit(PS_SYNTAX);
            }
-           if (hostp->protocol == P_RPOP && hostp->port >= 1024) 
-           {
-               (void) fprintf(stderr,
-                              "%s configuration invalid, can't do RPOP to an unprivileged port\n",
-                              hostp->servername);
-               exit(PS_SYNTAX);
-           }
 
            /* expand MDA commands */
            if (hostp->mda[0])
@@ -393,7 +386,6 @@ int proto;
     case P_POP3: return("POP3"); break;
     case P_IMAP: return("IMAP"); break;
     case P_APOP: return("APOP"); break;
-    case P_RPOP: return("RPOP"); break;
     default: return("unknown?!?"); break;
     }
 }
@@ -433,7 +425,6 @@ struct hostrec *queryctl;
        break;
     case P_POP3:
     case P_APOP:
-    case P_RPOP:
        return(doPOP3(queryctl));
        break;
     case P_IMAP:
@@ -484,8 +475,6 @@ struct hostrec *queryctl;
     else if (outlevel == O_VERBOSE)
        if (queryctl->protocol == P_APOP)
            printf("  APOP secret = '%s'\n", queryctl->password);
-       else if (queryctl->protocol == P_RPOP)
-           printf("  RPOP secret = '%s'\n", queryctl->password);
         else
            printf("  Password = '%s'\n", queryctl->password);
     printf("  Protocol is %s", showproto(queryctl->protocol));
index 364c8bf9c752546b5067dfbeda1e4890400c7e3e..99f16c87d6e18e51f1da3ce4d4addc6a78507f43 100644 (file)
@@ -17,7 +17,6 @@
 #define                P_POP3  3
 #define                P_IMAP  4
 #define                P_APOP  5
-#define                P_RPOP  6
 
 /* definitions for buffer sizes -- somewhat arbitrary */
 #define                POPBUFSIZE      512     /* per RFC 937 */
index 6fcc792b13d941f700d5026e8712a93b97dce145..633b16581dffdb4a88a52dfefba3d292e5c1c599 100644 (file)
@@ -23,7 +23,7 @@ program can gather mail from servers supporting any of the common
 mail-retrieval protocols: POP2 (as specified in RFC 937), POP3 (RFC
 1725), IMAP2bis (as implemented by the 4.4BSD imapd program), and
 IMAP4 (as specified by RFC1730).  It can use (but does not require)
-the RPOP and LAST facilities removed from later POP3 versions.
+LAST facility removed from later POP3 versions.
 .PP
 As each message is retrieved \fIfetchmail\fR normally delivers it via SMTP to
 port 25 on the machine it is running on (localhost), just as though it
@@ -110,14 +110,11 @@ Post Office Protocol 2
 Post Office Protocol 3
 .IP APOP
 Use POP3 with MD5 authentication.
-.IP RPOP
-POP3 with \fI.rhosts\fR processing (not recommended).
 .RE
 .TP
 .B \-P, --port
-The  option permits you to specify a TCP/IP port to connect on.  You
-will need to specify this in order to use RPOP authentication.  Otherwise
-this option will seldom be necessary as all the supported protocols have
+The  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.
 .TP
 .B \-r folder, --remote folder
@@ -217,19 +214,6 @@ password are usually assigned by the server administrator when you apply for
 a mailbox on the server.  Contact your server administrator if you don't know 
 the correct user-id and password for your mailbox account.
 .PP
-POP3 versions up to the RFC1225 version supported an alternate
-authentication mechanism called RPOP intended to address the security
-risk inherent in sending unencrypted account passwords across the net
-(in RFC1460 this facility was replaced with APOP).  If you specify the
-RPOP protocol and a connection port in the privileged range (1..1024),
-.I fetchmail 
-will ship your password entry to the mail server as an RPOP id.
-(Note: you'll need to be running fetchmail setuid root for RPOP to
-work --
-.I fetchmail
-has to bind to a privileged port locally in order for the mail 
-server to believe it's allowed to bind to a privileged remote port.)
-.PP
 RFC1460 introduced APOP authentication.  In this variant of POP3,
 you register an APOP password on your server host (the program
 to do this with on the server is probably called \fIpopauth\fR(8)).  You
@@ -396,7 +380,6 @@ Legal protocol identifiers are
     pop3 (or POP3)
     imap (or IMAP)
     apop (or APOP)
-    rpop (or RPOP)
 .PP
 You can use the `noise' keywords \fBand\fR, \fBwith\fR,
 \fBhas\fR, \fBwants\fR, and \fBoptions\fR anywhere in an entry to make
@@ -519,7 +502,7 @@ connection.  If you don't know what a socket is, don't worry about it --
 just treat this as an 'unrecoverable error'.
 .IP 3
 The user authentication step failed.  This usually means that a bad 
-user-id, password, or RPOP id was specified.
+user-id, password, or APOP id was specified.
 .IP 4
 Some sort of fatal protocol error was detected.
 .IP 5
@@ -579,8 +562,6 @@ the mail server.  This creates a risk that name/password pairs might
 be snaffled with a packet sniffer or more sophisticated monitoring
 software.
 .PP
-The RPOP support is not yet well tested.
-.PP
 Send comments, bug reports, gripes, and the like to Eric S. Raymond
 <esr@thyrsus.com>.
 .SH NOTES
index 2221c1f900b981bed232b5a48a3452abc68a7b53..4f7d3777bef8e8828be1a3ab0a93db478134107f 100644 (file)
--- a/options.c
+++ b/options.c
@@ -150,8 +150,6 @@ struct hostrec *queryctl;
           queryctl->protocol = P_IMAP;
         else if (strcasecmp(optarg,"apop") == 0)
           queryctl->protocol = P_APOP;
-        else if (strcasecmp(optarg,"rpop") == 0)
-          queryctl->protocol = P_RPOP;
         else {
           fprintf(stderr,"Invalid protocol '%s'\n specified.\n", optarg);
           errflag++;
diff --git a/pop3.c b/pop3.c
index 65849b802ea5d2c7e5aad291d1fef4ed4d9ebac4..30cd0a08565e956bff7ae57dae84c44bb2fa5769 100644 (file)
--- a/pop3.c
+++ b/pop3.c
@@ -109,16 +109,6 @@ char *greeting;
            goto badAuth;
        break;
 
-    case P_RPOP:
-       gen_send(socket,"USER %s", queryctl->remotename);
-       if (pop3_ok(socket, buf) != 0)
-           goto badAuth;
-
-       gen_send(socket, "RPOP %s", queryctl->password);
-       if (pop3_ok(socket, buf) != 0)
-           goto badAuth;
-       break;
-
     case P_APOP:
        gen_send(socket,"APOP %s %s", queryctl->remotename, queryctl->digest);
        if (pop3_ok(socket, buf) != 0) 
index e402f2a54285544e0c9226fc6f0fe0e407e8fb65..0d0752f2270a9b848d52686a96a96ea09e18addb 100644 (file)
@@ -60,7 +60,6 @@ options               {/* EMPTY */}
 (pop3)|(POP3)  { yylval.proto = P_POP3;  return PROTO; }
 (imap)|(IMAP)  { yylval.proto = P_IMAP;  return PROTO; }
 (apop)|(APOP)   { yylval.proto = P_APOP;  return PROTO; }
-(rpop)|(RPOP)   { yylval.proto = P_RPOP;  return PROTO; }
 
 (#.*)?\\?\n    { prc_lineno++; }   /* newline is ignored */
 
index b7d0a9451d5d6576382d0fab9c9103b31b83cf4d..8457576d5e65df510abfd2c4b81182527a7b58e2 100644 (file)
@@ -45,7 +45,6 @@
 #   pop3 (or POP3)
 #   imap (or IMAP)
 #   apop (or APOP)
-#   rpop (or RPOP)
 #
 # Basic format is
 # server SERVERNAME protocol PROTOCOL username NAME password PASSWORD