X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fpopsbr.c;h=839e3d33d9891b485d8ddddbfb3e376d9d927ff4;hb=7b98850d3b8b2453b473fdfb6db52f4aa3fe39b6;hp=1df74d931f8f697a43a268323c416af629262c90;hpb=76d105d8136c53f1445849e84d49b100b29fbb78;p=mmh diff --git a/uip/popsbr.c b/uip/popsbr.c index 1df74d9..839e3d3 100644 --- a/uip/popsbr.c +++ b/uip/popsbr.c @@ -11,9 +11,6 @@ #include #include -extern int client(char *args, char *protocol, char *service, int rproto, - char *response, int len_response); - #if defined(NNTP) && !defined(PSHSBR) # undef NNTP #endif @@ -81,6 +78,8 @@ static sasl_callback_t callbacks[] = { #define POP_SASL_CB_N_PASS 1 { SASL_CB_LOG, NULL, NULL }, { SASL_CB_LIST_END, NULL, NULL }, + +#define SASL_BUFFER_SIZE 262144 }; #else /* CYRUS_SASL */ # define sasl_fgetc fgetc @@ -104,7 +103,7 @@ static int pop_auth_sasl(char *, char *, char *); static int sasl_fgetc(FILE *); #endif /* CYRUS_SASL */ -static int traverse (int (*)(), const char *, ...); +static int traverse (int (*)(char *), const char *, ...); static int vcommand(const char *, va_list); static int sasl_getline (char *, int, FILE *); static int putline (char *, FILE *); @@ -255,7 +254,7 @@ pop_auth_sasl(char *user, char *host, char *mech) */ memset(&secprops, 0, sizeof(secprops)); - secprops.maxbufsize = BUFSIZ; + secprops.maxbufsize = SASL_BUFFER_SIZE; secprops.max_ssf = UINT_MAX; result = sasl_setprop(conn, SASL_SEC_PROPS, &secprops); @@ -384,7 +383,8 @@ pop_auth_sasl(char *user, char *host, char *mech) } /* - * Limit this to what we can deal with. + * Limit this to what we can deal with. Shouldn't matter much because + * this is only outgoing data (which should be small) */ if (maxoutbuf == 0 || maxoutbuf > BUFSIZ) @@ -459,7 +459,7 @@ parse_proxy(char *proxy, char *host) char *c; /* skip any initial space */ - for (pro = proxy; isspace(*pro); pro++) + for (pro = (unsigned char *) proxy; isspace(*pro); pro++) continue; /* calculate required size for argument array */ @@ -566,12 +566,12 @@ pop_init (char *host, char *user, char *pass, char *proxy, int snoop, return NOTOK; # endif /* KPOP */ } else { - if ((fd1 = client (host, "tcp", POPSERVICE, rpop, response, sizeof(response))) == NOTOK) { + if ((fd1 = client (host, POPSERVICE, response, sizeof(response), snoop)) == NOTOK) { return NOTOK; } } #else /* NNTP */ - if ((fd1 = client (host, "tcp", "nntp", rpop, response, sizeof(response))) == NOTOK) + if ((fd1 = client (host, "nntp", response, sizeof(response), snoop)) == NOTOK) return NOTOK; #endif @@ -823,7 +823,7 @@ pop_list (int msgno, int *nmsgs, int *msgs, int *bytes) int -pop_retr (int msgno, int (*action)()) +pop_retr (int msgno, int (*action)(char *)) { #ifndef NNTP return traverse (action, "RETR %d", (targ_t) msgno); @@ -834,7 +834,7 @@ pop_retr (int msgno, int (*action)()) static int -traverse (int (*action)(), const char *fmt, ...) +traverse (int (*action)(char *), const char *fmt, ...) { int result; va_list ap; @@ -895,7 +895,7 @@ pop_rset (void) int -pop_top (int msgno, int lines, int (*action)()) +pop_top (int msgno, int lines, int (*action)(char *)) { #ifndef NNTP return traverse (action, "TOP %d %d", (targ_t) msgno, (targ_t) lines); @@ -1186,7 +1186,7 @@ sasl_fgetc(FILE *f) static int cnt = 0; unsigned int retbufsize = 0; int cc, result; - char *retbuf, tmpbuf[BUFSIZ]; + char *retbuf, tmpbuf[SASL_BUFFER_SIZE]; /* * If we have some leftover data, return that