CUBRID Engine  latest
connection_sr.c File Reference
#include "config.h"
#include <filesystem>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <assert.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <sys/uio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include "porting.h"
#include "error_manager.h"
#include "connection_globals.h"
#include "filesys.hpp"
#include "filesys_temp.hpp"
#include "memory_alloc.h"
#include "environment_variable.h"
#include "system_parameter.h"
#include "critical_section.h"
#include "log_manager.h"
#include "object_representation.h"
#include "connection_error.h"
#include "log_impl.h"
#include "session.h"
#include "tcp.h"
#include "connection_sr.h"
#include "server_support.h"
#include "thread_manager.hpp"

Go to the source code of this file.

Classes

struct  css_wait_queue_entry
 
struct  queue_search_arg
 
struct  wait_queue_search_arg
 

Macros

#define TRACE(string, arg)
 
#define NUM_NORMAL_CLIENTS   (prm_get_integer_value(PRM_ID_CSS_MAX_CLIENTS))
 
#define RMUTEX_NAME_CONN_ENTRY   "CONN_ENTRY"
 
#define CSS_CONN_IDX(conn_arg)   ((conn_arg) - css_Conn_array)
 
#define CSS_FREE_CONN_MSG   "Free count = %d, head = %d"
 
#define CSS_FREE_CONN_ARGS   css_Num_free_conn, CSS_CONN_IDX (css_Free_conn_anchor)
 
#define CSS_ACTIVE_CONN_MSG   "Active count = %d, head = %d"
 
#define CSS_ACTIVE_CONN_ARGS   css_Num_active_conn, CSS_CONN_IDX (css_Active_conn_anchor)
 

Typedefs

typedef struct css_wait_queue_entry CSS_WAIT_QUEUE_ENTRY
 
typedef struct queue_search_arg CSS_QUEUE_SEARCH_ARG
 
typedef struct wait_queue_search_arg CSS_WAIT_QUEUE_SEARCH_ARG
 

Functions

static int css_get_next_client_id (void)
 
static CSS_CONN_ENTRYcss_common_connect (CSS_CONN_ENTRY *conn, unsigned short *rid, const char *host_name, int connect_type, const char *server_name, int server_name_length, int port)
 
static int css_abort_request (CSS_CONN_ENTRY *conn, unsigned short rid)
 
static void css_dealloc_conn (CSS_CONN_ENTRY *conn)
 
static unsigned int css_make_eid (unsigned short entry_id, unsigned short rid)
 
static CSS_QUEUE_ENTRYcss_claim_queue_entry (CSS_CONN_ENTRY *conn)
 
static void css_retire_queue_entry (CSS_CONN_ENTRY *conn, CSS_QUEUE_ENTRY *entry)
 
static void css_free_queue_entry_list (CSS_CONN_ENTRY *conn)
 
static CSS_WAIT_QUEUE_ENTRYcss_claim_wait_queue_entry (CSS_CONN_ENTRY *conn)
 
static void css_retire_wait_queue_entry (CSS_CONN_ENTRY *conn, CSS_WAIT_QUEUE_ENTRY *entry)
 
static void css_free_wait_queue_list (CSS_CONN_ENTRY *conn)
 
static NET_HEADERcss_claim_net_header_entry (CSS_CONN_ENTRY *conn)
 
static void css_retire_net_header_entry (CSS_CONN_ENTRY *conn, NET_HEADER *entry)
 
static void css_free_net_header_list (CSS_CONN_ENTRY *conn)
 
static CSS_QUEUE_ENTRYcss_make_queue_entry (CSS_CONN_ENTRY *conn, unsigned int key, char *buffer, int size, int rc, int transid, int invalidate_snapshot, int db_error)
 
static void css_free_queue_entry (CSS_CONN_ENTRY *conn, CSS_QUEUE_ENTRY *entry)
 
static css_error_code css_add_queue_entry (CSS_CONN_ENTRY *conn, CSS_LIST *list, unsigned short request_id, char *buffer, int buffer_size, int rc, int transid, int invalidate_snapshot, int db_error)
 
static CSS_QUEUE_ENTRYcss_find_queue_entry (CSS_LIST *list, unsigned int key)
 
static CSS_QUEUE_ENTRYcss_find_and_remove_queue_entry (CSS_LIST *list, unsigned int key)
 
