MAILINGLIST: add facility to choose the default room email alias.
[citadel.git] / webcit / webcit.h
index fd64a229cdffe670b6318e28d9ec22b0c8697184..43ecb0f78cc4f51efd355d6a4d1d0a9c1639bf3b 100644 (file)
@@ -123,14 +123,18 @@ extern char *ssl_cipher_list;
 
 #define TRACE syslog(LOG_DEBUG, "\033[3%dmCHECKPOINT: %s:%d\033[0m", ((__LINE__%6)+1), __FILE__, __LINE__)
 
+#ifdef UNDEF_MEMCPY
+#undef memcpy
+#endif
+
 #define SLEEPING               180             /* TCP connection timeout */
 #define WEBCIT_TIMEOUT         900             /* WebCit session timeout */
 #define PORT_NUM               2000            /* port number to listen on */
 #define DEVELOPER_ID           0
 #define CLIENT_ID              4
-#define CLIENT_VERSION         810             /* This version of WebCit */
-#define MINIMUM_CIT_VERSION    805             /* Minimum required version of Citadel server */
-#define        LIBCITADEL_MIN          805             /* Minimum required version of libcitadel */
+#define CLIENT_VERSION         813             /* This version of WebCit */
+#define MINIMUM_CIT_VERSION    813             /* Minimum required version of Citadel server */
+#define        LIBCITADEL_MIN          813             /* Minimum required version of libcitadel */
 #define DEFAULT_HOST           "localhost"     /* Default Citadel server */
 #define DEFAULT_PORT           "504"
 #define TARGET                 "webcit01"      /* Window target for inline URL's */
@@ -149,70 +153,6 @@ extern char *ssl_cipher_list;
 #endif
 
 
-/*
- * Room flags (from Citadel)
- *
- * bucket one...
- */
-#define QR_PERMANENT   1               /* Room does not purge                  */
-#define QR_INUSE       2               /* Set if in use, clear if avail        */
-#define QR_PRIVATE     4               /* Set for any type of private room     */
-#define QR_PASSWORDED  8               /* Set if there's a password too        */
-#define QR_GUESSNAME   16              /* Set if it's a guessname room         */
-#define QR_DIRECTORY   32              /* Directory room                       */
-#define QR_UPLOAD      64              /* Allowed to upload                    */
-#define QR_DOWNLOAD    128             /* Allowed to download                  */
-#define QR_VISDIR      256             /* Visible directory                    */
-#define QR_ANONONLY    512             /* Anonymous-Only room                  */
-#define QR_ANONOPT     1024            /* Anonymous-Option room                */
-#define QR_NETWORK     2048            /* Shared network room                  */
-#define QR_PREFONLY    4096            /* Preferred status needed to enter     */
-#define QR_READONLY    8192            /* Aide status required to post         */
-#define QR_MAILBOX     16384           /* Set if this is a private mailbox     */
-
-/*
- * bucket two...
- */
-#define QR2_SYSTEM     1               /* System room; hide by default         */
-#define QR2_SELFLIST   2               /* Self-service mailing list mgmt       */
-#define QR2_COLLABDEL  4               /* Anyone who can post can also delete  */
-#define QR2_SUBJECTREQ  8               /* Subject strongly recommended                */
-#define QR2_SMTP_PUBLIC 16              /* smtp public postable room           */
-#define QR2_MODERATED  32              /* Listservice aide has to permit posts */
-
-/*
- * user/room access
- */
-#define UA_KNOWN               2
-#define UA_GOTOALLOWED         4
-#define UA_HASNEWMSGS          8
-#define UA_ZAPPED              16
-#define UA_POSTALLOWED          32
-#define UA_ADMINALLOWED         64
-#define UA_DELETEALLOWED        128
-#define UA_ISTRASH              256    /* Only available in room view... */
-
-
-/*
- * User flags (from Citadel)
- */
-#define US_NEEDVALID   1               /* User needs to be validated           */
-#define US_PERM                4               /* Permanent user                       */
-#define US_LASTOLD     16              /* Print last old message with new      */
-#define US_EXPERT      32              /* Experienced user                     */
-#define US_UNLISTED    64              /* Unlisted userlog entry               */
-#define US_NOPROMPT    128             /* Don't prompt after each message      */
-#define US_PROMPTCTL   256             /* <N>ext & <S>top work at prompt       */
-#define US_DISAPPEAR   512             /* Use "disappearing msg prompts"       */
-#define US_REGIS       1024            /* Registered user                      */
-#define US_PAGINATOR   2048            /* Pause after each screen of text      */
-#define US_INTERNET    4096            /* Internet mail privileges             */
-#define US_FLOORS      8192            /* User wants to see floors             */
-#define US_COLOR       16384           /* User wants ANSI color support        */
-#define US_USER_SET    (US_LASTOLD | US_EXPERT | US_UNLISTED | \
-                       US_NOPROMPT | US_DISAPPEAR | US_PAGINATOR | \
-                       US_FLOORS | US_COLOR | US_PROMPTCTL )
-
 
 
 #define SRV_STATUS_MSG(ServerLineBuf) (ChrPtr(ServerLineBuf) + 4), (StrLength(ServerLineBuf) - 4)
