#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) */
/* 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? */
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 */
/* driver.c -- main driver loop */
void set_timeout(int);
+int isidletimeout(void);
int do_protocol(struct query *, const struct method *);
/* transact.c: transaction support */
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 *);
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 *);