X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fetchmail.h;h=d759d391e6bbd7d4de651e67d2669b2a08e81922;hb=bc92e40ab0f174062f4e11cfdf12aa7b68ba325c;hp=aa58bcddf159c90c3a81bc071fcb667907f51145;hpb=34f7ed1fc76dbbcd8f2984d4304ec24ead244b43;p=~andy%2Ffetchmail diff --git a/fetchmail.h b/fetchmail.h index aa58bcdd..d759d391 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 @@ -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; @@ -650,6 +666,7 @@ int doODMR (struct query *); /* authentication functions */ int do_cram_md5(int sock, const char *command, struct query *ctl, const char *strip); int do_rfc1731(int sock, const char *command, const char *truename); +int check_gss_creds(const char *service, const char *hostname); int do_gssauth(int sock, const char *command, const char *service, const char *hostname, const char *username); int do_otp(int sock, const char *command, struct query *ctl); @@ -739,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); @@ -771,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)) \