@@ -267,7 +207,6 @@ extern char *ssl_cipher_list;
 #define EXPIRE_AGE              3       /* Expire messages after n days */
 
 typedef struct __ExpirePolicy {
-       int loaded; /* has this been loaded from the server? */
         int expire_mode;
         int expire_value;
 } ExpirePolicy;
@@ -321,11 +260,16 @@ typedef struct _disp_cal {
        icalproperty_status Status;
 } disp_cal;                                            
 
-typedef struct _IcalEnumMap {
+typedef struct _IcalKindEnumMap {
        const char *Name;
        long NameLen;
        icalproperty_kind map;
-} IcalEnumMap;
+} IcalKindEnumMap;
+typedef struct _IcalMethodEnumMap {
+       const char *Name;
+       long NameLen;
+        icalproperty_method map;
+} IcalMethodEnumMap;
 
 /*
  * Address book entry (keep it short and sweet, it's just a quickie lookup
@@ -355,7 +299,7 @@ typedef struct _addrbookent {
 #define DATEFMT_BRIEF 1
 #define DATEFMT_RAWDATE 2
 #define DATEFMT_LOCALEDATE 3
-void webcit_fmt_date(char *buf, size_t siz, time_t thetime, int Format);
+long webcit_fmt_date(char *buf, size_t siz, time_t thetime, int Format);
 
 
 typedef enum _RESTDispatchID {
@@ -506,7 +450,7 @@ struct wcsession {
        StrBuf *wc_password;                    /* Password of current user */
        StrBuf *httpauth_pass;                  /* only for GroupDAV sessions */
        int axlevel;                            /* this user's access level */
-       int is_aide;                            /* nonzero == this user is an Aide */
+       int is_aide;                            /* nonzero == this user is an Admin */
        int connected;                          /* nonzero == we are connected to Citadel */
        int logged_in;                          /* nonzero == we are logged in  */
        int need_regi;                          /* This user needs to register. */
@@ -551,6 +495,8 @@ struct wcsession {
 
        char last_chat_user[256];
 
+       StrBuf *IconTheme;                      /* Icontheme setting */
+
 /* Iconbar controls */
        int cache_max_folders;
        int cache_num_floors;
@@ -736,7 +682,6 @@ void output_html(const char *, int, int, StrBuf *, StrBuf *);
 ssize_t write(int fd, const void *buf, size_t count);
 void cal_process_attachment(wc_mime_attachment *Mime);
 
-void address_book_popup(void);
 void begin_ajax_response(void);
 void end_ajax_response(void);
 
@@ -820,3 +765,5 @@ struct bltr {
 struct bltr blogview_learn_thread_references(long msgnum);
 void tmplput_blog_permalink(StrBuf *Target, WCTemplputParams *TP);
 void display_summary_page(void);
+
+HashList *GetValidDomainNames(StrBuf *Target, WCTemplputParams *TP);