]> code.citadel.org Git - citadel.git/blobdiff - citadel/context.h
threads are using signals and the GC code is #ifdef if available.
[citadel.git] / citadel / context.h
index 3754a20be3d28e2f005cb7fc835a5fcd34d8d660..24cfc6861a586b4a5eb7226062e88fba57277d48 100644 (file)
@@ -43,6 +43,7 @@ struct CitContext {
        unsigned cs_flags;      /* miscellaneous flags */
        void (*h_command_function) (void) ;     /* service command function */
        void (*h_async_function) (void) ;       /* do async msgs function */
+       void (*h_greeting_function) (void) ;    /* greeting function for session startup */
        int is_async;           /* Nonzero if client accepts async msgs */
        int async_waiting;      /* Nonzero if there are async msgs waiting */
        int input_waiting;      /* Nonzero if there is client input waiting */
@@ -125,6 +126,7 @@ typedef struct CitContext CitContext;
  */
 enum {
        CON_IDLE,               /* This context is doing nothing */
+       CON_STARTING,           /* This context needs the greeting outputting */
        CON_READY,              /* This context needs attention */
        CON_EXECUTING           /* This context is bound to a thread */
 };
@@ -150,5 +152,10 @@ void dead_session_purge(int force);
 void BumpNewMailCounter(long) __attribute__ ((deprecated));
 
 void terminate_idle_sessions(void);
-
+int CtdlTerminateOtherSession (int session_num);
+/* bits returned by CtdlTerminateOtherSession */
+#define TERM_FOUND     0x01
+#define TERM_ALLOWED   0x02
+#define TERM_KILLED    0x03
+#define TERM_NOTALLOWED -1
 #endif /* CONTEXT_H */