X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=pop2.c;h=8d6f2f3fa133ca4fe83290f7c0ded4aaa582d1e5;hb=625b34b34f98514d8ba41490662a54fecfd39fe8;hp=dbb37284ead137aafc51d55ae4638219e45b3853;hpb=e72637a2022c33425341ab26790d19f88d18fec5;p=~andy%2Ffetchmail diff --git a/pop2.c b/pop2.c index dbb37284..8d6f2f3f 100644 --- 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)