static CSS_WAIT_QUEUE_ENTRYcss_make_wait_queue_entry (CSS_CONN_ENTRY *conn, unsigned int key, char **buffer, int *size, int *rc)
 
static void css_free_wait_queue_entry (CSS_CONN_ENTRY *conn, CSS_WAIT_QUEUE_ENTRY *entry)
 
static CSS_WAIT_QUEUE_ENTRYcss_add_wait_queue_entry (CSS_CONN_ENTRY *conn, CSS_LIST *list, unsigned short request_id, char **buffer, int *buffer_size, int *rc)
 
static CSS_WAIT_QUEUE_ENTRYcss_find_and_remove_wait_queue_entry (CSS_LIST *list, unsigned int key)
 
static void css_process_close_packet (CSS_CONN_ENTRY *conn)
 
static void css_process_abort_packet (CSS_CONN_ENTRY *conn, unsigned short request_id)
 
static bool css_is_request_aborted (CSS_CONN_ENTRY *conn, unsigned short request_id)
 
static void clear_wait_queue_entry_and_free_buffer (THREAD_ENTRY *thrdp, CSS_CONN_ENTRY *conn, unsigned short rid, char **bufferp)
 
static int css_return_queued_data_timeout (CSS_CONN_ENTRY *conn, unsigned short rid, char **buffer, int *bufsize, int *rc, int waitsec)
 
static void css_queue_data_packet (CSS_CONN_ENTRY *conn, unsigned short request_id, const NET_HEADER *header, THREAD_ENTRY **wait_thrd)
 
static void css_queue_error_packet (CSS_CONN_ENTRY *conn, unsigned short request_id, const NET_HEADER *header)
 
static css_error_code css_queue_command_packet (CSS_CONN_ENTRY *conn, unsigned short request_id, const NET_HEADER *header, int size)
 
static bool css_is_valid_request_id (CSS_CONN_ENTRY *conn, unsigned short request_id)
 
static void css_remove_unexpected_packets (CSS_CONN_ENTRY *conn, unsigned short request_id)
 
static css_error_code css_queue_packet (CSS_CONN_ENTRY *conn, int type, unsigned short request_id, const NET_HEADER *header, int size)
 
static int css_remove_and_free_queue_entry (void *data, void *arg)
 
static int css_remove_and_free_wait_queue_entry (void *data, void *arg)
 
static int css_increment_num_conn_internal (CSS_CONN_RULE_INFO *conn_rule_info)
 
static void css_decrement_num_conn_internal (CSS_CONN_RULE_INFO *conn_rule_info)
 
int css_initialize_conn (CSS_CONN_ENTRY *conn, SOCKET fd)
 
void css_shutdown_conn (CSS_CONN_ENTRY *conn)
 
int css_init_conn_list (void)
 
void css_final_conn_list (void)
 
CSS_CONN_ENTRYcss_make_conn (SOCKET fd)
 
void css_insert_into_active_conn_list (CSS_CONN_ENTRY *conn)
 
void css_dealloc_conn_rmutex (CSS_CONN_ENTRY *conn)
 
int css_get_num_free_conn (void)
 
int css_increment_num_conn (BOOT_CLIENT_TYPE client_type)
 
void css_decrement_num_conn (BOOT_CLIENT_TYPE client_type)
 
void css_free_conn (CSS_CONN_ENTRY *conn)
 
void css_print_conn_entry_info (CSS_CONN_ENTRY *conn)
 
void css_print_conn_list (void)
 
void css_print_free_conn_list (void)
 
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)
 
CSS_CONN_ENTRYcss_connect_to_master_server (int master_port_id, const char *server_name, int name_length)
 
CSS_CONN_ENTRYcss_find_conn_by_tran_index (int tran_index)
 
CSS_CONN_ENTRYcss_find_conn_from_fd (SOCKET fd)
 
int css_get_session_ids_for_active_connections (SESSION_ID **session_ids, int *count)
 
void css_shutdown_conn_by_tran_index (int tran_index)
 
unsigned short css_get_request_id (CSS_CONN_ENTRY *conn)
 
int css_send_abort_request (CSS_CONN_ENTRY *conn, unsigned short request_id)
 
int css_read_header (CSS_CONN_ENTRY *conn, const NET_HEADER *local_header)
 
int css_receive_request (CSS_CONN_ENTRY *conn, unsigned short *rid, int *request, int *buffer_size)
 
int css_read_and_queue (CSS_CONN_ENTRY *conn, int *type)
 
