char temp[32]; /* temp file name */
int nologin; /* not allowed to log in */
- char net_node[32];
+ char net_node[32]; /* Is the client another Citadel server? */
int client_socket;
int cs_pid; /* session ID */
time_t cs_lastupdt; /* time of last update */
time_t lastidle; /* For computing idle time */
char lastcmdname[5]; /* name of last command executed */
unsigned cs_flags; /* miscellaneous flags */
+ void (*h_command_function) (void) ; /* service command function */
/* feeping creaturisms... */
int cs_clientdev; /* client developer ID */
char fake_hostname[25]; /* Name of the fake hostname <bc> */
char fake_roomname[ROOMNAMELEN]; /* Name of the fake room <bc> */
- int FloorBeingSearched; /* This is used by cmd_lrms() etc. */
- struct CtdlSessData *FirstSessData;
+ struct CtdlSessData *FirstSessData; /* Allocated session data */
};
typedef struct CitContext t_context;
S_NETDB,
S_SUPPMSGMAIN,
S_I_WANNA_SELECT,
+ S_CONFIG,
MAX_SEMAPHORES
};
MT_DOWNLOAD /* Download a component */
};
+/*
+ * Message format types in the database
+ */
+#define FMT_CITADEL 0 /* Citadel vari-format (proprietary) */
+#define FMT_FIXED 1 /* Fixed format (proprietary) */
+#define FMT_RFC822 4 /* Standard (headers are in M field) */
+
/*
* Citadel DataBases (define one for each cdb we need to open)
+/*
+ * ServiceFunctionHook extensions are used for hooks which implement various
+ * non-Citadel services (on TCP protocols) directly in the Citadel server.
+ */
+struct ServiceFunctionHook {
+ struct ServiceFunctionHook *next;
+ int tcp_port;
+ void (*h_greeting_function) (void) ;
+ void (*h_command_function) (void) ;
+ int msock;
+};
+extern struct ServiceFunctionHook *ServiceHookTable;
+
/* Defines the relationship of a user to a particular room */