]> code.citadel.org Git - citadel.git/blobdiff - webcit/webcit.h
HUGE PATCH. This moves all of mime_parser.c and all
[citadel.git] / webcit / webcit.h
index 29854963e8690b9403957187768889106381a16c..d918d71b3e7dda49b29192b11d23e712b293d312 100644 (file)
@@ -2,6 +2,9 @@
 
 #include "sysdep.h"
 
+
+#include <sys/select.h>
+
 #include <ctype.h>
 #include <stdlib.h>
 #ifdef HAVE_UNISTD_H
@@ -35,6 +38,8 @@
 #include <signal.h>
 #include <sys/utsname.h>
 
+#include <libcitadel.h>
+
 #ifndef INADDR_NONE
 #define INADDR_NONE 0xffffffff
 #endif
@@ -117,8 +122,8 @@ extern locale_t wc_locales[];
 #define PORT_NUM               2000            /* port number to listen on */
 #define DEVELOPER_ID           0
 #define CLIENT_ID              4
-#define CLIENT_VERSION         722             /* This version of WebCit */
-#define MINIMUM_CIT_VERSION    710             /* min required Citadel ver. */
+#define CLIENT_VERSION         723             /* This version of WebCit */
+#define MINIMUM_CIT_VERSION    723             /* min required Citadel ver. */
 #define DEFAULT_HOST           "localhost"     /* Default Citadel server */
 #define DEFAULT_PORT           "504"
 #define LB                     (1)             /* Internal escape chars */
@@ -315,6 +320,7 @@ struct folder {
        int is_mailbox; /**< is it a mailbox?  */
        int selectable; /**< can we select it ??? */
        int view;       /**< whats its default view? inbox/calendar.... */
+       int num_rooms;  /**< If this is a floor, how many rooms does it have */
 };
 
 /**
@@ -403,9 +409,15 @@ enum {
        current_iconbar_menu,     /**< view the icon menue */
        current_iconbar_roomlist  /**< view the roomtree */
 };
+enum {
+       S_SELECT,
+       S_SHUTDOWN,
+       MAX_SEMAPHORES
+};
 
-
+#ifndef num_parms
 #define num_parms(source)              num_tokens(source, '|') 
+#endif
 
 /* Per-session data */
 #define WC ((struct wcsession *)pthread_getspecific(MyConKey))
@@ -434,6 +446,12 @@ extern time_t if_modified_since;
 extern int follow_xff;
 void do_setup_wizard(void);
 
+
+void InitialiseSemaphores(void);
+void begin_critical_section(int which_one);
+void end_critical_section(int which_one);
+
+
 void stuff_to_cookie(char *cookie, int session,
                        char *user, char *pass, char *room);
 void cookie_to_stuff(char *cookie, int *session,
@@ -490,13 +508,10 @@ void escputs1(char *strbuf, int nbsp, int nolinebreaks);
 void msgesc(char *target, char *strbuf);
 void msgescputs(char *strbuf);
 void msgescputs1(char *strbuf);
-int extract_int(const char *source, int parmnum);
-long extract_long(const char *source, int parmnum);
 void stripout(char *str, char leftboundary, char rightboundary);
 void dump_vars(void);
 void embed_main_menu(void);
 void serv_read(char *buf, int bytes);
-int haschar(const char *, char);
 void readloop(char *oper);
 void read_message(long msgnum, int printable_view, char *section);
 void embed_message(char *msgnum_as_string);
@@ -555,6 +570,8 @@ void display_confirm_delete_node(void);
 void delete_node(void);
 void display_add_node(void);
 void terminate_session(void);
+void shutdown_sessions(void);
+void do_housekeeping(void);
 void edit_me(void);
 void display_siteconfig(void);
 void siteconfig(void);
@@ -566,7 +583,6 @@ void smart_goto(char *);
 void worker_entry(void);
 void session_loop(struct httprequest *);
 size_t wc_strftime(char *s, size_t max, const char *format, const struct tm *tm);
-void fmt_date(char *buf, time_t thetime, int brief);
 void fmt_time(char *buf, time_t thetime);
 void httpdate(char *buf, time_t thetime);
 time_t httpdate_to_timestamp(char *buf);
@@ -575,6 +591,7 @@ void page_popup(void);
 void chat_recv(void);
 void chat_send(void);
 void http_redirect(char *);
+void clear_substs(struct wcsession *wc);
 void clear_local_substs(void);
 void svprintf(char *keyname, int keytype, const char *format,...);
 void svcallback(char *keyname, void (*fcn_ptr)() );
@@ -582,7 +599,6 @@ void do_template(void *templatename);
 int lingering_close(int fd);
 char *memreadline(char *start, char *buf, int maxlen);
 char *memreadlinelen(char *start, char *buf, int maxlen, int *retlen);
-int num_tokens (char *source, char tok);
 long extract_token(char *dest, const char *source, int parmnum, char separator, int maxlen);
 void remove_token(char *source, int parmnum, char separator);
 char *load_mimepart(long msgnum, char *partnum);
@@ -631,8 +647,6 @@ void do_tasks_view(void);
 void free_calendar_buffer(void);
 void calendar_summary_view(void);
 int load_msg_ptrs(char *servcmd, int with_headers);
-size_t CtdlEncodeBase64(char **dest, const char *source, size_t sourcelen, size_t *destlen, int linebreaks);
-int CtdlDecodeBase64(char *dest, const char *source, size_t length);
 void free_attachments(struct wcsession *sess);
 void free_march_list(struct wcsession *wcf);
 void set_room_policy(void);
@@ -723,9 +737,9 @@ void begin_tab(int tabnum, int num_tabs);
 void end_tab(int tabnum, int num_tabs);
 void str_wiki_index(char *s);
 void display_wiki_page(void);
-char *bmstrcasestr(char *text, char *pattern);
 int get_time_format_cached (void);
 int xtoi(char *in, size_t len);
+void webcit_fmt_date(char *buf, time_t thetime, int brief);
 
 #ifdef HAVE_ICONV
 iconv_t ctdl_iconv_open(const char *tocode, const char *fromcode);