CUBRID Engine
latest
|
#include <assert.h>
#include <errno.h>
#include "porting.h"
#include "broker_acl.h"
#include "cas_error.h"
#include "broker_util.h"
#include "broker_filename.h"
Go to the source code of this file.
Macros | |
#define | ADMIN_ERR_MSG_SIZE BROKER_PATH_MAX * 2 |
#define | ACCESS_FILE_DELIMITER ":" |
#define | IP_FILE_DELIMITER "," |
Functions | |
static ACCESS_INFO * | access_control_find_access_info (ACCESS_INFO ai[], int size, char *dbname, char *dbuser) |
static int | access_control_read_ip_info (IP_INFO *ip_info, char *filename, char *admin_err_msg) |
static void | access_control_repath_file (char *path) |
static int | access_control_check_right_internal (T_SHM_APPL_SERVER *shm_as_p, char *dbname, char *dbuser, unsigned char *address) |
static int | access_control_check_ip (T_SHM_APPL_SERVER *shm_as_p, IP_INFO *ip_info, unsigned char *address, int info_index) |
static int | record_ip_access_time (T_SHM_APPL_SERVER *shm_as_p, int info_index, int list_index) |
int | access_control_set_shm (T_SHM_APPL_SERVER *shm_as_p, T_BROKER_INFO *br_info_p, T_SHM_BROKER *shm_br, char *admin_err_msg) |
int | access_control_read_config_file (T_SHM_APPL_SERVER *shm_appl, char *filename, char *admin_err_msg) |
int | access_control_check_right (T_SHM_APPL_SERVER *shm_as_p, char *dbname, char *dbuser, unsigned char *address) |
Variables | |
ACCESS_INFO | access_info [ACL_MAX_ITEM_COUNT] |
int | num_access_info |
int | access_info_changed |
#define ACCESS_FILE_DELIMITER ":" |
Definition at line 36 of file broker_acl.c.
Referenced by access_control_read_config_file().
#define ADMIN_ERR_MSG_SIZE BROKER_PATH_MAX * 2 |
Definition at line 35 of file broker_acl.c.
Referenced by access_control_read_config_file().
#define IP_FILE_DELIMITER "," |
Definition at line 37 of file broker_acl.c.
Referenced by access_control_read_config_file().
|
static |
Definition at line 480 of file broker_acl.c.
References ip_info::address_list, assert, i, IP_BYTE_COUNT, ip_info::num_list, and record_ip_access_time().
Referenced by access_control_check_right_internal().
int access_control_check_right | ( | T_SHM_APPL_SERVER * | shm_as_p, |
char * | dbname, | ||
char * | dbuser, | ||
unsigned char * | address | ||
) |
Definition at line 401 of file broker_acl.c.
References access_control_check_right_internal(), t_shm_appl_server::access_info, access_info_changed, t_shm_appl_server::acl_chn, t_shm_appl_server::acl_sem, t_shm_appl_server::broker_name, BROKER_NAME_LEN, num_access_info, t_shm_appl_server::num_access_info, uw_sem_post(), and uw_sem_wait().
Referenced by cas_main(), and proxy_process_client_register().
|
static |
Definition at line 427 of file broker_acl.c.
References access_control_check_ip(), ACL_MAX_DBNAME_LENGTH, ACL_MAX_DBUSER_LENGTH, i, t_shm_appl_server::local_ip_addr, NULL, and num_access_info.
Referenced by access_control_check_right().
|
static |
Definition at line 96 of file broker_acl.c.
Referenced by access_control_read_config_file().
int access_control_read_config_file | ( | T_SHM_APPL_SERVER * | shm_appl, |
char * | filename, | ||
char * | admin_err_msg | ||
) |
Definition at line 112 of file broker_acl.c.
References access_control_find_access_info(), access_control_read_ip_info(), access_control_repath_file(), ACCESS_FILE_DELIMITER, access_info, t_shm_appl_server::access_info, t_shm_appl_server::acl_chn, ACL_MAX_DBNAME_LENGTH, ACL_MAX_DBUSER_LENGTH, ACL_MAX_ITEM_COUNT, t_shm_appl_server::acl_sem, ADMIN_ERR_MSG_SIZE, t_shm_appl_server::broker_name, BROKER_NAME_LEN, BROKER_PATH_MAX, dbname, access_list::dbname, dbuser, access_list::dbuser, error(), IP_FILE_DELIMITER, access_list::ip_files, access_list::ip_info, NULL, t_shm_appl_server::num_access_info, p, strlen, trim(), uw_sem_post(), and uw_sem_wait().
Referenced by access_control_set_shm(), and admin_acl_reload_cmd().
|
static |
Definition at line 302 of file broker_acl.c.
References ACL_MAX_IP_COUNT, ip_info::address_list, error(), i, IP_BYTE_COUNT, ip_info::last_access_time, NULL, ip_info::num_list, p, parse_int(), and trim().
Referenced by access_control_read_config_file().
|
static |
Definition at line 278 of file broker_acl.c.
References BROKER_PATH_MAX, envvar_confdir_file(), IS_ABS_PATH, MAKE_FILEPATH, and trim().
Referenced by access_control_read_config_file().
int access_control_set_shm | ( | T_SHM_APPL_SERVER * | shm_as_p, |
T_BROKER_INFO * | br_info_p, | ||
T_SHM_BROKER * | shm_br, | ||
char * | admin_err_msg | ||
) |
Definition at line 53 of file broker_acl.c.
References t_shm_appl_server::access_control, t_shm_broker::access_control, t_shm_broker::access_control_file, access_control_read_config_file(), t_shm_appl_server::acl_chn, t_shm_appl_server::acl_sem, BROKER_NAME_LEN, FID_ACCESS_CONTROL_FILE, get_cubrid_file_ptr(), t_shm_appl_server::local_ip_addr, t_shm_broker::my_ip_addr, t_broker_info::name, set_cubrid_file(), and uw_sem_init().
Referenced by admin_on_cmd(), and admin_start_cmd().
|
static |
Definition at line 509 of file broker_acl.c.
References t_shm_appl_server::access_info, access_info_changed, t_shm_appl_server::acl_chn, t_shm_appl_server::acl_sem, t_shm_appl_server::broker_name, BROKER_NAME_LEN, access_list::ip_info, ip_info::last_access_time, NULL, uw_sem_post(), and uw_sem_wait().
Referenced by access_control_check_ip().
ACCESS_INFO access_info[ACL_MAX_ITEM_COUNT] |
Definition at line 39 of file broker_acl.c.
Referenced by access_control_read_config_file().
int access_info_changed |
Definition at line 41 of file broker_acl.c.
Referenced by access_control_check_right(), and record_ip_access_time().
int num_access_info |
Definition at line 40 of file broker_acl.c.
Referenced by access_control_check_right(), and access_control_check_right_internal().