* Simplified tcp_connectsock()
[citadel.git] / webcit / webcit.h
index b65683c9c2ab0dae5d6c9b59db745e1a392715d0..2e53e309802580f1084a878059c763b278cd0f5b 100644 (file)
@@ -134,7 +134,6 @@ extern char *ssl_cipher_list;
 #define DEFAULT_PORT           "504"
 #define TARGET                 "webcit01"      /* Target for inline URL's */
 #define HOUSEKEEPING           15              /* Housekeeping frequency */
-#define MIN_WORKER_THREADS     5
 #define MAX_WORKER_THREADS     250
 #define LISTEN_QUEUE_LENGTH    100             /* listen() backlog queue */
 
@@ -346,10 +345,19 @@ typedef struct _addrbookent {
 #define ISSTATIC (1<<7)
 #define FORCE_SESSIONCLOSE (1<<8)
 #define PARSE_REST_URL (1<<9)
+#define PROHIBIT_STARTPAGE (1<<10)
 
+typedef enum _RESTDispatchID {
+       ExistsID,
+       PutID,
+       DeleteID
+} RESTDispatchID;
+
+typedef int (*WebcitRESTDispatchID)(RESTDispatchID WhichAction, int IgnoreFloor);
 typedef void (*WebcitHandlerFunc)(void);
 typedef struct  _WebcitHandler{
        WebcitHandlerFunc F;
+       WebcitRESTDispatchID RID;
        long Flags;
        StrBuf *Name;
        StrBuf *DisplayName;
@@ -465,7 +473,7 @@ struct wcsession {
        StrBuf *ReadBuf;                        /* here we keep our stuff while reading linebuffered from the server. */
        StrBuf *MigrateReadLineBuf;             /* here we buffer legacy server read stuff */
        const char *ReadPos;                    /* whats our read position in ReadBuf? */
-       int chat_sock;                          /* Client socket to Citadel server - for chat */
+       int last_chat_seq;                      /* When in chat - last message seq# we saw */
        time_t lastreq;                         /* Timestamp of most recent HTTP */
        time_t last_pager_check;                /* last time we polled for instant msgs */
        ServInfo *serv_info;                    /* Information about the citserver we're connected to */
@@ -476,6 +484,7 @@ struct wcsession {
        ParsedHttpHdrs *Hdr;
        StrBuf *WBuf;                           /* Our output buffer */
        StrBuf *HBuf;                           /* Our HeaderBuffer */
+       StrBuf *WFBuf;                          /* Wildfire error logging buffer */
 
        HashList *vars;                         /* HTTP variable substitutions for this page */
        StrBuf *trailing_javascript;            /* extra javascript to be appended to page */
@@ -577,8 +586,8 @@ void RegisterHeaderHandler(const char *Name, long Len, Header_Evaluator F);
 
 
 enum {
-       S_SELECT,
        S_SHUTDOWN,
+       S_SPAWNER,
        MAX_SEMAPHORES
 };
 
@@ -610,7 +619,8 @@ extern int is_https;
 extern int setup_wizard;
 extern char wizard_filename[];
 extern int follow_xff;
-extern int num_threads;
+extern int num_threads_existing;
+extern int num_threads_executing;
 
 void InitialiseSemaphores(void);
 void begin_critical_section(int which_one);
@@ -642,7 +652,7 @@ void CreateMimeStr(void);
 int GetConnected(void);
 void DeleteServInfo(ServInfo **FreeMe);
 int uds_connectsock(char *);
-int tcp_connectsock(char *, char *);
+int tcp_connectsock(char *, int);
 int serv_getln(char *strbuf, int bufsize);
 int StrBuf_ServGetln(StrBuf *buf);
 int GetServerStatus(StrBuf *Line, long* FullState);