X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fetchmail.h;h=466ed86b989cd5bfb4731bb52f357f5a19753a27;hb=88aa42e247cd76aeb53dac8f3df90c45de80a6fb;hp=0315a9da49f883953f6973e09a317dd0a871ad58;hpb=82e1d66f6bee1a8837d8d6c89c7ed6b11f2c0a48;p=~andy%2Ffetchmail diff --git a/fetchmail.h b/fetchmail.h index 0315a9da..466ed86b 100644 --- a/fetchmail.h +++ b/fetchmail.h @@ -44,6 +44,8 @@ struct addrinfo; char *strstr(const char *, const char *); #endif +#include "fm_strl.h" + /* constants designating the various supported protocols */ #define P_AUTO 1 #define P_POP2 2 @@ -213,7 +215,7 @@ UID_SEEN= 1, /**< id was seen, but not deleted */ UID_DELETED= 2, /**< this message has been marked deleted */ UID_EXPUNGED= 3 /**< this message has been expunged */ }; -/*@}*/ +/**/ struct query; @@ -400,11 +402,11 @@ struct query struct query *next; /* next query control block in chain */ }; -struct msgblk /* message header parsed for open_sink() */ +struct msgblk /** message header parsed for open_sink() */ { - char *headers; /* raw message headers */ - struct idlist *recipients; /* addressees */ - char return_path[HOSTLEN + USERNAMELEN + 4]; + char *headers; /**< raw message headers */ + struct idlist *recipients; /**< addressees */ + char return_path[HOSTLEN + USERNAMELEN + 4]; /**< envelope sender */ int msglen; int reallen; }; @@ -474,8 +476,8 @@ extern char *sdps_envto; extern const char *iana_charset; /* IANA assigned charset name */ -/* from ucs/norm_charmap.c */ -const char *norm_charmap(const char *name); +/* from/for ucs/norm_charmap.c */ +#include "ucs/norm_charmap.h" /* prototypes for globally callable functions */ @@ -515,6 +517,16 @@ void resetidletimeout(void); int do_protocol(struct query *, const struct method *); /* transact.c: transaction support */ +/** \ingroup gen_recv_split + * Data structure to cache data between \func gen_recv_split calls, + * must be initialized before use by calling \func gen_recv_split_init. */ +struct RecvSplit +{ + char prefix[100]; /**< prefix to match/repeat when splitting lines */ + int cached; /**< flag to record if we have data cached in \a buf */ + char buf[MSGBUFSIZE]; /**< buffer for cached data */ +}; + void init_transact(const struct method *); int readheaders(int sock, long fetchlen, @@ -528,12 +540,16 @@ void gen_send(int sock, const char *, ... ) __attribute__ ((format (printf, 2, 3))) ; int gen_recv(int sock, char *buf, int size); +void gen_recv_split_init(const char *prefix, struct RecvSplit *rs); +int gen_recv_split(int sock, char *buf, int size, struct RecvSplit *rs); int gen_transact(int sock, const char *, ... ) __attribute__ ((format (printf, 2, 3))) ; #else void gen_send(); int gen_recv(); +void gen_recv_split_init(); +int gen_recv_split(); int gen_transact(); #endif extern struct msgblk msgblk; @@ -740,16 +756,6 @@ extern const char *program_name; * ;;;;; */ #define POSIX_space "\t\n\v\f\r " -/* strlcpy/strlcat prototypes */ -#ifndef HAVE_STRLCAT -size_t -strlcat(char *dst, const char *src, size_t siz); -#endif -#ifndef HAVE_STRLCPY -size_t -strlcpy(char *dst, const char *src, size_t siz); -#endif - /** Resolve the a TCP service name or a string containing only a decimal * positive integer to a port number. Returns -1 for error. */ int servport(const char *service); @@ -772,6 +778,14 @@ int must_tls(struct query *ctl); /* prototype from rfc822valid.c */ int rfc822_valid_msgid(const unsigned char *); +/* prototype from x509_name_match.c */ +int name_match(const char *p1, const char *p2); + +/* prototype from ntlmsubr.c */ +#ifdef NTLM_ENABLE +int ntlm_helper(int sock, struct query *ctl, const char *protocol); +#endif + /* macro to determine if we want to spam progress to stdout */ #define want_progress() \ ((outlevel >= O_VERBOSE || (outlevel > O_SILENT && run.showdots)) \