projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* uip/whatnowsbr.c: enforce requirement of at least one file
[mmh]
/
uip
/
popsbr.c
diff --git
a/uip/popsbr.c
b/uip/popsbr.c
index
363f925
..
3ac88be
100644
(file)
--- a/
uip/popsbr.c
+++ b/
uip/popsbr.c
@@
-1,8
+1,6
@@
/*
* popsbr.c -- POP client subroutines
*
/*
* popsbr.c -- POP client subroutines
*
- * $Id$
- *
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
* complete copyright information.
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
* complete copyright information.
@@
-11,9
+9,6
@@
#include <h/mh.h>
#include <h/utils.h>
#include <h/mh.h>
#include <h/utils.h>
-extern int client(char *args, char *protocol, char *service, int rproto,
- char *response, int len_response);
-
#if defined(NNTP) && !defined(PSHSBR)
# undef NNTP
#endif
#if defined(NNTP) && !defined(PSHSBR)
# undef NNTP
#endif
@@
-81,6
+76,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 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
};
#else /* CYRUS_SASL */
# define sasl_fgetc fgetc
@@
-104,9
+101,9
@@
static int pop_auth_sasl(char *, char *, char *);
static int sasl_fgetc(FILE *);
#endif /* CYRUS_SASL */
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 vcommand(const char *, va_list);
-static int getline (char *, int, FILE *);
+static int sasl_getline (char *, int, FILE *);
static int putline (char *, FILE *);
static int putline (char *, FILE *);
@@
-255,7
+252,7
@@
pop_auth_sasl(char *user, char *host, char *mech)
*/
memset(&secprops, 0, sizeof(secprops));
*/
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);
secprops.max_ssf = UINT_MAX;
result = sasl_setprop(conn, SASL_SEC_PROPS, &secprops);
@@
-384,7
+381,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)
*/
if (maxoutbuf == 0 || maxoutbuf > BUFSIZ)
@@
-455,11
+453,11
@@
parse_proxy(char *proxy, char *host)
int pargc = 2;
int hlen = strlen(host);
int plen = 1;
int pargc = 2;
int hlen = strlen(host);
int plen = 1;
- char *cur, *pro;
+ unsigned char *cur, *pro;
char *c;
/* skip any initial space */
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 */
continue;
/* calculate required size for argument array */
@@
-566,12
+564,12
@@
pop_init (char *host, char *user, char *pass, char *proxy, int snoop,
return NOTOK;
# endif /* KPOP */
} else {
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 */
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
return NOTOK;
#endif
@@
-597,7
+595,7
@@
pop_init (char *host, char *user, char *pass, char *proxy, int snoop,
SIGNAL (SIGPIPE, SIG_IGN);
SIGNAL (SIGPIPE, SIG_IGN);
- switch (getline (response, sizeof response, input)) {
+ switch (sasl_getline (response, sizeof response, input)) {
case OK:
if (poprint)
fprintf (stderr, "<--- %s\n", response);
case OK:
if (poprint)
fprintf (stderr, "<--- %s\n", response);
@@
-823,7
+821,7
@@
pop_list (int msgno, int *nmsgs, int *msgs, int *bytes)
int
int
-pop_retr (int msgno, int (*action)())
+pop_retr (int msgno, int (*action)(char *))
{
#ifndef NNTP
return traverse (action, "RETR %d", (targ_t) msgno);
{
#ifndef NNTP
return traverse (action, "RETR %d", (targ_t) msgno);
@@
-834,7
+832,7
@@
pop_retr (int msgno, int (*action)())
static int
static int
-traverse (int (*action)(), const char *fmt, ...)
+traverse (int (*action)(char *), const char *fmt, ...)
{
int result;
va_list ap;
{
int result;
va_list ap;
@@
-895,7
+893,7
@@
pop_rset (void)
int
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);
{
#ifndef NNTP
return traverse (action, "TOP %d %d", (targ_t) msgno, (targ_t) lines);
@@
-1041,7
+1039,7
@@
vcommand (const char *fmt, va_list ap)
fprintf(stderr, "(decrypted) ");
#endif /* CYRUS_SASL */
fprintf(stderr, "(decrypted) ");
#endif /* CYRUS_SASL */
- switch (getline (response, sizeof response, input)) {
+ switch (sasl_getline (response, sizeof response, input)) {
case OK:
if (poprint)
fprintf (stderr, "<--- %s\n", response);
case OK:
if (poprint)
fprintf (stderr, "<--- %s\n", response);
@@
-1072,7
+1070,7
@@
multiline (void)
{
char buffer[BUFSIZ + TRMLEN];
{
char buffer[BUFSIZ + TRMLEN];
- if (getline (buffer, sizeof buffer, input) != OK)
+ if (sasl_getline (buffer, sizeof buffer, input) != OK)
return NOTOK;
#ifdef DEBUG
if (poprint) {
return NOTOK;
#ifdef DEBUG
if (poprint) {
@@
-1101,9
+1099,9
@@
multiline (void)
*/
static int
*/
static int
-getline (char *s, int n, FILE *iop)
+sasl_getline (char *s, int n, FILE *iop)
{
{
- int c;
+ int c = -2;
char *p;
p = s;
char *p;
p = s;
@@
-1186,7
+1184,7
@@
sasl_fgetc(FILE *f)
static int cnt = 0;
unsigned int retbufsize = 0;
int cc, result;
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
/*
* If we have some leftover data, return that