/*
- * Copyright (c) 1987-2013 by the citadel.org team
+ * Copyright (c) 1987-2015 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 3.
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/socket.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
#include <sys/stat.h>
#ifdef HAVE_LIMITS_H
#include <limits.h>
#define _(string) (string)
#endif
-#define IsEmptyStr(a) ((a)[0] == '\0')
-
#define DO_DBG_QR 0
#define DBG_QR(x) if(DO_DBG_QR) _DBG_QR(x)
#define DBG_QR2(x) if(DO_DBG_QR) _DBG_QR2(x)
#define PORT_NUM 2000 /* port number to listen on */
#define DEVELOPER_ID 0
#define CLIENT_ID 4
-#define CLIENT_VERSION 821 /* This version of WebCit */
-#define MINIMUM_CIT_VERSION 821 /* Minimum required version of Citadel server */
-#define LIBCITADEL_MIN 821 /* Minimum required version of libcitadel */
+#define CLIENT_VERSION 901 /* This version of WebCit */
+#define MINIMUM_CIT_VERSION 901 /* Minimum required version of Citadel server */
+#define LIBCITADEL_MIN 901 /* 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 */
typedef struct urlcontent urlcontent;
struct urlcontent {
char url_key[32]; /* key */
+ long klen;
StrBuf *url_data; /* value */
+ HashList *sub;
};
/*
icalproperty_method map;
} IcalMethodEnumMap;
-/*
- * Address book entry (keep it short and sweet, it's just a quickie lookup
- * which we can use to get to the real meat and bones later)
- */
-typedef struct _addrbookent {
- char ab_name[64]; /* name string */
- long ab_msgnum; /* message number of address book entry */
-} addrbookent;
-
#define AJAX (1<<0)
#define ANONYMOUS (1<<1)
int ctdl_pid; /* Session ID on the Citadel server */
int nonce; /* session nonce (to prevent session riding) */
int inuse; /* set to nonzero if bound to a running thread */
+ int isFailure; /* Http 2xx or 5xx? */
/* Session local Members */
int serv_sock; /* Client socket to Citadel server */
void url(char *buf, size_t bufsize);
void UrlizeText(StrBuf* Target, StrBuf *Source, StrBuf *WrkBuf);
-
-void display_vcard(StrBuf *Target, wc_mime_attachment *Mime, char alpha, int full, char **storename, long msgnum);
-
void display_success(const char *successmessage);
void shutdown_sessions(void);
long locate_user_vcard_in_this_room(message_summary **VCMsg,
wc_mime_attachment **VCAtt);
void http_transmit_thing(const char *content_type, int is_static);
-void http_transmit_headers(const char *content_type, int is_static, long is_chunked);
+void http_transmit_headers(const char *content_type, int is_static, long is_chunked, int is_gzip);
long unescape_input(char *buf);
void check_thread_pool_size(void);
void StrEndTab(StrBuf *Target, int tabnum, int num_tabs);
void StrBeginTab(StrBuf *Target, int tabnum, int num_tabs, StrBuf **Names);
void StrTabbedDialog(StrBuf *Target, int num_tabs, StrBuf *tabnames[]);
-void tabbed_dialog(int num_tabs, char *tabnames[]);
+void tabbed_dialog(int num_tabs, const char *tabnames[]);
void begin_tab(int tabnum, int num_tabs);
void end_tab(int tabnum, int num_tabs);
long *msgs; /* Array of msgnums for messages we are displaying */
int num_msgs; /* Number of msgnums stored in 'msgs' */
int alloc_msgs; /* Currently allocated size of array */
+ int unread_oments;
};