int css_receive_data (CSS_CONN_ENTRY *conn, unsigned short req_id, char **buffer, int *buffer_size, int timeout)
 
unsigned int css_return_eid_from_conn (CSS_CONN_ENTRY *conn, unsigned short rid)
 
static int css_find_queue_entry_by_key (void *data, void *user)
 
static int find_wait_queue_entry_by_key (void *data, void *user)
 
int css_return_queued_request (CSS_CONN_ENTRY *conn, unsigned short *rid, int *request, int *buffer_size)
 
int css_return_queued_data (CSS_CONN_ENTRY *conn, unsigned short rid, char **buffer, int *bufsize, int *rc)
 
int css_return_queued_error (CSS_CONN_ENTRY *conn, unsigned short request_id, char **buffer, int *buffer_size, int *rc)
 
int css_queue_user_data_buffer (CSS_CONN_ENTRY *conn, unsigned short request_id, int size, char *buffer)
 
void css_remove_all_unexpected_packets (CSS_CONN_ENTRY *conn)
 
void css_set_user_access_status (const char *db_user, const char *host, const char *program_name)
 
void css_get_user_access_status (int num_user, LAST_ACCESS_STATUS **access_status_array)
 
void css_free_user_access_status (void)
 

Variables

static const int CSS_MAX_CLIENT_ID = INT_MAX - 1
 
static int css_Client_id = 0
 
static pthread_mutex_t css_Client_id_lock = PTHREAD_MUTEX_INITIALIZER
 
static pthread_mutex_t css_Conn_rule_lock = PTHREAD_MUTEX_INITIALIZER
 
static CSS_CONN_ENTRYcss_Free_conn_anchor = NULL
 
static int css_Num_free_conn = 0
 
static int css_Num_max_conn = 101
 
CSS_CONN_ENTRYcss_Conn_array = NULL
 
CSS_CONN_ENTRYcss_Active_conn_anchor = NULL
 
static int css_Num_active_conn = 0
 
SYNC_RWLOCK css_Rwlock_active_conn_anchor
 
SYNC_RWLOCK css_Rwlock_free_conn_anchor
 
static LAST_ACCESS_STATUScss_Access_status_anchor = NULL
 
int css_Num_access_user = 0
 
css_error_code(* css_Connect_handler )(CSS_CONN_ENTRY *) = NULL
 
CSS_THREAD_FN css_Request_handler = NULL
 
CSS_THREAD_FN css_Connection_error_handler = NULL
 

Macro Definition Documentation

#define CSS_ACTIVE_CONN_ARGS   css_Num_active_conn, CSS_CONN_IDX (css_Active_conn_anchor)

Definition at line 158 of file connection_sr.c.

Referenced by css_free_conn(), and css_insert_into_active_conn_list().

#define CSS_ACTIVE_CONN_MSG   "Active count = %d, head = %d"

Definition at line 157 of file connection_sr.c.

Referenced by css_free_conn(), and css_insert_into_active_conn_list().

#define CSS_CONN_IDX (   conn_arg)    ((conn_arg) - css_Conn_array)
#define CSS_FREE_CONN_ARGS   css_Num_free_conn, CSS_CONN_IDX (css_Free_conn_anchor)

Definition at line 155 of file connection_sr.c.

Referenced by css_dealloc_conn(), and css_make_conn().

#define CSS_FREE_CONN_MSG   "Free count = %d, head = %d"

Definition at line 154 of file connection_sr.c.

Referenced by css_dealloc_conn(), and css_make_conn().

#define NUM_NORMAL_CLIENTS   (prm_get_integer_value(PRM_ID_CSS_MAX_CLIENTS))

Definition at line 120 of file connection_sr.c.

#define RMUTEX_NAME_CONN_ENTRY   "CONN_ENTRY"

Definition at line 122 of file connection_sr.c.

Referenced by css_init_conn_list().

#define TRACE (   string,
  arg 
)

Definition at line 92 of file connection_sr.c.

Referenced by css_connect_to_master_server().

Typedef Documentation

Function Documentation

