// This structure keeps track of all information relating to a running
// session on the server. We keep one of these for each session.
struct CitContext {
- CitContext *prev; /* Link to previous session in list */
- CitContext *next; /* Link to next session in the list */
+ CitContext *prev; // Link to previous session in list
+ CitContext *next; // Link to next session in the list
- int cs_pid; /* session ID */
- double created; /* time of birth */
- time_t lastcmd; /* time of last command executed */
- time_t lastidle; /* For computing idle time */
- CCState state; /* thread state (see CON_ values below) */
- int kill_me; /* Set to nonzero to flag for termination */
+ int cs_pid; // session ID
+ double created; // time of birth
+ time_t lastcmd; // time of last command executed
+ time_t lastidle; // For computing idle time
+ CCState state; // thread state (see CON_ values below)
+ int kill_me; // Set to nonzero to flag for termination
- IOBuffer SendBuf, /* Our write Buffer */
- RecvBuf, /* Our block buffered read buffer */
- SBuf; /* Our block buffered read buffer for clients */
+ IOBuffer SendBuf, // Our write Buffer
+ RecvBuf, // Our block buffered read buffer
+ SBuf; // Our block buffered read buffer for clients
- StrBuf *MigrateBuf; /* Our block buffered read buffer */
- StrBuf *sMigrateBuf; /* Our block buffered read buffer */
+ StrBuf *MigrateBuf; // Our block buffered read buffer
+ StrBuf *sMigrateBuf; // Our block buffered read buffer
int client_socket;
- int is_local_client; /* set to 1 if client is running on the same host */
- /* Redirect this session's output to a memory buffer? */
- StrBuf *redirect_buffer; /* the buffer */
+ int is_local_client; // set to 1 if client is running on the same host
+ // Redirect this session's output to a memory buffer?
+ StrBuf *redirect_buffer; // the buffer
StrBuf *StatusMessage;
#ifdef HAVE_OPENSSL
SSL *ssl;
int redirect_ssl;
#endif
- char curr_user[USERNAME_SIZE]; /* name of current user */
- int logged_in; /* logged in? */
- int internal_pgm; /* authenticated as internal program? */
- int nologin; /* not allowed to log in */
- int curr_view; /* The view type for the current user/room */
-
- time_t previous_login; /* Date/time of previous login */
- char lastcmdname[5]; /* name of last command executed */
- unsigned cs_flags; /* miscellaneous flags */
- 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 */
- int can_receive_im; /* Session is capable of receiving instant messages */
-
- /* Client information */
- char cs_clientinfo[256];/* if its a unix domain socket, some info for logging. */
- uid_t cs_UDSclientUID; /* the uid of the client when talking via UDS */
- char cs_clientname[32]; /* name of client software */
- char cs_host[64]; /* host logged in from */
- char cs_addr[64]; /* address logged in from */
-
- /* The Internet type of thing */
- char cs_principal_id[256]; /* User principal identity for XMPP, ActivityPub, etc. */
- char cs_inet_email[128]; /* Return address of outbound Internet mail */
- char cs_inet_other_emails[1024]; /* User's other valid Internet email addresses */
- char cs_inet_fn[128]; /* Friendly-name of outbound Internet mail */
-
- FILE *download_fp; /* Fields relating to file transfer */
+ char curr_user[USERNAME_SIZE]; // name of current user
+ int logged_in; // logged in?
+ int internal_pgm; // authenticated as internal program?
+ int nologin; // not allowed to log in
+ int curr_view; // The view type for the current user/room
+
+ time_t previous_login; // Date/time of previous login
+ char lastcmdname[5]; // name of last command executed
+ unsigned cs_flags; // miscellaneous flags
+ 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
+ int can_receive_im; // Session is capable of receiving instant messages
+
+ // Client information
+ char cs_clientinfo[256];// if its a unix domain socket, some info for logging.
+ uid_t cs_UDSclientUID; // the uid of the client when talking via UDS
+ char cs_clientname[32]; // name of client software
+ char cs_host[64]; // host logged in from
+ char cs_addr[64]; // address logged in from
+
+ // The Internet type of thing
+ char cs_principal_id[256]; // User principal identity for XMPP, ActivityPub, etc.
+ char cs_inet_email[128]; // Return address of outbound Internet mail
+ char cs_inet_other_emails[1024]; // User's other valid Internet email addresses
+ char cs_inet_fn[128]; // Friendly-name of outbound Internet mail
+
+ FILE *download_fp; // Fields relating to file transfer
size_t download_fp_total;
char download_desired_section[128];
FILE *upload_fp;
char upl_filedir[PATH_MAX];
char upl_mimetype[64];
- struct ctdluser user; /* Database record buffers */
+ struct ctdluser user; // Database record buffers
struct ctdlroom room;
- /* A linked list of all instant messages sent to us. */
+ // A linked list of all instant messages sent to us.
struct ExpressMessage *FirstExpressMessage;
- int disable_exp; /* Set to 1 to disable incoming pages */
- int newmail; /* Other sessions increment this */
+ int disable_exp; // Set to 1 to disable incoming pages
+ int newmail; // Other sessions increment this
- /* Preferred MIME formats */
+ // Preferred MIME formats
char preferred_formats[256];
int msg4_dont_decode;
- /* Dynamically allocated session data */
- void *session_specific_data; /* Used by individual protocol modules */
- struct cit_ical *CIT_ICAL; /* calendaring data */
- struct ma_info *ma; /* multipart/alternative data */
- const char *ServiceName; /* readable purpose of this session */
+ // Dynamically allocated session data
+ void *session_specific_data; // Used by individual protocol modules
+ struct cit_ical *CIT_ICAL; // calendaring data
+ struct ma_info *ma; // multipart/alternative data
+ const char *ServiceName; // readable purpose of this session
long tcp_port;
- char *ldap_dn; /* DN of user when using AUTHMODE_LDAP */
+ char *ldap_dn; // DN of user when using AUTHMODE_LDAP
- 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 */
+ 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
- long *cached_msglist; /* results of the previous CtdlForEachMessage() */
+ long *cached_msglist; // results of the previous CtdlForEachMessage()
int cached_num_msgs;
- char vcard_updated_by_ldap; /* !0 iff ldap changed the vcard, treat as aide update */
+ char vcard_updated_by_ldap; // !0 iff ldap changed the vcard, treat as aide update
};
#define CC MyContext()
-extern pthread_key_t MyConKey; /* TSD key for MyContext() */
+extern pthread_key_t MyConKey; // TSD key for MyContext()
extern int num_sessions;
extern CitContext masterCC;
extern CitContext *ContextList;
CitContext *CloneContext(CitContext *CloneMe);
-/* forcibly close and flush fd's on shutdown */
+// forcibly close and flush fd's on shutdown
void terminate_all_sessions(void);
void terminate_idle_sessions(void);
int CtdlTerminateOtherSession (int session_num);
-/* bits returned by CtdlTerminateOtherSession */
+// bits returned by CtdlTerminateOtherSession
#define TERM_FOUND 0x01
#define TERM_ALLOWED 0x02
#define TERM_KILLED 0x03
#define TERM_NOTALLOWED -1
-/*
- * Bind a thread to a context. (It's inline merely to speed things up.)
- */
+// Bind a thread to a context. (It's inline merely to speed things up.)
static INLINE void become_session(CitContext *which_con) {
pthread_setspecific(MyConKey, (void *)which_con );
}
-#endif /* CONTEXT_H */
+#endif // CONTEXT_H