]> Pileus Git - ~andy/fetchmail/blobdiff - fetchmail.h
First round ofmlong-delayed bug fixes.
[~andy/fetchmail] / fetchmail.h
index 8bdfbc57e92832602a1323c07474df1ee5879d7a..8b4280b3c57d8c53d62539f66bb20d0ab32626ca 100644 (file)
@@ -94,6 +94,7 @@
 #define                PS_BSMTP        12      /* output batch could not be opened */
 #define                PS_MAXFETCH     13      /* poll ended by fetch limit */
 #define                PS_SERVBUSY     14      /* server is busy */
+#define                PS_IDLETIMEOUT  15      /* timeout on imap IDLE */
 /* leave space for more codes */
 #define                PS_UNDEFINED    23      /* something I hadn't thought of */
 #define                PS_TRANSIENT    24      /* transient failure (internal use) */
@@ -191,6 +192,8 @@ struct method               /* describe methods for protocol state machine */
                                /* eat trailer of a message */
     int (*delete)(int, struct query *, int);
                                /* delete method */
+    int (*mark_seen)(int, struct query *, int);
+                               /* mark as seen method */
     int (*logout_cmd)(int, struct query *);
                                /* logout command */
     flag retry;                        /* can getrange poll for new messages? */
@@ -311,6 +314,7 @@ struct query
     unsigned int uid;          /* UID of user to deliver to */
     struct idlist *skipped;    /* messages skipped on the mail server */
     struct idlist *oldsaved, *newsaved;
+    struct idlist **oldsavedend;
     char *lastid;              /* last Message-ID seen on this connection */
     char *thisid;              /* Message-ID of current message */
 
@@ -424,6 +428,7 @@ void report_at_line ();
 
 /* driver.c -- main driver loop */
 void set_timeout(int);
+int isidletimeout(void);
 int do_protocol(struct query *, const struct method *);
 
 /* transact.c: transaction support */
@@ -511,14 +516,14 @@ void free_str_list(struct idlist **);
 struct idlist *copy_str_list(struct idlist *idl);
 void save_str_pair(struct idlist **, const char *, const char *);
 void free_str_pair_list(struct idlist **);
-int delete_str(struct idlist **, int);
+int delete_str(struct idlist **, long);
 int str_in_list(struct idlist **, const char *, const flag);
 int str_nr_in_list(struct idlist **, const char *);
 int str_nr_last_in_list(struct idlist **, const char *);
 void str_set_mark( struct idlist **, const char *, const flag);
 int count_list( struct idlist **idl );
-char *str_from_nr_list( struct idlist **idl, int number );
-char *str_find(struct idlist **, int);
+char *str_from_nr_list( struct idlist **idl, long number );
+char *str_find(struct idlist **, long);
 char *idpair_find(struct idlist **, const char *);
 void append_str_list(struct idlist **, struct idlist **);
 void expunge_uids(struct query *);
@@ -598,7 +603,10 @@ char *prependdir (const char *, const char *);
 char *MD5Digest (unsigned char *);
 void hmac_md5 (unsigned char *, size_t, unsigned char *, size_t, unsigned char *, size_t);
 int POP3_auth_rpa(unsigned char *, unsigned char *, int socket);
+typedef RETSIGTYPE (*SIGHANDLERTYPE) (int);
 void deal_with_sigchld(void);
+RETSIGTYPE null_signal_handler(int sig);
+SIGHANDLERTYPE set_signal_handler(int sig, SIGHANDLERTYPE handler);
 int daemonize(const char *, void (*)(int));
 char *fm_getpassword(char *);
 void escapes(const char *, char *);