]> Pileus Git - ~andy/fetchmail/blobdiff - fetchmail.h
Minor bug fixes for socket.c
[~andy/fetchmail] / fetchmail.h
index 0315a9da49f883953f6973e09a317dd0a871ad58..d759d391e6bbd7d4de651e67d2669b2a08e81922 100644 (file)
@@ -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;
@@ -740,16 +756,6 @@ extern const char *program_name;
  * <tab>;<newline>;<vertical-tab>;<form-feed>;<carriage-return>;<space> */
 #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)) \