24 #ifndef _CONNECTION_SR_H_ 25 #define _CONNECTION_SR_H_ 41 #define IP_BYTE_COUNT 5 55 #define CSS_RWLOCK_ACTIVE_CONN_ANCHOR (&css_Rwlock_active_conn_anchor) 56 #define CSS_RWLOCK_ACTIVE_CONN_ANCHOR_NAME "CSS_RWLOCK_ACTIVE_CONN_ANCHOR" 58 #define START_EXCLUSIVE_ACCESS_ACTIVE_CONN_ANCHOR(r) \ 61 (r) = rwlock_write_lock (CSS_RWLOCK_ACTIVE_CONN_ANCHOR); \ 62 assert ((r) == NO_ERROR); \ 66 #define END_EXCLUSIVE_ACCESS_ACTIVE_CONN_ANCHOR(r) \ 69 (r) = rwlock_write_unlock (CSS_RWLOCK_ACTIVE_CONN_ANCHOR); \ 70 assert ((r) == NO_ERROR); \ 74 #define START_SHARED_ACCESS_ACTIVE_CONN_ANCHOR(r) \ 77 (r) = rwlock_read_lock (CSS_RWLOCK_ACTIVE_CONN_ANCHOR); \ 78 assert ((r) == NO_ERROR); \ 82 #define END_SHARED_ACCESS_ACTIVE_CONN_ANCHOR(r) \ 85 (r) = rwlock_read_unlock (CSS_RWLOCK_ACTIVE_CONN_ANCHOR); \ 86 assert ((r) == NO_ERROR); \ 92 #define CSS_RWLOCK_FREE_CONN_ANCHOR (&css_Rwlock_free_conn_anchor) 93 #define CSS_RWLOCK_FREE_CONN_ANCHOR_NAME "CSS_RWLOCK_FREE_CONN_ANCHOR" 95 #define START_EXCLUSIVE_ACCESS_FREE_CONN_ANCHOR(r) \ 98 (r) = rwlock_write_lock (CSS_RWLOCK_FREE_CONN_ANCHOR); \ 99 assert ((r) == NO_ERROR); \ 103 #define END_EXCLUSIVE_ACCESS_FREE_CONN_ANCHOR(r) \ 106 (r) = rwlock_write_unlock (CSS_RWLOCK_FREE_CONN_ANCHOR); \ 107 assert ((r) == NO_ERROR); \ 111 #define START_SHARED_ACCESS_FREE_CONN_ANCHOR(r) \ 114 (r) = rwlock_read_lock (CSS_RWLOCK_FREE_CONN_ANCHOR); \ 115 assert ((r) == NO_ERROR); \ 119 #define END_SHARED_ACCESS_FREE_CONN_ANCHOR(r) \ 122 (r) = rwlock_read_unlock (CSS_RWLOCK_FREE_CONN_ANCHOR); \ 123 assert ((r) == NO_ERROR); \ 136 #define CSS_LOG(msg_arg, ...) \ 137 if (prm_get_bool_value (PRM_ID_CONNECTION_LOGGING)) _er_log_debug (ARG_FILE_LINE, msg_arg "\n", __VA_ARGS__) 138 #define CSS_LOG_STACK(msg_arg, ...) \ 139 if (prm_get_bool_value (PRM_ID_CONNECTION_LOGGING)) er_print_callstack (ARG_FILE_LINE, msg_arg "\n", __VA_ARGS__) int css_free_accessible_ip_info(void)
SYNC_RWLOCK css_Rwlock_free_conn_anchor
CSS_THREAD_FN css_Connection_error_handler
unsigned short css_get_request_id(CSS_CONN_ENTRY *conn)
void css_shutdown_conn(CSS_CONN_ENTRY *conn)
CSS_THREAD_FN css_Request_handler
void css_remove_all_unexpected_packets(CSS_CONN_ENTRY *conn)
CSS_CONN_ENTRY * css_find_conn_by_tran_index(int tran_index)
int(* CSS_THREAD_FN)(THREAD_ENTRY *thrd, CSS_THREAD_ARG)
enum db_client_type BOOT_CLIENT_TYPE
void css_print_conn_entry_info(CSS_CONN_ENTRY *p)
int css_increment_num_conn(BOOT_CLIENT_TYPE client_type)
void css_print_conn_list(void)
CSS_CONN_ENTRY * css_connect_to_master_server(int master_port_id, const char *server_name, int name_length)
void css_register_handler_routines(css_error_code(*connect_handler)(CSS_CONN_ENTRY *conn), CSS_THREAD_FN request_handler, CSS_THREAD_FN connection_error_handler)
int css_receive_data(CSS_CONN_ENTRY *conn, unsigned short req_id, char **buffer, int *buffer_size, int timeout)
int css_read_ip_info(IP_INFO **out_ip_info, char *filename)
void css_insert_into_active_conn_list(CSS_CONN_ENTRY *conn)
unsigned int css_return_eid_from_conn(CSS_CONN_ENTRY *conn, unsigned short rid)
int css_queue_user_data_buffer(CSS_CONN_ENTRY *conn, unsigned short request_id, int size, char *buffer)
CSS_CONN_ENTRY * css_make_conn(SOCKET fd)
int css_initialize_conn(CSS_CONN_ENTRY *conn, SOCKET fd)
void css_decrement_num_conn(BOOT_CLIENT_TYPE client_type)
int css_set_accessible_ip_info(void)
SYNC_RWLOCK css_Rwlock_active_conn_anchor
void css_final_conn_list(void)
void css_free_conn(CSS_CONN_ENTRY *conn)
int css_init_conn_list(void)
int css_get_session_ids_for_active_connections(SESSION_ID **ids, int *count)
void css_get_user_access_status(int num_user, LAST_ACCESS_STATUS **access_status_array)
int css_receive_request(CSS_CONN_ENTRY *conn, unsigned short *rid, int *request, int *buffer_size)
void css_print_free_conn_list(void)
void css_dealloc_conn_rmutex(CSS_CONN_ENTRY *conn)
CSS_CONN_ENTRY * css_Conn_array
int css_read_header(CSS_CONN_ENTRY *conn, const NET_HEADER *local_header)
void css_set_user_access_status(const char *db_user, const char *host, const char *program_name)
int css_get_num_free_conn(void)
css_error_code(* css_Connect_handler)(CSS_CONN_ENTRY *)
int css_return_queued_error(CSS_CONN_ENTRY *conn, unsigned short request_id, char **buffer, int *buffer_size, int *rc)
CSS_CONN_ENTRY * css_find_conn_from_fd(SOCKET fd)
int count(int &result, const cub_regex_object ®, const std::string &src, const int position, const INTL_CODESET codeset)
unsigned char * address_list
void css_shutdown_conn_by_tran_index(int tran_index)
int css_check_ip(IP_INFO *ip_info, unsigned char *address)
int css_return_queued_data(CSS_CONN_ENTRY *conn, unsigned short rid, char **buffer, int *bufsize, int *rc)
int css_free_ip_info(IP_INFO *ip_info)
CSS_CONN_ENTRY * css_Active_conn_anchor
void css_free_user_access_status(void)
const char * program_name
int css_return_queued_request(CSS_CONN_ENTRY *conn, unsigned short *rid, int *request, int *buffer_size)
int css_send_abort_request(CSS_CONN_ENTRY *conn, unsigned short request_id)
int css_read_and_queue(CSS_CONN_ENTRY *conn, int *type)