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 */
*/
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 */
};
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 */