int num_rooms; /**< If this is a floor, how many rooms does it have */
};
+
+/* Linked list member for a list of webcit preferences for a user
+ */
+struct wcpref {
+ struct wcpref *next;
+ char *pref_key;
+ char *pref_value;
+};
+
/**
* \brief One of these is kept for each active Citadel session.
* HTTP transactions are bound to on e at a time.
struct wcsubst *vars; /**< HTTP variable substitutions for this page */
char this_page[512]; /**< URL of current page */
char http_host[512]; /**< HTTP Host: header */
- char *preferences; /**< WebCit preferences for this user */
#ifdef WEBCIT_WITH_CALENDAR_SERVICE
/** \brief ical???? */
struct disp_cal {
time_t last_pager_check; /**< last time we polled for instant msgs */
int nonce; /**< session nonce (to prevent session riding) */
int time_format_cache; /**< which timeformat does our user like? */
+ struct wcpref *first_pref; /* linked list of preferences */
};
/** values for WC->current_iconbar */
void end_critical_section(int which_one);
-void stuff_to_cookie(char *cookie, int session,
+void stuff_to_cookie(char *cookie, size_t clen, int session,
char *user, char *pass, char *room);
void cookie_to_stuff(char *cookie, int *session,
char *user, size_t user_len,
void wDumpContent(int);
void serv_printf(const char *format,...);
char *bstr(char *key);
-void urlesc(char *, char *);
void urlescputs(char *);
-void jsesc(char *, char *);
+void jsesc(char *, size_t, char *);
void jsescputs(char *);
void output_headers( int do_httpheaders,
int do_htmlhead,
void escputs(char *strbuf);
void url(char *buf);
void escputs1(char *strbuf, int nbsp, int nolinebreaks);
-void msgesc(char *target, char *strbuf);
+void msgesc(char *target, size_t tlen, char *strbuf);
void msgescputs(char *strbuf);
void msgescputs1(char *strbuf);
void stripout(char *str, char leftboundary, char rightboundary);
void end_ajax_response(void);
void initialize_viewdefs(void);
void initialize_axdefs(void);
+void burn_folder_cache(time_t age);
void list_all_rooms_by_floor(char *viewpref);
void display_room_directory(void);
void download_file(char *);
#ifdef HAVE_ZLIB
#include <zlib.h>
-int ZEXPORT compress_gzip(Bytef * dest, uLongf * destLen,
+int ZEXPORT compress_gzip(Bytef * dest, size_t * destLen,
const Bytef * source, uLong sourceLen, int level);
#endif
void http_datestring(char *buf, size_t n, time_t xtime);
-/** Views (from citadel.h) */
-#define VIEW_BBS 0 /**< Traditional Citadel BBS view */
-#define VIEW_MAILBOX 1 /**< Mailbox summary */
-#define VIEW_ADDRESSBOOK 2 /**< Address book view */
-#define VIEW_CALENDAR 3 /**< Calendar view */
-#define VIEW_TASKS 4 /**< Tasks view */
-#define VIEW_NOTES 5 /**< Notes view */
-#define VIEW_WIKI 6 /**< Wiki view */
-#define VIEW_CALBRIEF 7 /**< Brief Calendar view */
-#define VIEW_JOURNAL 8 /**< Journal view (not yet implemented in webcit) */
-
/* These should be empty, but we have them for testing */
#define DEFAULT_HTTPAUTH_USER ""
#define DEFAULT_HTTPAUTH_PASS ""