static void clear_wait_queue_entry_and_free_buffer ( THREAD_ENTRY thrdp,
CSS_CONN_ENTRY conn,
unsigned short  rid,
char **  bufferp 
)
static
static css_error_code css_add_queue_entry ( CSS_CONN_ENTRY conn,
CSS_LIST list,
unsigned short  request_id,
char *  buffer,
int  buffer_size,
int  rc,
int  transid,
int  invalidate_snapshot,
int  db_error 
)
static
static CSS_WAIT_QUEUE_ENTRY * css_add_wait_queue_entry ( CSS_CONN_ENTRY conn,
CSS_LIST list,
unsigned short  request_id,
char **  buffer,
int *  buffer_size,
int *  rc 
)
static

Definition at line 2074 of file connection_sr.c.

References css_add_list(), css_make_wait_queue_entry(), css_retire_wait_queue_entry(), NO_ERROR, NULL, and p.

Referenced by css_return_queued_data_timeout().

Here is the caller graph for this function:

static NET_HEADER * css_claim_net_header_entry ( CSS_CONN_ENTRY conn)
static

Definition at line 1768 of file connection_sr.c.

References assert, if(), NULL, and p.

Referenced by css_queue_command_packet().

Here is the caller graph for this function:

static CSS_QUEUE_ENTRY * css_claim_queue_entry ( CSS_CONN_ENTRY conn)
static

Definition at line 1624 of file connection_sr.c.

References assert, css_queue_entry::next, NULL, and p.

Referenced by css_make_queue_entry().

Here is the caller graph for this function:

static CSS_WAIT_QUEUE_ENTRY * css_claim_wait_queue_entry ( CSS_CONN_ENTRY conn)
static

Definition at line 1695 of file connection_sr.c.

References assert, css_wait_queue_entry::next, NULL, and p.

Referenced by css_make_wait_queue_entry().

Here is the caller graph for this function:

static CSS_CONN_ENTRY * css_common_connect ( CSS_CONN_ENTRY conn,
unsigned short *  rid,
const char *  host_name,
int  connect_type,
const char *  server_name,
int  server_name_length,
int  port 
)
static

Definition at line 1046 of file connection_sr.c.

References css_send_magic(), css_send_request(), css_tcp_client_open(), css_conn_entry::fd, IS_INVALID_SOCKET, NO_ERRORS, and NULL.

Referenced by css_connect_to_master_server().

Here is the caller graph for this function:

void css_dealloc_conn_rmutex ( CSS_CONN_ENTRY conn)

Definition at line 640 of file connection_sr.c.

References rmutex_finalize.

Referenced by css_refuse_connection_request().

Here is the caller graph for this function:

void css_decrement_num_conn ( BOOT_CLIENT_TYPE  client_type)

Definition at line 843 of file connection_sr.c.

References css_Conn_rule_lock, css_Conn_rules, css_Conn_rules_size, css_decrement_num_conn_internal(), DB_CLIENT_TYPE_UNKNOWN, i, pthread_mutex_lock, and pthread_mutex_unlock.

Referenced by css_free_conn().

Here is the caller graph for this function:

static void css_decrement_num_conn_internal ( CSS_CONN_RULE_INFO conn_rule_info)
static
static CSS_WAIT_QUEUE_ENTRY * css_find_and_remove_wait_queue_entry ( CSS_LIST list,
unsigned int  key 
)
static
CSS_CONN_ENTRY* css_find_conn_by_tran_index ( int  tran_index)
static CSS_QUEUE_ENTRY * css_find_queue_entry ( CSS_LIST list,
unsigned int  key 
)
static
static int css_find_queue_entry_by_key ( void *  data,
void *  user 
)
static
static void css_free_net_header_list ( CSS_CONN_ENTRY conn)
static

Definition at line 1812 of file connection_sr.c.

References assert, NULL, and p.

Referenced by css_shutdown_conn().

Here is the caller graph for this function:

static void css_free_queue_entry_list ( CSS_CONN_ENTRY conn)
static

Definition at line 1670 of file connection_sr.c.

References assert, css_queue_entry::next, NULL, and p.

Referenced by css_shutdown_conn().

Here is the caller graph for this function:

void css_free_user_access_status ( void  )

Definition at line 3082 of file connection_sr.c.

References CSECT_ACCESS_STATUS, csect_enter, csect_exit, css_Access_status_anchor, css_Num_access_user, free_and_init, INF_WAIT, last_access_status::next, and NULL.

Referenced by net_server_start().

Here is the caller graph for this function:

static void css_free_wait_queue_list ( CSS_CONN_ENTRY conn)
static

Definition at line 1741 of file connection_sr.c.

References assert, css_wait_queue_entry::next, NULL, and p.

