]> Pileus Git - ~andy/fetchmail/blobdiff - pop2.c
Final integration.
[~andy/fetchmail] / pop2.c
diff --git a/pop2.c b/pop2.c
index dbb37284ead137aafc51d55ae4638219e45b3853..8d6f2f3fa133ca4fe83290f7c0ded4aaa582d1e5 100644 (file)
--- a/pop2.c
+++ b/pop2.c
@@ -59,7 +59,8 @@ int pop2_getauth(int sock, struct query *ctl, char *buf)
                  ctl->remotename, ctl->password));
 }
 
-static int pop2_getrange(int sock, struct query *ctl, const char *folder, int*countp, int*newp)
+static int pop2_getrange(int sock, struct query *ctl, const char *folder, 
+                        int *countp, int *newp, int *bytes)
 /* get range of messages to be fetched */
 {
     /* maybe the user wanted a non-default folder */
@@ -87,7 +88,7 @@ static int pop2_getrange(int sock, struct query *ctl, const char *folder, int*co
            return(PS_ERROR);
 
     *countp = pound_arg;
-    *newp = -1;
+    *bytes = *newp = -1;
 
     return(0);
 }
@@ -114,14 +115,26 @@ static int pop2_trail(int sock, struct query *ctl, int number)
     return(gen_transact(sock, ctl->keep ? "ACKS" : "ACKD"));
 }
 
+static int pop2_logout(int sock, struct query *ctl)
+/* send logout command */
+{
+    return(gen_transact(sock, "QUIT"));
+}
+
 const static struct method pop2 =
 {
     "POP2",                            /* Post Office Protocol v2 */
+#if INET6
+    "pop2",                            /* standard POP2 port */
+    "pop2",                            /* ssl POP2 port */
+#else /* INET6 */
     109,                               /* standard POP2 port */
+    109,                               /* ssl POP2 port - not */
+#endif /* INET6 */
     FALSE,                             /* this is not a tagged protocol */
     FALSE,                             /* does not use message delimiter */
-    FALSE,                             /* no getsizes method */
     pop2_ok,                           /* parse command response */
+    NULL,                              /* no password canonicalization */
     pop2_getauth,                      /* get authorization */
     pop2_getrange,                     /* query range of messages */
     NULL,                              /* no way to get sizes */
@@ -130,7 +143,8 @@ const static struct method pop2 =
     NULL,                              /* no way to fetch body alone */
     pop2_trail,                                /* eat message trailer */
     NULL,                              /* no POP2 delete method */
-    "QUIT",                            /* the POP2 exit command */
+    pop2_logout,                       /* log out, we're done */
+    FALSE,                             /* no, we can't re-poll */
 };
 
 int doPOP2 (struct query *ctl)