#ifndef _IMAP_PRIVATE_H
#define _IMAP_PRIVATE_H 1
-#include <inttypes.h>
+#include <lib-sys/mutt_socket.h>
+#include <lib-ui/lib-ui.h>
#include "imap.h"
-#include "mutt_socket.h"
/* -- symbols -- */
#define IMAP_PORT 143
IMAP_NS_SHARED
};
-/* ACL Rights */
-enum {
- IMAP_ACL_LOOKUP = 0,
- IMAP_ACL_READ,
- IMAP_ACL_SEEN,
- IMAP_ACL_WRITE,
- IMAP_ACL_INSERT,
- IMAP_ACL_POST,
- IMAP_ACL_CREATE,
- IMAP_ACL_DELETE,
- IMAP_ACL_ADMIN,
-
- RIGHTSMAX
-};
+/* ACL Rights are moved to ../mx.h */
/* Capabilities we are interested in */
enum {
/* -- data structures -- */
typedef struct {
- unsigned int uid;
+ int uid;
char *path;
} IMAP_CACHE;
/* IMAP command structure */
typedef struct {
- char seq[SEQLEN + 1];
- char *buf;
- unsigned int blen;
int state;
+ char seq[SEQLEN + 1];
+ buffer_t buf;
} IMAP_COMMAND;
typedef struct {
CONNECTION *conn;
unsigned char state;
unsigned char status;
+ unsigned char isnew;
/* let me explain capstr: SASL needs the capability string (not bits).
* we have 3 options:
* 1. rerun CAPABILITY inside SASL function.
unsigned int seqno;
time_t lastread; /* last time we read a command for the server */
/* who knows, one day we may run multiple commands in parallel */
+
IMAP_COMMAND cmd;
/* The following data is all specific to the currently SELECTED mbox */
unsigned char rights[(RIGHTSMAX + 7) / 8];
unsigned int newMailCount;
IMAP_CACHE cache[IMAP_CACHE_LEN];
- int noclose:1;
#ifdef USE_HCACHE
- uint64_t uid_validity;
+ long uid_validity;
#endif
/* all folder flags - system flags AND keywords */
- LIST *flags;
+ string_list_t *flags;
} IMAP_DATA;
/* I wish that were called IMAP_CONTEXT :( */
IMAP_DATA *imap_conn_find (const ACCOUNT * account, int flags);
int imap_parse_list_response (IMAP_DATA * idata, char **name, int *noselect,
int *noinferiors, char *delim);
-int imap_read_literal (FILE * fp, IMAP_DATA * idata, long bytes);
+int imap_read_literal (FILE * fp, IMAP_DATA * idata, long bytes, progress_t*);
void imap_expunge_mailbox (IMAP_DATA * idata);
int imap_reconnect (CONTEXT * ctx);
void imap_logout (IMAP_DATA * idata);
+int imap_sync_message (IMAP_DATA*, HEADER*, BUFFER*, int*);
/* auth.c */
int imap_authenticate (IMAP_DATA * idata);
int imap_exec (IMAP_DATA * idata, const char *cmd, int flags);
/* message.c */
-void imap_add_keywords (char *s, HEADER * keywords, LIST * mailbox_flags,
+void imap_add_keywords (char *s, HEADER * keywords, string_list_t * mailbox_flags,
size_t slen);
void imap_free_header_data (void **data);
int imap_read_headers (IMAP_DATA * idata, int msgbegin, int msgend);
IMAP_DATA *imap_new_idata (void);
void imap_free_idata (IMAP_DATA ** idata);
char *imap_fix_path (IMAP_DATA * idata, char *mailbox, char *path,
- size_t plen);
+ ssize_t plen);
int imap_get_literal_count (const char *buf, long *bytes);
char *imap_get_qualifier (char *buf);
char *imap_next_word (char *s);