int update_readmark(MSG_STRUCT *msg_props, int new_readmark);
char *gen_uidl(char *dest, char *source);
int httpmail_authenticate_user(char *user, char *pass);
void prepare_and_send(ghttp_request *request, char *url);
int set_authinfo(ghttp_request *request, char *UserName, char *Password,
			char *WWWAuthenticate, int maintainlogged);
void httpmail_destroy(void);
int cp_mv_msg(ghttp_request *request, int num_msg, FOLDER_STRUCT *folder_props, char *dest_href, int cmd);
int delhref(ghttp_request *request, char *to_delete, char *msg_name);
int getlist(ghttp_request *request, FOLDER_STRUCT *folder_props);
void request_folder_props(ghttp_request *request);
char *grow_and_copy(char *dest, int curpos, char *src, int i);
int proxy_sanity_check(void);
void set_proxy(char *proxy_url);
void set_proxy_username(char *p_uname);
void set_proxy_password(char *p_pword);
void set_access_list(char *a_list);
int str2val(register const char *str, register const char *what,
	    register int mi, register int ma);
int post(char *body, unsigned long body_len);

#define KG_STATE_UNCACHE -1
#define KG_STATE_CACHE 0
#define KG_STATE_READ 1
#define KG_STATE_DUMP 2
#define LAZY_BUFSIZE ((8 * 1024) - 1)

/* Defintions for the types of http authorisation methods */
#define UNKNOWN 0
#define BASIC 1
#define DIGEST 2

#define E_GETMSG_OK 1
#define E_GETMSG_ERROR 2

#define E_NOMSGPROPS 20
#define E_INVALID_READMARK 21
#define E_GHTTP_ERR 22
#define E_UPDATE_FAILED 23

#define N_XML_LENGTH 16

#define E_OK 1
#define E_MOVE_TRASH_NOT_SET 6
#define E_MOVE_NO_DEST 7
#define E_COPY_NO_DEST 7
#define E_UNKNOWN_ERR 8
#define E_CPMV_OK 1
#define E_CPMV_WEIRD_OK 2
#define E_CPMV_NOFOLDERPROPS 3
#define E_CPMV_FORBIDDEN 4
#define E_CPMV_CONFLICT 5
#define E_CPMV_PRECOND_FAILED 9
#define E_CPMV_LOCKED 10
#define E_CPMV_BADGATEWAY 11
#define E_CPMV_INSUFFICIENT_STORAGE 12
#define E_COPY_DSTMBOXNOTFOUND 13
#define E_SRCMBOXNOTFOUND 14
#define E_NO_FOLDERLIST 15
#define E_MBOXREADONLY 16

#define E_NOMSGS 2


typedef struct url_tag {
  char *href;
} URL_STRUCT;

typedef struct HTTP_Servers{
	char *domain;
	char *URL;
} HTTP_Servers;

typedef struct Auth_Method {
	char *wwwauthstr;
	int auth_type;
} Auth_Method;


syntax highlighted by Code2HTML, v. 0.9.1