Referenced by css_shutdown_conn().

Here is the caller graph for this function:

static int css_get_next_client_id ( void  )
static
int css_get_num_free_conn ( void  )

Definition at line 674 of file connection_sr.c.

References css_Num_free_conn.

int css_get_session_ids_for_active_connections ( SESSION_ID **  session_ids,
int *  count 
)
void css_get_user_access_status ( int  num_user,
LAST_ACCESS_STATUS **  access_status_array 
)

Definition at line 3060 of file connection_sr.c.

References CSECT_ACCESS_STATUS, csect_enter_as_reader, csect_exit, i, INF_WAIT, last_access_status::next, and NULL.

Referenced by css_user_access_status_start_scan().

Here is the caller graph for this function:

int css_increment_num_conn ( BOOT_CLIENT_TYPE  client_type)

Definition at line 817 of file connection_sr.c.

References css_Conn_rule_lock, css_Conn_rules, css_Conn_rules_size, css_increment_num_conn_internal(), error(), i, NO_ERROR, pthread_mutex_lock, and pthread_mutex_unlock.

Referenced by server_ping_with_handshake().

Here is the caller graph for this function:

static int css_increment_num_conn_internal ( CSS_CONN_RULE_INFO conn_rule_info)
static
static bool css_is_request_aborted ( CSS_CONN_ENTRY conn,
unsigned short  request_id 
)
static

Definition at line 2534 of file connection_sr.c.

References css_conn_entry::abort_queue, css_find_queue_entry(), NULL, and p.

Referenced by css_queue_command_packet(), css_queue_data_packet(), css_queue_error_packet(), and css_queue_user_data_buffer().

Here is the caller graph for this function:

static bool css_is_valid_request_id ( CSS_CONN_ENTRY conn,
unsigned short  request_id 
)
static

Definition at line 2879 of file connection_sr.c.

References css_conn_entry::abort_queue, css_find_queue_entry(), css_conn_entry::data_queue, css_conn_entry::error_queue, NULL, and css_conn_entry::request_queue.

Referenced by css_get_request_id().

Here is the caller graph for this function:

static unsigned int css_make_eid ( unsigned short  entry_id,
unsigned short  rid 
)
static

Definition at line 1608 of file connection_sr.c.

Referenced by css_return_eid_from_conn().

Here is the caller graph for this function:

static CSS_QUEUE_ENTRY * css_make_queue_entry ( CSS_CONN_ENTRY conn,
unsigned int  key,
char *  buffer,
int  size,
int  rc,
int  transid,
int  invalidate_snapshot,
int  db_error 
)
static
static CSS_WAIT_QUEUE_ENTRY * css_make_wait_queue_entry ( CSS_CONN_ENTRY conn,
unsigned int  key,
char **  buffer,
int *  size,
int *  rc 
)
static
void css_print_conn_entry_info ( CSS_CONN_ENTRY conn)

Definition at line 928 of file connection_sr.c.

References css_conn_entry::client_id, css_conn_entry::fd, css_conn_entry::next, and css_conn_entry::request_id.

Referenced by css_print_conn_list(), and css_print_free_conn_list().

Here is the caller graph for this function:

static void css_process_abort_packet ( CSS_CONN_ENTRY conn,
unsigned short  request_id 
)
static
static void css_process_close_packet ( CSS_CONN_ENTRY conn)
static

Definition at line 2249 of file connection_sr.c.

References CONN_CLOSED, css_shutdown_socket(), css_conn_entry::fd, INVALID_SOCKET, IS_INVALID_SOCKET, and css_conn_entry::status.

Referenced by css_queue_packet().

Here is the caller graph for this function:

int css_queue_user_data_buffer ( CSS_CONN_ENTRY conn,
unsigned short  request_id,
int  size,
char *  buffer 
)
int css_read_and_queue ( CSS_CONN_ENTRY conn,
int *  type 
)
int css_receive_request ( CSS_CONN_ENTRY conn,
unsigned short *  rid,
int *  request,
int *  buffer_size 
)
void css_register_handler_routines ( css_error_code(*)(CSS_CONN_ENTRY *conn)  connect_handler,
CSS_THREAD_FN  request_handler,
CSS_THREAD_FN  connection_error_handler 
)

Definition at line 1022 of file connection_sr.c.

References css_Connect_handler, css_Connection_error_handler, and css_Request_handler.

