From fa55c0d97b53d1f0a1d0755c2fe604ea6b28aa3f Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Fri, 5 Jan 2024 18:47:56 -0500 Subject: [PATCH] This time I'm waiting for the computer. --- citadel/server/context.h | 132 +++++++++++++++++++-------------------- 1 file changed, 65 insertions(+), 67 deletions(-) diff --git a/citadel/server/context.h b/citadel/server/context.h index 8a83c5e8e..d28dff7a7 100644 --- a/citadel/server/context.h +++ b/citadel/server/context.h @@ -34,61 +34,61 @@ typedef struct CitContext CitContext; // 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; @@ -98,39 +98,39 @@ struct CitContext { 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; @@ -146,22 +146,20 @@ void set_async_waiting(struct CitContext *ccptr); 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 -- 2.30.2