summaryrefslogtreecommitdiff
path: root/pith/remote.h
diff options
context:
space:
mode:
authorEduardo Chappa <echappa@gmx.com>2013-02-03 00:59:38 -0700
committerEduardo Chappa <echappa@gmx.com>2013-02-03 00:59:38 -0700
commit094ca96844842928810f14844413109fc6cdd890 (patch)
treee60efbb980f38ba9308ccb4fb2b77b87bbc115f3 /pith/remote.h
downloadalpine-094ca96844842928810f14844413109fc6cdd890.tar.xz
Initial Alpine Version
Diffstat (limited to 'pith/remote.h')
-rw-r--r--pith/remote.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/pith/remote.h b/pith/remote.h
new file mode 100644
index 00000000..621b6ed8
--- /dev/null
+++ b/pith/remote.h
@@ -0,0 +1,95 @@
+/*
+ * $Id: remote.h 1074 2008-06-04 00:08:43Z hubert@u.washington.edu $
+ *
+ * ========================================================================
+ * Copyright 2006-2008 University of Washington
+ * Copyright 2013 Eduardo Chappa
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * ========================================================================
+ */
+
+#ifndef PITH_REMOTE_INCLUDED
+#define PITH_REMOTE_INCLUDED
+
+
+#include "../pith/remtype.h"
+#include "../pith/conftype.h"
+
+
+#define REMOTE_DATA_TYPE TYPETEXT
+#define REMOTE_DATA_VERS_NUM 1
+#define REMOTE_ABOOK_SUBTYPE "x-pine-addrbook"
+#define REMOTE_PINERC_SUBTYPE "x-pine-pinerc"
+#define REMOTE_SIG_SUBTYPE "x-pine-sig"
+#define REMOTE_SMIME_SUBTYPE "x-pine-smime"
+
+#define PMAGIC "P#*E@"
+#define METAFILE_VERSION_NUM "01"
+#define SIZEOF_PMAGIC (5)
+#define SIZEOF_SPACE (1)
+#define SIZEOF_VERSION_NUM (2)
+#define TO_FIND_HDR_PMAGIC (0)
+#define TO_FIND_VERSION_NUM (TO_FIND_HDR_PMAGIC + SIZEOF_PMAGIC + SIZEOF_SPACE)
+
+
+/*
+ * For flags below. Also for address book flags in struct adrbk. Some of
+ * these flags are shared so they need to be in the same namespace.
+ */
+#define DEL_FILE 0x00001 /* remove addrbook file in adrbk_close */
+#define DO_REMTRIM 0x00004 /* trim remote data if needed and possible */
+#define USE_OLD_CACHE 0x00008 /* using cache copy, couldn't check if old */
+#define REM_OUTOFDATE 0x00010 /* remote data changed since cached */
+#define NO_STATUSCMD 0x00020 /* imap server doesn't have status command */
+#define NO_META_UPDATE 0x00040 /* don't try to update metafile */
+#define NO_PERM_CACHE 0x00080 /* remove temp cache files when done */
+#define NO_FILE 0x00100 /* use memory (sonofile) instead of a file */
+#define FILE_OUTOFDATE 0x00400 /* addrbook file discovered out of date */
+#define COOKIE_ONE_OK 0x02000 /* cookie with old value of one is ok */
+#define USER_SAID_NO 0x04000 /* user said no when asked about cookie */
+#define USER_SAID_YES 0x08000 /* user said yes when asked about cookie */
+#define BELIEVE_CACHE 0x10000 /* user said yes when asked about cookie */
+
+
+extern char meta_prefix[];
+
+
+/* exported protoypes */
+char *read_remote_pinerc(PINERC_S *, ParsePinerc);
+REMDATA_S *rd_create_remote(RemType, char *, char *, unsigned *, char *, char *);
+REMDATA_S *rd_new_remdata(RemType, char *, char *);
+void rd_free_remdata(REMDATA_S **);
+void rd_trim_remdata(REMDATA_S **);
+void rd_close_remdata(REMDATA_S **);
+int rd_read_metadata(REMDATA_S *);
+void rd_write_metadata(REMDATA_S *, int);
+void rd_update_metadata(REMDATA_S *, char *);
+void rd_open_remote(REMDATA_S *);
+void rd_close_remote(REMDATA_S *);
+int rd_stream_exists(REMDATA_S *);
+int rd_ping_stream(REMDATA_S *);
+void rd_check_readonly_access(REMDATA_S *);
+int rd_init_remote(REMDATA_S *, int);
+int rd_update_local(REMDATA_S *);
+int rd_update_remote(REMDATA_S *, char *);
+void rd_check_remvalid(REMDATA_S *, long);
+int rd_remote_is_readonly(REMDATA_S *);
+int rd_chk_for_hdr_msg(MAILSTREAM **, REMDATA_S *, char **);
+
+/* currently mandatory to implement stubs */
+
+/*
+ * This is used when we try to copy remote config data and find that
+ * the remote folder looks fishy. We ask the user what they want to
+ * do.
+ */
+int rd_prompt_about_forged_remote_data(int,REMDATA_S *, char *);
+
+
+#endif /* PITH_REMOTE_INCLUDED */