Referenced by css_initialize_server_interfaces().

Here is the caller graph for this function:

static int css_remove_and_free_queue_entry ( void *  data,
void *  arg 
)
static

Definition at line 2953 of file connection_sr.c.

References css_free_queue_entry(), and TRAV_CONT_DELETE.

Referenced by css_remove_all_unexpected_packets().

Here is the caller graph for this function:

static int css_remove_and_free_wait_queue_entry ( void *  data,
void *  arg 
)
static

Definition at line 2966 of file connection_sr.c.

References css_free_wait_queue_entry(), and TRAV_CONT_DELETE.

Referenced by css_remove_all_unexpected_packets().

Here is the caller graph for this function:

void css_remove_unexpected_packets ( CSS_CONN_ENTRY conn,
unsigned short  request_id 
)
static
static void css_retire_net_header_entry ( CSS_CONN_ENTRY conn,
NET_HEADER entry 
)
static

Definition at line 1795 of file connection_sr.c.

References assert, and NULL.

Referenced by css_queue_command_packet(), and css_return_queued_request().

Here is the caller graph for this function:

static void css_retire_queue_entry ( CSS_CONN_ENTRY conn,
CSS_QUEUE_ENTRY entry 
)
static

Definition at line 1653 of file connection_sr.c.

References assert, css_queue_entry::next, and NULL.

Referenced by css_add_queue_entry(), and css_free_queue_entry().

Here is the caller graph for this function:

static void css_retire_wait_queue_entry ( CSS_CONN_ENTRY conn,
CSS_WAIT_QUEUE_ENTRY entry 
)
static

Definition at line 1724 of file connection_sr.c.

References assert, css_wait_queue_entry::next, and NULL.

Referenced by css_add_wait_queue_entry(), and css_free_wait_queue_entry().

Here is the caller graph for this function:

unsigned int css_return_eid_from_conn ( CSS_CONN_ENTRY conn,
unsigned short  rid 
)

Definition at line 1596 of file connection_sr.c.

References css_make_eid().

int css_return_queued_data ( CSS_CONN_ENTRY conn,
unsigned short  rid,
char **  buffer,
int *  bufsize,
int *  rc 
)

Definition at line 2832 of file connection_sr.c.

References css_return_queued_data_timeout().

int css_send_abort_request ( CSS_CONN_ENTRY conn,
unsigned short  request_id 
)
void css_set_user_access_status ( const char *  db_user,
const char *  host,
const char *  program_name 
)
void css_shutdown_conn_by_tran_index ( int  tran_index)
static int find_wait_queue_entry_by_key ( void *  data,
void *  user 
)
static

Variable Documentation

LAST_ACCESS_STATUS* css_Access_status_anchor = NULL
static

Definition at line 140 of file connection_sr.c.

Referenced by css_free_user_access_status(), and css_set_user_access_status().

int css_Client_id = 0
static

Definition at line 126 of file connection_sr.c.

Referenced by css_get_next_client_id().

pthread_mutex_t css_Client_id_lock = PTHREAD_MUTEX_INITIALIZER
static

Definition at line 127 of file connection_sr.c.

Referenced by css_get_next_client_id().

CSS_CONN_ENTRY* css_Conn_array = NULL
pthread_mutex_t css_Conn_rule_lock = PTHREAD_MUTEX_INITIALIZER
static

Definition at line 128 of file connection_sr.c.

Referenced by css_decrement_num_conn(), and css_increment_num_conn().

CSS_THREAD_FN css_Connection_error_handler = NULL

Definition at line 150 of file connection_sr.c.

Referenced by css_register_handler_routines().

CSS_CONN_ENTRY* css_Free_conn_anchor = NULL
static

Definition at line 129 of file connection_sr.c.

Referenced by css_dealloc_conn(), and css_make_conn().

const int CSS_MAX_CLIENT_ID = INT_MAX - 1
static

Definition at line 124 of file connection_sr.c.

Referenced by css_get_next_client_id().

int css_Num_access_user = 0
int css_Num_free_conn = 0
static
CSS_THREAD_FN css_Request_handler = NULL

Definition at line 147 of file connection_sr.c.

Referenced by css_register_handler_routines().

SYNC_RWLOCK css_Rwlock_active_conn_anchor

Definition at line 137 of file connection_sr.c.

SYNC_RWLOCK css_Rwlock_free_conn_anchor

Definition at line 138 of file connection_sr.c.