diff --git a/sources/CMakeLists.txt b/sources/CMakeLists.txt index be2ad9d4..7ead473b 100644 --- a/sources/CMakeLists.txt +++ b/sources/CMakeLists.txt @@ -4,7 +4,7 @@ set(od_src pid.c daemon.c logger.c - scheme.c + config.c config_reader.c id.c instance.c diff --git a/sources/auth.c b/sources/auth.c index 385c4725..72c15e40 100644 --- a/sources/auth.c +++ b/sources/auth.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -104,10 +104,10 @@ od_auth_frontend_cleartext(od_client_t *client) shapito_password_t client_password; shapito_password_init(&client_password); - if (client->scheme->auth_query) { + if (client->config->auth_query) { rc = od_auth_query(client->system, stream, - client->scheme, + client->config, client->startup.user, &client_password); if (rc == -1) { @@ -120,14 +120,14 @@ od_auth_frontend_cleartext(od_client_t *client) return -1; } } else { - client_password.password_len = client->scheme->password_len + 1; - client_password.password = client->scheme->password; + client_password.password_len = client->config->password_len + 1; + client_password.password = client->config->password; } /* authenticate */ int check = shapito_password_compare(&client_password, &client_token); shapito_password_free(&client_token); - if (client->scheme->auth_query) + if (client->config->auth_query) shapito_password_free(&client_password); if (! check) { od_log(&instance->logger, "auth", client, NULL, @@ -203,10 +203,10 @@ od_auth_frontend_md5(od_client_t *client) shapito_password_t query_password; shapito_password_init(&query_password); - if (client->scheme->auth_query) { + if (client->config->auth_query) { rc = od_auth_query(client->system, stream, - client->scheme, + client->config, client->startup.user, &query_password); if (rc == -1) { @@ -220,8 +220,8 @@ od_auth_frontend_md5(od_client_t *client) } query_password.password_len--; } else { - query_password.password_len = client->scheme->password_len; - query_password.password = client->scheme->password; + query_password.password_len = client->config->password_len; + query_password.password = client->config->password; } /* prepare password hash */ @@ -236,7 +236,7 @@ od_auth_frontend_md5(od_client_t *client) "memory allocation error"); shapito_password_free(&client_password); shapito_password_free(&client_token); - if (client->scheme->auth_query) + if (client->config->auth_query) shapito_password_free(&query_password); return -1; } @@ -245,7 +245,7 @@ od_auth_frontend_md5(od_client_t *client) int check = shapito_password_compare(&client_password, &client_token); shapito_password_free(&client_password); shapito_password_free(&client_token); - if (client->scheme->auth_query) + if (client->config->auth_query) shapito_password_free(&query_password); if (! check) { od_log(&instance->logger, "auth", client, NULL, @@ -278,7 +278,7 @@ int od_auth_frontend(od_client_t *client) /* authentication mode */ int rc; - switch (client->scheme->auth_mode) { + switch (client->config->auth_mode) { case OD_AUTH_CLEAR_TEXT: rc = od_auth_frontend_cleartext(client); if (rc == -1) @@ -328,18 +328,18 @@ od_auth_backend_cleartext(od_server_t *server, shapito_stream_t *stream) /* use storage or user password */ char *password; int password_len; - if (route->scheme->storage_password) { - password = route->scheme->storage_password; - password_len = route->scheme->storage_password_len; + if (route->config->storage_password) { + password = route->config->storage_password; + password_len = route->config->storage_password_len; } else - if (route->scheme->password) { - password = route->scheme->password; - password_len = route->scheme->password_len; + if (route->config->password) { + password = route->config->password; + password_len = route->config->password_len; } else { od_error(&instance->logger, "auth", NULL, server, "password required for route '%s.%s'", - route->scheme->db_name, - route->scheme->user_name); + route->config->db_name, + route->config->user_name); return -1; } @@ -376,29 +376,29 @@ od_auth_backend_md5(od_server_t *server, shapito_stream_t *stream, /* use storage user or route user */ char *user; int user_len; - if (route->scheme->storage_user) { - user = route->scheme->storage_user; - user_len = route->scheme->storage_user_len; + if (route->config->storage_user) { + user = route->config->storage_user; + user_len = route->config->storage_user_len; } else { - user = route->scheme->user_name; - user_len = route->scheme->user_name_len; + user = route->config->user_name; + user_len = route->config->user_name_len; } /* use storage or user password */ char *password; int password_len; - if (route->scheme->storage_password) { - password = route->scheme->storage_password; - password_len = route->scheme->storage_password_len; + if (route->config->storage_password) { + password = route->config->storage_password; + password_len = route->config->storage_password_len; } else - if (route->scheme->password) { - password = route->scheme->password; - password_len = route->scheme->password_len; + if (route->config->password) { + password = route->config->password; + password_len = route->config->password_len; } else { od_error(&instance->logger, "auth", NULL, server, "password required for route '%s.%s'", - route->scheme->db_name, - route->scheme->user_name); + route->config->db_name, + route->config->user_name); return -1; } diff --git a/sources/auth_query.c b/sources/auth_query.c index f7b61f0f..56327d01 100644 --- a/sources/auth_query.c +++ b/sources/auth_query.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -172,13 +172,13 @@ od_auth_query_do(od_server_t *server, shapito_stream_t *stream, } __attribute__((hot)) static inline int -od_auth_query_format(od_schemeroute_t *scheme, shapito_parameter_t *user, +od_auth_query_format(od_configroute_t *config, shapito_parameter_t *user, char *output, int output_len) { char *dst_pos = output; char *dst_end = output + output_len; - char *format_pos = scheme->auth_query; - char *format_end = scheme->auth_query + strlen(scheme->auth_query); + char *format_pos = config->auth_query; + char *format_end = config->auth_query + strlen(config->auth_query); while (format_pos < format_end) { if (*format_pos == '%') { @@ -214,7 +214,7 @@ od_auth_query_format(od_schemeroute_t *scheme, shapito_parameter_t *user, int od_auth_query(od_system_t *system, shapito_stream_t *stream, - od_schemeroute_t *scheme, + od_configroute_t *config, shapito_parameter_t *user, shapito_password_t *password) { @@ -231,12 +231,12 @@ int od_auth_query(od_system_t *system, /* set auth query route db and user */ shapito_parameters_add(&auth_client->startup.params, "database", 9, - scheme->auth_query_db, - strlen(scheme->auth_query_db) + 1); + config->auth_query_db, + strlen(config->auth_query_db) + 1); shapito_parameters_add(&auth_client->startup.params, "user", 5, - scheme->auth_query_user, - strlen(scheme->auth_query_user) + 1); + config->auth_query_user, + strlen(config->auth_query_user) + 1); shapito_parameter_t *param; param = (shapito_parameter_t*)auth_client->startup.params.buf.start; @@ -282,7 +282,7 @@ int od_auth_query(od_system_t *system, /* preformat and execute query */ char query[512]; int query_len; - query_len = od_auth_query_format(scheme, user, query, sizeof(query)); + query_len = od_auth_query_format(config, user, query, sizeof(query)); rc = od_auth_query_do(server, stream, query, query_len, password); if (rc == -1) { diff --git a/sources/auth_query.h b/sources/auth_query.h index b081292a..a3679aaa 100644 --- a/sources/auth_query.h +++ b/sources/auth_query.h @@ -7,7 +7,7 @@ * Advanced PostgreSQL connection pooler. */ -int od_auth_query(od_system_t*, shapito_stream_t*, od_schemeroute_t*, +int od_auth_query(od_system_t*, shapito_stream_t*, od_configroute_t*, shapito_parameter_t*, shapito_password_t*); #endif /* OD_AUTH_QUERY_H */ diff --git a/sources/backend.c b/sources/backend.c index 6afe9ce9..46e652da 100644 --- a/sources/backend.c +++ b/sources/backend.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -256,7 +256,7 @@ od_backend_startup(od_server_t *server, shapito_stream_t *stream) static inline int od_backend_connect_to(od_server_t *server, shapito_stream_t *stream, - od_schemestorage_t *server_scheme, + od_configstorage_t *server_config, char *context) { od_instance_t *instance = server->system->instance; @@ -268,11 +268,11 @@ od_backend_connect_to(od_server_t *server, return -1; /* set network options */ - machine_set_nodelay(server->io, instance->scheme.nodelay); - if (instance->scheme.keepalive > 0) - machine_set_keepalive(server->io, 1, instance->scheme.keepalive); + machine_set_nodelay(server->io, instance->config.nodelay); + if (instance->config.keepalive > 0) + machine_set_keepalive(server->io, 1, instance->config.keepalive); int rc; - rc = machine_set_readahead(server->io, instance->scheme.readahead); + rc = machine_set_readahead(server->io, instance->config.readahead); if (rc == -1) { od_error(&instance->logger, context, NULL, server, "failed to set readahead"); @@ -280,22 +280,22 @@ od_backend_connect_to(od_server_t *server, } /* set tls options */ - if (server_scheme->tls_mode != OD_TLS_DISABLE) { - server->tls = od_tls_backend(server_scheme); + if (server_config->tls_mode != OD_TLS_DISABLE) { + server->tls = od_tls_backend(server_config); if (server->tls == NULL) return -1; } /* resolve server address */ char port[16]; - od_snprintf(port, sizeof(port), "%d", server_scheme->port); + od_snprintf(port, sizeof(port), "%d", server_config->port); struct addrinfo *ai = NULL; - rc = machine_getaddrinfo(server_scheme->host, port, NULL, &ai, 0); + rc = machine_getaddrinfo(server_config->host, port, NULL, &ai, 0); if (rc != 0) { od_error(&instance->logger, context, NULL, server, "failed to resolve %s:%d", - server_scheme->host, - server_scheme->port); + server_config->host, + server_config->port); return -1; } assert(ai != NULL); @@ -306,14 +306,14 @@ od_backend_connect_to(od_server_t *server, if (rc == -1) { od_error(&instance->logger, context, server->client, server, "failed to connect to %s:%d", - server_scheme->host, - server_scheme->port); + server_config->host, + server_config->port); return -1; } /* do tls handshake */ - if (server_scheme->tls_mode != OD_TLS_DISABLE) { - rc = od_tls_backend_connect(server, &instance->logger, stream, server_scheme); + if (server_config->tls_mode != OD_TLS_DISABLE) { + rc = od_tls_backend_connect(server, &instance->logger, stream, server_config); if (rc == -1) return -1; } @@ -328,21 +328,21 @@ int od_backend_connect(od_server_t *server, shapito_stream_t *stream, od_route_t *route = server->route; assert(route != NULL); - od_schemestorage_t *server_scheme; - server_scheme = route->scheme->storage; + od_configstorage_t *server_config; + server_config = route->config->storage; /* connect to server */ int rc; - rc = od_backend_connect_to(server, stream, server_scheme, context); + rc = od_backend_connect_to(server, stream, server_config, context); if (rc == -1) return -1; /* log server connection */ - if (instance->scheme.log_session) { + if (instance->config.log_session) { od_log(&instance->logger, context, server->client, server, "new server connection %s:%d", - server_scheme->host, - server_scheme->port); + server_config->host, + server_config->port); } /* send startup and do initial configuration */ @@ -352,13 +352,13 @@ int od_backend_connect(od_server_t *server, shapito_stream_t *stream, int od_backend_connect_cancel(od_server_t *server, shapito_stream_t *stream, - od_schemestorage_t *server_scheme, + od_configstorage_t *server_config, shapito_key_t *key) { od_instance_t *instance = server->system->instance; /* connect to server */ int rc; - rc = od_backend_connect_to(server, stream, server_scheme, "cancel"); + rc = od_backend_connect_to(server, stream, server_config, "cancel"); if (rc == -1) return -1; /* send cancel request */ diff --git a/sources/backend.h b/sources/backend.h index fa88ecb0..9c3769e5 100644 --- a/sources/backend.h +++ b/sources/backend.h @@ -8,7 +8,7 @@ */ int od_backend_connect(od_server_t*, shapito_stream_t*, char*); -int od_backend_connect_cancel(od_server_t*, shapito_stream_t*, od_schemestorage_t*, +int od_backend_connect_cancel(od_server_t*, shapito_stream_t*, od_configstorage_t*, shapito_key_t*); void od_backend_close_connection(od_server_t*); void od_backend_close(od_server_t*); diff --git a/sources/cancel.c b/sources/cancel.c index 74e44a7f..e1892dde 100644 --- a/sources/cancel.c +++ b/sources/cancel.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -52,7 +52,7 @@ int od_cancel(od_system_t *system, shapito_stream_t *stream, - od_schemestorage_t *server_scheme, + od_configstorage_t *server_config, shapito_key_t *key, od_id_t *server_id) { @@ -64,7 +64,7 @@ int od_cancel(od_system_t *system, od_server_t server; od_server_init(&server); server.system = system; - od_backend_connect_cancel(&server, stream, server_scheme, key); + od_backend_connect_cancel(&server, stream, server_config, key); od_backend_close_connection(&server); od_backend_close(&server); return 0; @@ -89,8 +89,8 @@ int od_cancel_find(od_routepool_t *route_pool, shapito_key_t *key, return -1; od_route_t *route = server->route; cancel->id = server->id; - cancel->scheme = od_schemestorage_copy(route->scheme->storage); - if (cancel->scheme == NULL) + cancel->config = od_configstorage_copy(route->config->storage); + if (cancel->config == NULL) return -1; cancel->key = server->key; return 0; diff --git a/sources/cancel.h b/sources/cancel.h index eb344df7..7d6fe4a6 100644 --- a/sources/cancel.h +++ b/sources/cancel.h @@ -7,7 +7,7 @@ * Advanced PostgreSQL connection pooler. */ -int od_cancel(od_system_t*, shapito_stream_t*, od_schemestorage_t*, shapito_key_t*, od_id_t*); +int od_cancel(od_system_t*, shapito_stream_t*, od_configstorage_t*, shapito_key_t*, od_id_t*); int od_cancel_find(od_routepool_t*, shapito_key_t*, od_routercancel_t*); #endif diff --git a/sources/client.h b/sources/client.h index d0a44519..47f13791 100644 --- a/sources/client.h +++ b/sources/client.h @@ -25,8 +25,8 @@ struct od_client uint64_t coroutine_attacher_id; machine_io_t *io; machine_tls_t *tls; - od_schemeroute_t *scheme; - od_schemelisten_t *scheme_listen; + od_configroute_t *config; + od_configlisten_t *config_listen; uint64_t time_accept; uint64_t time_setup; shapito_be_startup_t startup; @@ -48,8 +48,8 @@ od_client_init(od_client_t *client) client->coroutine_attacher_id = 0; client->io = NULL; client->tls = NULL; - client->scheme = NULL; - client->scheme_listen = NULL; + client->config = NULL; + client->config_listen = NULL; client->server = NULL; client->route = NULL; client->system = NULL; diff --git a/sources/client_pool.c b/sources/client_pool.c index d9b1a86b..10c8aa75 100644 --- a/sources/client_pool.c +++ b/sources/client_pool.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" diff --git a/sources/scheme.c b/sources/config.c similarity index 70% rename from sources/scheme.c rename to sources/config.c index b197f88d..1161cb52 100644 --- a/sources/scheme.c +++ b/sources/config.c @@ -21,107 +21,107 @@ #include "sources/pid.h" #include "sources/id.h" #include "sources/logger.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" -void od_scheme_init(od_scheme_t *scheme) +void od_config_init(od_config_t *config) { - scheme->daemonize = 0; - scheme->log_debug = 0; - scheme->log_to_stdout = 1; - scheme->log_config = 0; - scheme->log_session = 1; - scheme->log_query = 0; - scheme->log_file = NULL; - scheme->log_stats = 1; - scheme->stats_interval = 3; - scheme->log_format = NULL; - scheme->pid_file = NULL; - scheme->log_syslog = 0; - scheme->log_syslog_ident = NULL; - scheme->log_syslog_facility = NULL; - scheme->readahead = 8192; - scheme->nodelay = 1; - scheme->keepalive = 7200; - scheme->workers = 1; - scheme->resolvers = 1; - scheme->client_max_set = 0; - scheme->client_max = 0; - scheme->cache = 100; - scheme->cache_chunk = 32 * 1024; - scheme->cache_coroutine = 0; - scheme->pipeline = 30 * 1024; - od_list_init(&scheme->storages); - od_list_init(&scheme->routes); - od_list_init(&scheme->listen); + config->daemonize = 0; + config->log_debug = 0; + config->log_to_stdout = 1; + config->log_config = 0; + config->log_session = 1; + config->log_query = 0; + config->log_file = NULL; + config->log_stats = 1; + config->stats_interval = 3; + config->log_format = NULL; + config->pid_file = NULL; + config->log_syslog = 0; + config->log_syslog_ident = NULL; + config->log_syslog_facility = NULL; + config->readahead = 8192; + config->nodelay = 1; + config->keepalive = 7200; + config->workers = 1; + config->resolvers = 1; + config->client_max_set = 0; + config->client_max = 0; + config->cache = 100; + config->cache_chunk = 32 * 1024; + config->cache_coroutine = 0; + config->pipeline = 30 * 1024; + od_list_init(&config->storages); + od_list_init(&config->routes); + od_list_init(&config->listen); } static void -od_schemelisten_free(od_schemelisten_t*); +od_configlisten_free(od_configlisten_t*); -void od_scheme_free(od_scheme_t *scheme) +void od_config_free(od_config_t *config) { od_list_t *i, *n; - od_list_foreach_safe(&scheme->routes, i, n) { - od_schemeroute_t *route; - route = od_container_of(i, od_schemeroute_t, link); - od_schemeroute_free(route); + od_list_foreach_safe(&config->routes, i, n) { + od_configroute_t *route; + route = od_container_of(i, od_configroute_t, link); + od_configroute_free(route); } - od_list_foreach_safe(&scheme->listen, i, n) { - od_schemelisten_t *listen; - listen = od_container_of(i, od_schemelisten_t, link); - od_schemelisten_free(listen); + od_list_foreach_safe(&config->listen, i, n) { + od_configlisten_t *listen; + listen = od_container_of(i, od_configlisten_t, link); + od_configlisten_free(listen); } - if (scheme->log_file) - free(scheme->log_file); - if (scheme->log_format) - free(scheme->log_format); - if (scheme->pid_file) - free(scheme->pid_file); - if (scheme->log_syslog_ident) - free(scheme->log_syslog_ident); - if (scheme->log_syslog_facility) - free(scheme->log_syslog_facility); + if (config->log_file) + free(config->log_file); + if (config->log_format) + free(config->log_format); + if (config->pid_file) + free(config->pid_file); + if (config->log_syslog_ident) + free(config->log_syslog_ident); + if (config->log_syslog_facility) + free(config->log_syslog_facility); } -od_schemelisten_t* -od_schemelisten_add(od_scheme_t *scheme) +od_configlisten_t* +od_configlisten_add(od_config_t *config) { - od_schemelisten_t *listen; - listen = (od_schemelisten_t*)malloc(sizeof(*scheme)); + od_configlisten_t *listen; + listen = (od_configlisten_t*)malloc(sizeof(*config)); if (listen == NULL) return NULL; memset(listen, 0, sizeof(*listen)); listen->port = 6432; listen->backlog = 128; od_list_init(&listen->link); - od_list_append(&scheme->listen, &listen->link); + od_list_append(&config->listen, &listen->link); return listen; } static void -od_schemelisten_free(od_schemelisten_t *scheme) +od_configlisten_free(od_configlisten_t *config) { - if (scheme->host) - free(scheme->host); - if (scheme->tls) - free(scheme->tls); - if (scheme->tls_ca_file) - free(scheme->tls_ca_file); - if (scheme->tls_key_file) - free(scheme->tls_key_file); - if (scheme->tls_cert_file) - free(scheme->tls_cert_file); - if (scheme->tls_protocols) - free(scheme->tls_protocols); - free(scheme); + if (config->host) + free(config->host); + if (config->tls) + free(config->tls); + if (config->tls_ca_file) + free(config->tls_ca_file); + if (config->tls_key_file) + free(config->tls_key_file); + if (config->tls_cert_file) + free(config->tls_cert_file); + if (config->tls_protocols) + free(config->tls_protocols); + free(config); } -static inline od_schemestorage_t* -od_schemestorage_allocate(void) +static inline od_configstorage_t* +od_configstorage_allocate(void) { - od_schemestorage_t *storage; - storage = (od_schemestorage_t*)malloc(sizeof(*storage)); + od_configstorage_t *storage; + storage = (od_configstorage_t*)malloc(sizeof(*storage)); if (storage == NULL) return NULL; memset(storage, 0, sizeof(*storage)); @@ -130,7 +130,7 @@ od_schemestorage_allocate(void) } void -od_schemestorage_free(od_schemestorage_t *storage) +od_configstorage_free(od_configstorage_t *storage) { if (storage->name) free(storage->name); @@ -152,48 +152,48 @@ od_schemestorage_free(od_schemestorage_t *storage) free(storage); } -od_schemestorage_t* -od_schemestorage_add(od_scheme_t *scheme) +od_configstorage_t* +od_configstorage_add(od_config_t *config) { - od_schemestorage_t *storage; - storage = od_schemestorage_allocate(); + od_configstorage_t *storage; + storage = od_configstorage_allocate(); if (storage == NULL) return NULL; - od_list_append(&scheme->storages, &storage->link); + od_list_append(&config->storages, &storage->link); return storage; } -od_schemestorage_t* -od_schemestorage_match(od_scheme_t *scheme, char *name) +od_configstorage_t* +od_configstorage_match(od_config_t *config, char *name) { od_list_t *i; - od_list_foreach(&scheme->storages, i) { - od_schemestorage_t *storage; - storage = od_container_of(i, od_schemestorage_t, link); + od_list_foreach(&config->storages, i) { + od_configstorage_t *storage; + storage = od_container_of(i, od_configstorage_t, link); if (strcmp(storage->name, name) == 0) return storage; } return NULL; } -od_schemestorage_t* -od_schemestorage_match_latest(od_scheme_t *scheme, char *name) +od_configstorage_t* +od_configstorage_match_latest(od_config_t *config, char *name) { od_list_t *i; - od_list_foreach(&scheme->storages, i) { - od_schemestorage_t *storage; - storage = od_container_of(i, od_schemestorage_t, link); + od_list_foreach(&config->storages, i) { + od_configstorage_t *storage; + storage = od_container_of(i, od_configstorage_t, link); if (strcmp(storage->name, name) == 0) return storage; } return NULL; } -od_schemestorage_t* -od_schemestorage_copy(od_schemestorage_t *storage) +od_configstorage_t* +od_configstorage_copy(od_configstorage_t *storage) { - od_schemestorage_t *copy; - copy = od_schemestorage_allocate(); + od_configstorage_t *copy; + copy = od_configstorage_allocate(); if (copy == NULL) return NULL; copy->storage_type = storage->storage_type; @@ -237,12 +237,12 @@ od_schemestorage_copy(od_schemestorage_t *storage) } return copy; error: - od_schemestorage_free(copy); + od_configstorage_free(copy); return NULL; } static inline int -od_schemestorage_compare(od_schemestorage_t *a, od_schemestorage_t *b) +od_configstorage_compare(od_configstorage_t *a, od_configstorage_t *b) { /* type */ if (a->storage_type != b->storage_type) @@ -304,11 +304,11 @@ od_schemestorage_compare(od_schemestorage_t *a, od_schemestorage_t *b) return 1; } -od_schemeroute_t* -od_schemeroute_add(od_scheme_t *scheme, uint64_t version) +od_configroute_t* +od_configroute_add(od_config_t *config, uint64_t version) { - od_schemeroute_t *route; - route = (od_schemeroute_t*)malloc(sizeof(*route)); + od_configroute_t *route; + route = (od_configroute_t*)malloc(sizeof(*route)); if (route == NULL) return NULL; memset(route, 0, sizeof(*route)); @@ -318,11 +318,11 @@ od_schemeroute_add(od_scheme_t *scheme, uint64_t version) route->pool_cancel = 1; route->pool_rollback = 1; od_list_init(&route->link); - od_list_append(&scheme->routes, &route->link); + od_list_append(&config->routes, &route->link); return route; } -void od_schemeroute_free(od_schemeroute_t *route) +void od_configroute_free(od_configroute_t *route) { assert(route->refs == 0); if (route->db_name) @@ -340,7 +340,7 @@ void od_schemeroute_free(od_schemeroute_t *route) if (route->auth_query_user) free(route->auth_query_user); if (route->storage) - od_schemestorage_free(route->storage); + od_configstorage_free(route->storage); if (route->storage_name) free(route->storage_name); if (route->storage_db) @@ -356,11 +356,11 @@ void od_schemeroute_free(od_schemeroute_t *route) } static inline void -od_schemeroute_cmpswap(od_schemeroute_t **dest, od_schemeroute_t *next) +od_configroute_cmpswap(od_configroute_t **dest, od_configroute_t *next) { /* update dest if (a) it is not set or (b) previous version is lower * then new version */ - od_schemeroute_t *prev = *dest; + od_configroute_t *prev = *dest; if (prev == NULL) { *dest = next; return; @@ -370,31 +370,31 @@ od_schemeroute_cmpswap(od_schemeroute_t **dest, od_schemeroute_t *next) *dest = next; } -od_schemeroute_t* -od_schemeroute_forward(od_scheme_t *scheme, char *db_name, char *user_name) +od_configroute_t* +od_configroute_forward(od_config_t *config, char *db_name, char *user_name) { - od_schemeroute_t *route_db_user = NULL; - od_schemeroute_t *route_db_default = NULL; - od_schemeroute_t *route_default_user = NULL; - od_schemeroute_t *route_default_default = NULL; + od_configroute_t *route_db_user = NULL; + od_configroute_t *route_db_default = NULL; + od_configroute_t *route_default_user = NULL; + od_configroute_t *route_default_default = NULL; od_list_t *i; - od_list_foreach(&scheme->routes, i) { - od_schemeroute_t *route; - route = od_container_of(i, od_schemeroute_t, link); + od_list_foreach(&config->routes, i) { + od_configroute_t *route; + route = od_container_of(i, od_configroute_t, link); if (route->db_is_default) { if (route->user_is_default) - od_schemeroute_cmpswap(&route_default_default, route); + od_configroute_cmpswap(&route_default_default, route); else if (strcmp(route->user_name, user_name) == 0) - od_schemeroute_cmpswap(&route_default_user, route); + od_configroute_cmpswap(&route_default_user, route); } else if (strcmp(route->db_name, db_name) == 0) { if (route->user_is_default) - od_schemeroute_cmpswap(&route_db_default, route); + od_configroute_cmpswap(&route_db_default, route); else if (strcmp(route->user_name, user_name) == 0) - od_schemeroute_cmpswap(&route_db_user, route); + od_configroute_cmpswap(&route_db_user, route); } } @@ -410,13 +410,13 @@ od_schemeroute_forward(od_scheme_t *scheme, char *db_name, char *user_name) return route_default_default; } -od_schemeroute_t* -od_schemeroute_match(od_scheme_t *scheme, char *db_name, char *user_name) +od_configroute_t* +od_configroute_match(od_config_t *config, char *db_name, char *user_name) { od_list_t *i; - od_list_foreach(&scheme->routes, i) { - od_schemeroute_t *route; - route = od_container_of(i, od_schemeroute_t, link); + od_list_foreach(&config->routes, i) { + od_configroute_t *route; + route = od_container_of(i, od_configroute_t, link); if (strcmp(route->db_name, db_name) == 0 && strcmp(route->user_name, user_name) == 0) return route; @@ -424,15 +424,15 @@ od_schemeroute_match(od_scheme_t *scheme, char *db_name, char *user_name) return NULL; } -od_schemeroute_t* -od_schemeroute_match_latest(od_scheme_t *scheme, char *db_name, char *user_name) +od_configroute_t* +od_configroute_match_latest(od_config_t *config, char *db_name, char *user_name) { - /* match latest route scheme version */ - od_schemeroute_t *match = NULL; + /* match latest route config version */ + od_configroute_t *match = NULL; od_list_t *i; - od_list_foreach(&scheme->routes, i) { - od_schemeroute_t *route; - route = od_container_of(i, od_schemeroute_t, link); + od_list_foreach(&config->routes, i) { + od_configroute_t *route; + route = od_container_of(i, od_configroute_t, link); if (strcmp(route->db_name, db_name) != 0 || strcmp(route->user_name, user_name) != 0) continue; @@ -446,7 +446,7 @@ od_schemeroute_match_latest(od_scheme_t *scheme, char *db_name, char *user_name) return match; } -int od_schemeroute_compare(od_schemeroute_t *a, od_schemeroute_t *b) +int od_configroute_compare(od_configroute_t *a, od_configroute_t *b) { /* db default */ if (a->db_is_default != b->db_is_default) @@ -500,7 +500,7 @@ int od_schemeroute_compare(od_schemeroute_t *a, od_schemeroute_t *b) if (strcmp(a->storage_name, b->storage_name) != 0) return 0; - if (! od_schemestorage_compare(a->storage, b->storage)) + if (! od_configstorage_compare(a->storage, b->storage)) return 0; /* storage_db */ @@ -569,35 +569,35 @@ int od_schemeroute_compare(od_schemeroute_t *a, od_schemeroute_t *b) return 1; } -int od_scheme_validate(od_scheme_t *scheme, od_logger_t *logger) +int od_config_validate(od_config_t *config, od_logger_t *logger) { /* workers */ - if (scheme->workers == 0) { + if (config->workers == 0) { od_error(logger, "config", NULL, NULL, "bad workers number"); return -1; } /* resolvers */ - if (scheme->resolvers == 0) { + if (config->resolvers == 0) { od_error(logger, "config", NULL, NULL, "bad resolvers number"); return -1; } /* log format */ - if (scheme->log_format == NULL) { + if (config->log_format == NULL) { od_error(logger, "config", NULL, NULL, "log is not defined"); return -1; } /* listen */ - if (od_list_empty(&scheme->listen)) { + if (od_list_empty(&config->listen)) { od_error(logger, "config", NULL, NULL, "no listen servers defined"); return -1; } od_list_t *i; - od_list_foreach(&scheme->listen, i) { - od_schemelisten_t *listen; - listen = od_container_of(i, od_schemelisten_t, link); + od_list_foreach(&config->listen, i) { + od_configlisten_t *listen; + listen = od_container_of(i, od_configlisten_t, link); if (listen->host == NULL) { od_error(logger, "config", NULL, NULL, "listen host is not defined"); return -1; @@ -626,13 +626,13 @@ int od_scheme_validate(od_scheme_t *scheme, od_logger_t *logger) } /* storages */ - if (od_list_empty(&scheme->storages)) { + if (od_list_empty(&config->storages)) { od_error(logger, "config", NULL, NULL, "no storages defined"); return -1; } - od_list_foreach(&scheme->storages, i) { - od_schemestorage_t *storage; - storage = od_container_of(i, od_schemestorage_t, link); + od_list_foreach(&config->storages, i) { + od_configstorage_t *storage; + storage = od_container_of(i, od_configstorage_t, link); if (storage->type == NULL) { od_error(logger, "config", NULL, NULL, "storage '%s': no type is specified", @@ -678,14 +678,14 @@ int od_scheme_validate(od_scheme_t *scheme, od_logger_t *logger) } /* routes */ - if (od_list_empty(&scheme->routes)) { + if (od_list_empty(&config->routes)) { od_error(logger, "config", NULL, NULL, "no routes defined"); return -1; } - od_schemeroute_t *route_default_default = NULL; - od_list_foreach(&scheme->routes, i) { - od_schemeroute_t *route; - route = od_container_of(i, od_schemeroute_t, link); + od_configroute_t *route_default_default = NULL; + od_list_foreach(&config->routes, i) { + od_configroute_t *route; + route = od_container_of(i, od_configroute_t, link); /* ensure route default.default exists */ if (route->db_is_default && route->user_is_default) { @@ -693,22 +693,22 @@ int od_scheme_validate(od_scheme_t *scheme, od_logger_t *logger) route_default_default = route; } - /* match storage and make a copy of in the user scheme */ + /* match storage and make a copy of in the user config */ if (route->storage_name == NULL) { od_error(logger, "config", NULL, NULL, "route '%s.%s': no route storage is specified", route->db_name, route->user_name); return -1; } - od_schemestorage_t *storage; - storage = od_schemestorage_match(scheme, route->storage_name); + od_configstorage_t *storage; + storage = od_configstorage_match(config, route->storage_name); if (storage == NULL) { od_error(logger, "config", NULL, NULL, "route '%s.%s': no route storage '%s' found", route->db_name, route->user_name); return -1; } - route->storage = od_schemestorage_copy(storage); + route->storage = od_configstorage_copy(storage); if (route->storage == NULL) return -1; @@ -792,95 +792,95 @@ int od_scheme_validate(od_scheme_t *scheme, od_logger_t *logger) return -1; } - /* cleanup declarative storages scheme data */ + /* cleanup declarative storages config data */ od_list_t *n; - od_list_foreach_safe(&scheme->storages, i, n) { - od_schemestorage_t *storage; - storage = od_container_of(i, od_schemestorage_t, link); - od_schemestorage_free(storage); + od_list_foreach_safe(&config->storages, i, n) { + od_configstorage_t *storage; + storage = od_container_of(i, od_configstorage_t, link); + od_configstorage_free(storage); } - od_list_init(&scheme->storages); + od_list_init(&config->storages); return 0; } static inline char* -od_scheme_yes_no(int value) { +od_config_yes_no(int value) { return value ? "yes" : "no"; } -void od_scheme_print(od_scheme_t *scheme, od_logger_t *logger, int routes_only) +void od_config_print(od_config_t *config, od_logger_t *logger, int routes_only) { od_log(logger, "config", NULL, NULL, "daemonize %s", - od_scheme_yes_no(scheme->daemonize)); - if (scheme->pid_file) + od_config_yes_no(config->daemonize)); + if (config->pid_file) od_log(logger, "config", NULL, NULL, - "pid_file %s", scheme->pid_file); + "pid_file %s", config->pid_file); if (routes_only) goto log_routes; - if (scheme->log_format) + if (config->log_format) od_log(logger, "config", NULL, NULL, - "log_format %s", scheme->log_format); - if (scheme->log_file) + "log_format %s", config->log_format); + if (config->log_file) od_log(logger, "config", NULL, NULL, - "log_file %s", scheme->log_file); + "log_file %s", config->log_file); od_log(logger, "config", NULL, NULL, "log_to_stdout %s", - od_scheme_yes_no(scheme->log_to_stdout)); + od_config_yes_no(config->log_to_stdout)); od_log(logger, "config", NULL, NULL, "log_syslog %s", - od_scheme_yes_no(scheme->log_syslog)); - if (scheme->log_syslog_ident) + od_config_yes_no(config->log_syslog)); + if (config->log_syslog_ident) od_log(logger, "config", NULL, NULL, - "log_syslog_ident %s", scheme->log_syslog_ident); - if (scheme->log_syslog_facility) + "log_syslog_ident %s", config->log_syslog_ident); + if (config->log_syslog_facility) od_log(logger, "config", NULL, NULL, - "log_syslog_facility %s", scheme->log_syslog_facility); + "log_syslog_facility %s", config->log_syslog_facility); od_log(logger, "config", NULL, NULL, "log_debug %s", - od_scheme_yes_no(scheme->log_debug)); + od_config_yes_no(config->log_debug)); od_log(logger, "config", NULL, NULL, "log_config %s", - od_scheme_yes_no(scheme->log_config)); + od_config_yes_no(config->log_config)); od_log(logger, "config", NULL, NULL, "log_session %s", - od_scheme_yes_no(scheme->log_session)); + od_config_yes_no(config->log_session)); od_log(logger, "config", NULL, NULL, "log_query %s", - od_scheme_yes_no(scheme->log_query)); + od_config_yes_no(config->log_query)); od_log(logger, "config", NULL, NULL, "log_stats %s", - od_scheme_yes_no(scheme->log_stats)); + od_config_yes_no(config->log_stats)); od_log(logger, "config", NULL, NULL, - "stats_interval %d", scheme->stats_interval); + "stats_interval %d", config->stats_interval); od_log(logger, "config", NULL, NULL, - "readahead %d", scheme->readahead); + "readahead %d", config->readahead); od_log(logger, "config", NULL, NULL, "nodelay %s", - od_scheme_yes_no(scheme->nodelay)); + od_config_yes_no(config->nodelay)); od_log(logger, "config", NULL, NULL, - "keepalive %d", scheme->keepalive); - if (scheme->client_max_set) + "keepalive %d", config->keepalive); + if (config->client_max_set) od_log(logger, "config", NULL, NULL, - "client_max %d", scheme->client_max); + "client_max %d", config->client_max); od_log(logger, "config", NULL, NULL, - "pipeline %d", scheme->pipeline); + "pipeline %d", config->pipeline); od_log(logger, "config", NULL, NULL, - "cache %d", scheme->cache); + "cache %d", config->cache); od_log(logger, "config", NULL, NULL, - "cache_chunk %d", scheme->cache_chunk); + "cache_chunk %d", config->cache_chunk); od_log(logger, "config", NULL, NULL, - "cache_coroutine %d", scheme->cache_coroutine); + "cache_coroutine %d", config->cache_coroutine); od_log(logger, "config", NULL, NULL, - "workers %d", scheme->workers); + "workers %d", config->workers); od_log(logger, "config", NULL, NULL, - "resolvers %d", scheme->resolvers); + "resolvers %d", config->resolvers); od_log(logger, "config", NULL, NULL, ""); od_list_t *i; - od_list_foreach(&scheme->listen, i) + od_list_foreach(&config->listen, i) { - od_schemelisten_t *listen; - listen = od_container_of(i, od_schemelisten_t, link); + od_configlisten_t *listen; + listen = od_container_of(i, od_configlisten_t, link); od_log(logger, "config", NULL, NULL, "listen"); od_log(logger, "config", NULL, NULL, " host %s", listen->host); @@ -906,9 +906,9 @@ void od_scheme_print(od_scheme_t *scheme, od_logger_t *logger, int routes_only) od_log(logger, "config", NULL, NULL, ""); } log_routes:; - od_list_foreach(&scheme->routes, i) { - od_schemeroute_t *route; - route = od_container_of(i, od_schemeroute_t, link); + od_list_foreach(&config->routes, i) { + od_configroute_t *route; + route = od_container_of(i, od_configroute_t, link); od_log(logger, "config", NULL, NULL, "route %s.%s.%d %s", route->db_name, route->user_name, route->version, @@ -943,7 +943,7 @@ log_routes:; " client_max %d", route->client_max); od_log(logger, "config", NULL, NULL, " client_fwd_error %s", - od_scheme_yes_no(route->client_fwd_error)); + od_config_yes_no(route->client_fwd_error)); od_log(logger, "config", NULL, NULL, " storage %s", route->storage_name); od_log(logger, "config", NULL, NULL, @@ -977,12 +977,12 @@ log_routes:; " storage_user %s", route->storage_user); od_log(logger, "config", NULL, NULL, " log_debug %s", - od_scheme_yes_no(route->log_debug)); + od_config_yes_no(route->log_debug)); od_log(logger, "config", NULL, NULL, ""); } } -int od_scheme_merge(od_scheme_t *scheme, od_logger_t *logger, od_scheme_t *src) +int od_config_merge(od_config_t *config, od_logger_t *logger, od_config_t *src) { int count_obsolete = 0; int count_deleted = 0; @@ -990,9 +990,9 @@ int od_scheme_merge(od_scheme_t *scheme, od_logger_t *logger, od_scheme_t *src) /* mark all routes obsolete */ od_list_t *i; - od_list_foreach(&scheme->routes, i) { - od_schemeroute_t *route; - route = od_container_of(i, od_schemeroute_t, link); + od_list_foreach(&config->routes, i) { + od_configroute_t *route; + route = od_container_of(i, od_configroute_t, link); route->is_obsolete = 1; count_obsolete++; } @@ -1000,14 +1000,14 @@ int od_scheme_merge(od_scheme_t *scheme, od_logger_t *logger, od_scheme_t *src) /* select new routes */ od_list_t *n; od_list_foreach_safe(&src->routes, i, n) { - od_schemeroute_t *route; - route = od_container_of(i, od_schemeroute_t, link); + od_configroute_t *route; + route = od_container_of(i, od_configroute_t, link); /* find and compare origin route */ - od_schemeroute_t *origin; - origin = od_schemeroute_match_latest(scheme, route->db_name, route->user_name); + od_configroute_t *origin; + origin = od_configroute_match_latest(config, route->db_name, route->user_name); if (origin) { - if (od_schemeroute_compare(origin, route)) { + if (od_configroute_compare(origin, route)) { origin->is_obsolete = 0; count_obsolete--; continue; @@ -1030,19 +1030,19 @@ int od_scheme_merge(od_scheme_t *scheme, od_logger_t *logger, od_scheme_t *src) od_list_unlink(&route->link); od_list_init(&route->link); - od_list_append(&scheme->routes, &route->link); + od_list_append(&config->routes, &route->link); count_new++; } - /* try to free obsolete schemes, which are unused by any + /* try to free obsolete configs, which are unused by any * route at the moment */ if (count_obsolete) { - od_list_foreach_safe(&scheme->routes, i, n) { - od_schemeroute_t *route; - route = od_container_of(i, od_schemeroute_t, link); + od_list_foreach_safe(&config->routes, i, n) { + od_configroute_t *route; + route = od_container_of(i, od_configroute_t, link); if (route->is_obsolete && route->refs == 0) { - od_schemeroute_free(route); + od_configroute_free(route); count_deleted++; count_obsolete--; } diff --git a/sources/scheme.h b/sources/config.h similarity index 69% rename from sources/scheme.h rename to sources/config.h index a3b03621..eab6d2e5 100644 --- a/sources/scheme.h +++ b/sources/config.h @@ -1,5 +1,5 @@ -#ifndef OD_SCHEME_H -#define OD_SCHEME_H +#ifndef OD_CONFIG_H +#define OD_CONFIG_H /* * Odissey. @@ -7,10 +7,10 @@ * Advanced PostgreSQL connection pooler. */ -typedef struct od_schemestorage od_schemestorage_t; -typedef struct od_schemeroute od_schemeroute_t; -typedef struct od_schemelisten od_schemelisten_t; -typedef struct od_scheme od_scheme_t; +typedef struct od_configstorage od_configstorage_t; +typedef struct od_configroute od_configroute_t; +typedef struct od_configlisten od_configlisten_t; +typedef struct od_config od_config_t; typedef enum { @@ -42,7 +42,7 @@ typedef enum OD_TLS_VERIFY_FULL } od_tls_t; -struct od_schemestorage +struct od_configstorage { char *name; char *type; @@ -58,7 +58,7 @@ struct od_schemestorage od_list_t link; }; -struct od_schemeroute +struct od_configroute { /* id */ char *db_name; @@ -80,7 +80,7 @@ struct od_schemeroute char *password; int password_len; /* storage */ - od_schemestorage_t *storage; + od_configstorage_t *storage; char *storage_name; char *storage_db; char *storage_user; @@ -103,7 +103,7 @@ struct od_schemeroute od_list_t link; }; -struct od_schemelisten +struct od_configlisten { char *host; int port; @@ -117,7 +117,7 @@ struct od_schemelisten od_list_t link; }; -struct od_scheme +struct od_config { /* main */ int daemonize; @@ -153,53 +153,53 @@ struct od_scheme od_list_t listen; }; -void od_scheme_init(od_scheme_t*); -void od_scheme_free(od_scheme_t*); -int od_scheme_validate(od_scheme_t*, od_logger_t*); -void od_scheme_print(od_scheme_t*, od_logger_t*, int); -int od_scheme_merge(od_scheme_t*, od_logger_t*, od_scheme_t*); +void od_config_init(od_config_t*); +void od_config_free(od_config_t*); +int od_config_validate(od_config_t*, od_logger_t*); +void od_config_print(od_config_t*, od_logger_t*, int); +int od_config_merge(od_config_t*, od_logger_t*, od_config_t*); -od_schemelisten_t* -od_schemelisten_add(od_scheme_t*); +od_configlisten_t* +od_configlisten_add(od_config_t*); -od_schemestorage_t* -od_schemestorage_add(od_scheme_t*); +od_configstorage_t* +od_configstorage_add(od_config_t*); -od_schemestorage_t* -od_schemestorage_copy(od_schemestorage_t*); +od_configstorage_t* +od_configstorage_copy(od_configstorage_t*); -od_schemestorage_t* -od_schemestorage_match(od_scheme_t*, char*); +od_configstorage_t* +od_configstorage_match(od_config_t*, char*); -void od_schemestorage_free(od_schemestorage_t*); +void od_configstorage_free(od_configstorage_t*); static inline void -od_schemeroute_ref(od_schemeroute_t *route) +od_configroute_ref(od_configroute_t *route) { route->refs++; } static inline void -od_schemeroute_unref(od_schemeroute_t *route) +od_configroute_unref(od_configroute_t *route) { assert(route->refs > 0); route->refs--; } -od_schemeroute_t* -od_schemeroute_add(od_scheme_t*, uint64_t); +od_configroute_t* +od_configroute_add(od_config_t*, uint64_t); -void od_schemeroute_free(od_schemeroute_t*); +void od_configroute_free(od_configroute_t*); -od_schemeroute_t* -od_schemeroute_forward(od_scheme_t*, char*, char*); +od_configroute_t* +od_configroute_forward(od_config_t*, char*, char*); -od_schemeroute_t* -od_schemeroute_match(od_scheme_t*, char*, char*); +od_configroute_t* +od_configroute_match(od_config_t*, char*, char*); -od_schemeroute_t* -od_schemeroute_match_latest(od_scheme_t*, char*, char*); +od_configroute_t* +od_configroute_match_latest(od_config_t*, char*, char*); -int od_schemeroute_compare(od_schemeroute_t*, od_schemeroute_t*); +int od_configroute_compare(od_configroute_t*, od_configroute_t*); -#endif /* OD_SCHEME_H */ +#endif /* OD_CONFIG_H */ diff --git a/sources/config_mgr.h b/sources/config_mgr.h new file mode 100644 index 00000000..b2d610cf --- /dev/null +++ b/sources/config_mgr.h @@ -0,0 +1,35 @@ +#ifndef OD_CONFIG_MGR_H +#define OD_CONFIG_MGR_H + +/* + * Odissey. + * + * Advanced PostgreSQL connection pooler. +*/ + +typedef struct od_configmgr od_configmgr_t; + +struct od_configmgr +{ + uint64_t version; +}; + +static inline void +od_configmgr_init(od_configmgr_t *mgr) +{ + mgr->version = 0; +} + +static inline uint64_t +od_configmgr_version(od_configmgr_t *mgr) +{ + return mgr->version; +} + +static inline uint64_t +od_configmgr_version_next(od_configmgr_t *mgr) +{ + return ++mgr->version; +} + +#endif /* OD_CONFIG_MGR_H */ diff --git a/sources/config_reader.c b/sources/config_reader.c index de3ac9ed..c7486976 100644 --- a/sources/config_reader.c +++ b/sources/config_reader.c @@ -31,8 +31,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/parser.h" #include "sources/config_reader.h" @@ -99,7 +99,7 @@ enum typedef struct { od_parser_t parser; - od_scheme_t *scheme; + od_config_t *config; od_error_t *error; char *config_file; char *data; @@ -349,10 +349,10 @@ error: static int od_configreader_listen(od_configreader_t *reader) { - od_scheme_t *scheme = reader->scheme; + od_config_t *config = reader->config; - od_schemelisten_t *listen; - listen = od_schemelisten_add(scheme); + od_configlisten_t *listen; + listen = od_configlisten_add(config); if (listen == NULL) { return -1; } @@ -440,8 +440,8 @@ od_configreader_listen(od_configreader_t *reader) static int od_configreader_storage(od_configreader_t *reader) { - od_schemestorage_t *storage; - storage = od_schemestorage_add(reader->scheme); + od_configstorage_t *storage; + storage = od_configstorage_add(reader->config); if (storage == NULL) return -1; /* name */ @@ -550,15 +550,15 @@ od_configreader_route(od_configreader_t *reader, char *db_name, int db_name_len, user_name_len = strlen(user_name); /* ensure route does not exists and add new route */ - od_schemeroute_t *route; - route = od_schemeroute_match(reader->scheme, db_name, user_name); + od_configroute_t *route; + route = od_configroute_match(reader->config, db_name, user_name); if (route) { od_errorf(reader->error, "route '%s.%s': is redefined", db_name, user_name); free(user_name); return -1; } - route = od_schemeroute_add(reader->scheme, reader->version); + route = od_configroute_add(reader->config, reader->version); if (route == NULL) { free(user_name); return -1; @@ -750,8 +750,8 @@ od_configreader_database(od_configreader_t *reader) /* } */ if (token.value.num == '}') { /* make sure that db.default is defined */ - od_schemeroute_t *route; - route = od_schemeroute_match(reader->scheme, db_name, "default"); + od_configroute_t *route; + route = od_configroute_match(reader->config, db_name, "default"); if (! route) { od_errorf(reader->error, "route '%s.default': is not defined", db_name); @@ -794,7 +794,7 @@ error: static int od_configreader_parse(od_configreader_t *reader) { - od_scheme_t *scheme = reader->scheme; + od_config_t *config = reader->config; for (;;) { od_token_t token; @@ -822,7 +822,7 @@ od_configreader_parse(od_configreader_t *reader) char *config_file; if (! od_configreader_string(reader, &config_file)) return -1; - rc = od_configreader_import(reader->scheme, reader->error, config_file, + rc = od_configreader_import(reader->config, reader->error, config_file, reader->version); free(config_file); if (rc == -1) @@ -831,123 +831,123 @@ od_configreader_parse(od_configreader_t *reader) } /* daemonize */ case OD_LDAEMONIZE: - if (! od_configreader_yes_no(reader, &scheme->daemonize)) + if (! od_configreader_yes_no(reader, &config->daemonize)) return -1; continue; /* pid_file */ case OD_LPID_FILE: - if (! od_configreader_string(reader, &scheme->pid_file)) + if (! od_configreader_string(reader, &config->pid_file)) return -1; continue; /* log_debug */ case OD_LLOG_DEBUG: - if (! od_configreader_yes_no(reader, &scheme->log_debug)) + if (! od_configreader_yes_no(reader, &config->log_debug)) return -1; continue; /* log_stdout */ case OD_LLOG_TO_STDOUT: - if (! od_configreader_yes_no(reader, &scheme->log_to_stdout)) + if (! od_configreader_yes_no(reader, &config->log_to_stdout)) return -1; continue; /* log_config */ case OD_LLOG_CONFIG: - if (! od_configreader_yes_no(reader, &scheme->log_config)) + if (! od_configreader_yes_no(reader, &config->log_config)) return -1; continue; /* log_session */ case OD_LLOG_SESSION: - if (! od_configreader_yes_no(reader, &scheme->log_session)) + if (! od_configreader_yes_no(reader, &config->log_session)) return -1; continue; /* log_query */ case OD_LLOG_QUERY: - if (! od_configreader_yes_no(reader, &scheme->log_query)) + if (! od_configreader_yes_no(reader, &config->log_query)) return -1; continue; /* log_stats */ case OD_LLOG_STATS: - if (! od_configreader_yes_no(reader, &scheme->log_stats)) + if (! od_configreader_yes_no(reader, &config->log_stats)) return -1; continue; /* log_format */ case OD_LLOG_FORMAT: - if (! od_configreader_string(reader, &scheme->log_format)) + if (! od_configreader_string(reader, &config->log_format)) return -1; continue; /* log_file */ case OD_LLOG_FILE: - if (! od_configreader_string(reader, &scheme->log_file)) + if (! od_configreader_string(reader, &config->log_file)) return -1; continue; /* log_syslog */ case OD_LLOG_SYSLOG: - if (! od_configreader_yes_no(reader, &scheme->log_syslog)) + if (! od_configreader_yes_no(reader, &config->log_syslog)) return -1; continue; /* log_syslog_ident */ case OD_LLOG_SYSLOG_IDENT: - if (! od_configreader_string(reader, &scheme->log_syslog_ident)) + if (! od_configreader_string(reader, &config->log_syslog_ident)) return -1; continue; /* log_syslog_facility */ case OD_LLOG_SYSLOG_FACILITY: - if (! od_configreader_string(reader, &scheme->log_syslog_facility)) + if (! od_configreader_string(reader, &config->log_syslog_facility)) return -1; continue; /* stats_interval */ case OD_LSTATS_INTERVAL: - if (! od_configreader_number(reader, &scheme->stats_interval)) + if (! od_configreader_number(reader, &config->stats_interval)) return -1; continue; /* client_max */ case OD_LCLIENT_MAX: - if (! od_configreader_number(reader, &scheme->client_max)) + if (! od_configreader_number(reader, &config->client_max)) return -1; - scheme->client_max_set = 1; + config->client_max_set = 1; continue; /* readahead */ case OD_LREADAHEAD: - if (! od_configreader_number(reader, &scheme->readahead)) + if (! od_configreader_number(reader, &config->readahead)) return -1; continue; /* nodelay */ case OD_LNODELAY: - if (! od_configreader_yes_no(reader, &scheme->nodelay)) + if (! od_configreader_yes_no(reader, &config->nodelay)) return -1; continue; /* keepalive */ case OD_LKEEPALIVE: - if (! od_configreader_number(reader, &scheme->keepalive)) + if (! od_configreader_number(reader, &config->keepalive)) return -1; continue; /* workers */ case OD_LWORKERS: - if (! od_configreader_number(reader, &scheme->workers)) + if (! od_configreader_number(reader, &config->workers)) return -1; continue; /* resolvers */ case OD_LRESOLVERS: - if (! od_configreader_number(reader, &scheme->resolvers)) + if (! od_configreader_number(reader, &config->resolvers)) return -1; continue; /* pipeline */ case OD_LPIPELINE: - if (! od_configreader_number(reader, &scheme->pipeline)) + if (! od_configreader_number(reader, &config->pipeline)) return -1; continue; /* cache */ case OD_LCACHE: - if (! od_configreader_number(reader, &scheme->cache)) + if (! od_configreader_number(reader, &config->cache)) return -1; continue; /* cache_chunk */ case OD_LCACHE_CHUNK: - if (! od_configreader_number(reader, &scheme->cache_chunk)) + if (! od_configreader_number(reader, &config->cache_chunk)) return -1; continue; /* cache_coroutine */ case OD_LCACHE_COROUTINE: - if (! od_configreader_number(reader, &scheme->cache_coroutine)) + if (! od_configreader_number(reader, &config->cache_coroutine)) return -1; continue; /* listen */ @@ -977,14 +977,14 @@ od_configreader_parse(od_configreader_t *reader) return -1; } -int od_configreader_import(od_scheme_t *scheme, od_error_t *error, +int od_configreader_import(od_config_t *config, od_error_t *error, char *config_file, uint64_t version) { od_configreader_t reader; memset(&reader, 0, sizeof(reader)); reader.error = error; - reader.scheme = scheme; + reader.config = config; reader.version = version; int rc; rc = od_configreader_open(&reader, config_file); diff --git a/sources/config_reader.h b/sources/config_reader.h index 533008bc..317e987d 100644 --- a/sources/config_reader.h +++ b/sources/config_reader.h @@ -7,6 +7,6 @@ * Advanced PostgreSQL connection pooler. */ -int od_configreader_import(od_scheme_t*, od_error_t*, char*, uint64_t); +int od_configreader_import(od_config_t*, od_error_t*, char*, uint64_t); #endif /* OD_CONFIG_READER_H */ diff --git a/sources/console.c b/sources/console.c index 53c4fbbc..56ca06fa 100644 --- a/sources/console.c +++ b/sources/console.c @@ -27,8 +27,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -642,7 +642,7 @@ od_console_query(od_console_t *console, od_msgconsole_t *msg_console) if (rc == -1) goto bad_command; - if (instance->scheme.log_query) { + if (instance->config.log_query) { od_debug(&instance->logger, "console", client, NULL, "%.*s", query_len, query); } diff --git a/sources/cron.c b/sources/cron.c index 3434a958..4d60c4a3 100644 --- a/sources/cron.c +++ b/sources/cron.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -67,7 +67,7 @@ od_cron_stats(od_router_t *router) if (router->route_pool.count == 0) return; - if (instance->scheme.log_stats) + if (instance->config.log_stats) { int stream_count = 0; int stream_count_allocated = 0; @@ -127,40 +127,40 @@ od_cron_stats(od_router_t *router) /* request count */ uint64_t reqs_prev = 0; reqs_prev = route->cron_stats.count_request / - instance->scheme.stats_interval; + instance->config.stats_interval; uint64_t reqs_current = 0; reqs_current = stats.count_request / - instance->scheme.stats_interval; + instance->config.stats_interval; int64_t reqs_diff; reqs_diff = reqs_current - reqs_prev; - reqs = reqs_diff / instance->scheme.stats_interval; + reqs = reqs_diff / instance->config.stats_interval; /* recv client */ uint64_t recv_client_prev = 0; recv_client_prev = route->cron_stats.recv_client / - instance->scheme.stats_interval; + instance->config.stats_interval; uint64_t recv_client_current = 0; recv_client_current = stats.recv_client / - instance->scheme.stats_interval; + instance->config.stats_interval; recv_client = (recv_client_current - recv_client_prev) / - instance->scheme.stats_interval; + instance->config.stats_interval; /* recv server */ uint64_t recv_server_prev = 0; recv_server_prev = route->cron_stats.recv_server / - instance->scheme.stats_interval; + instance->config.stats_interval; uint64_t recv_server_current = 0; recv_server_current = stats.recv_server / - instance->scheme.stats_interval; + instance->config.stats_interval; recv_server = (recv_server_current - recv_server_prev) / - instance->scheme.stats_interval; + instance->config.stats_interval; /* query time */ if (reqs_diff > 0) @@ -176,7 +176,7 @@ od_cron_stats(od_router_t *router) route->cron_stats_avg.recv_server = recv_server; route->cron_stats_avg.query_time = query_time; - if (instance->scheme.log_stats) { + if (instance->config.log_stats) { od_log(&instance->logger, "stats", NULL, NULL, "[%.*s.%.*s.%" PRIu64 "] %sclients %d, " "pool_active %d, " @@ -189,8 +189,8 @@ od_cron_stats(od_router_t *router) route->id.database, route->id.user_len, route->id.user, - route->scheme->version, - route->scheme->is_obsolete ? "(obsolete) " : "", + route->config->version, + route->config->is_obsolete ? "(obsolete) " : "", od_clientpool_total(&route->client_pool), route->server_pool.count_active, route->server_pool.count_idle, @@ -209,24 +209,24 @@ od_cron_expire_mark(od_server_t *server, void *arg) od_instance_t *instance = router->system->instance; od_route_t *route = server->route; - /* expire by server scheme obsoletion */ - if (route->scheme->is_obsolete && + /* expire by server config obsoletion */ + if (route->config->is_obsolete && od_clientpool_total(&route->client_pool) == 0) { od_debug(&instance->logger, "expire", NULL, server, - "scheme marked as obsolete, schedule closing"); + "config marked as obsolete, schedule closing"); od_serverpool_set(&route->server_pool, server, OD_SEXPIRE); return 0; } /* expire by time-to-live */ - if (! route->scheme->pool_ttl) + if (! route->config->pool_ttl) return 0; od_debug(&instance->logger, "expire", NULL, server, "idle time: %d", server->idle_time); - if (server->idle_time < route->scheme->pool_ttl) { + if (server->idle_time < route->config->pool_ttl) { server->idle_time++; return 0; } @@ -251,7 +251,7 @@ od_cron_expire(od_cron_t *cron) * - If a server idle time is equal to ttl, then move * it to the EXPIRE queue. * - * - If a server scheme marked as obsolete and route has + * - If a server config marked as obsolete and route has * no remaining clients, then move it to the EXPIRE queue. * * - Add plus one idle second on each traversal. @@ -290,7 +290,7 @@ od_cron_expire(od_cron_t *cron) } /* cleanup unused dynamic routes and obsolete - * db schemes */ + * db configs */ od_routepool_gc(&router->route_pool); } @@ -308,7 +308,7 @@ od_cron(void *arg) od_cron_expire(cron); /* update stats */ - if (++stats_tick >= instance->scheme.stats_interval) { + if (++stats_tick >= instance->config.stats_interval) { od_cron_stats(router); stats_tick = 0; } diff --git a/sources/deploy.c b/sources/deploy.c index 91f69008..e33e4552 100644 --- a/sources/deploy.c +++ b/sources/deploy.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" diff --git a/sources/frontend.c b/sources/frontend.c index e1640ed0..4ee539e9 100644 --- a/sources/frontend.c +++ b/sources/frontend.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -220,7 +220,7 @@ od_frontend_startup(od_client_t *client) /* client ssl request */ rc = od_tls_frontend_accept(client, &instance->logger, - client->scheme_listen, + client->config_listen, client->tls); if (rc == -1) return -1; @@ -364,7 +364,7 @@ od_frontend_setup(od_client_t *client) /* configure console client */ int rc; - if (route->scheme->storage->storage_type == OD_STORAGETYPE_LOCAL) { + if (route->config->storage->storage_type == OD_STORAGETYPE_LOCAL) { rc = od_frontend_setup_console(stream); if (rc == -1) return OD_FE_EATTACH; @@ -445,7 +445,7 @@ od_frontend_setup(od_client_t *client) client->time_setup = machine_time(); - if (instance->scheme.log_session) { + if (instance->config.log_session) { od_log(&instance->logger, "setup", client, NULL, "login time: %d microseconds", (client->time_setup - client->time_accept)); @@ -460,7 +460,7 @@ static inline int od_frontend_stream_hit_limit(od_client_t *client) { od_instance_t *instance = client->system->instance; - return shapito_stream_used(client->stream) >= instance->scheme.pipeline; + return shapito_stream_used(client->stream) >= instance->config.pipeline; } static od_frontend_rc_t @@ -571,7 +571,7 @@ od_frontend_remote_client(od_client_t *client) server->is_copy = 0; break; case SHAPITO_FE_QUERY: - if (instance->scheme.log_query) { + if (instance->config.log_query) { uint32_t query_len; char *query; rc = shapito_be_read_query(&query, &query_len, request, request_size); @@ -663,7 +663,7 @@ od_frontend_remote_server(od_client_t *client) return OD_FE_ECLIENT_READ; /* handle transaction pooling */ - if (route->scheme->pool == OD_POOLING_TRANSACTION) { + if (route->config->pool == OD_POOLING_TRANSACTION) { if (! server->is_transaction) { /* cleanup server */ rc = od_reset(server, client->stream); @@ -814,7 +814,7 @@ od_frontend_cleanup(od_client_t *client, char *context, case OD_FE_TERMINATE: case OD_FE_OK: /* graceful disconnect */ - if (instance->scheme.log_session) { + if (instance->config.log_session) { od_log(&instance->logger, context, client, server, "client disconnected"); } @@ -875,7 +875,7 @@ od_frontend_cleanup(od_client_t *client, char *context, { /* server attached to client and connection failed */ od_route_t *route = client->route; - if (route->scheme->client_fwd_error && server->stats.count_error) { + if (route->config->client_fwd_error && server->stats.count_error) { /* forward server error to client */ od_frontend_error_fwd(client); } else { @@ -927,7 +927,7 @@ void od_frontend(void *arg) od_instance_t *instance = client->system->instance; /* log client connection */ - if (instance->scheme.log_session) { + if (instance->config.log_session) { char peer[128]; od_getpeername(client->io, peer, sizeof(peer), 1, 1); od_log(&instance->logger, "startup", client, NULL, @@ -964,7 +964,7 @@ void od_frontend(void *arg) od_routercancel_init(&cancel); rc = od_router_cancel(client, &cancel); if (rc == 0) { - od_cancel(client->system, client->stream, cancel.scheme, + od_cancel(client->system, client->stream, cancel.config, &cancel.key, &cancel.id); od_routercancel_free(&cancel); } @@ -1005,13 +1005,13 @@ void od_frontend(void *arg) case OD_ROK: { od_route_t *route = client->route; - if (instance->scheme.log_session) { + if (instance->config.log_session) { od_log(&instance->logger, "startup", client, NULL, "route '%s.%s' to '%s.%s'", shapito_parameter_value(client->startup.database), shapito_parameter_value(client->startup.user), - route->scheme->db_name, - route->scheme->user_name); + route->config->db_name, + route->config->user_name); } break; } @@ -1039,7 +1039,7 @@ void od_frontend(void *arg) /* main */ od_route_t *route = client->route; - switch (route->scheme->storage->storage_type) { + switch (route->config->storage->storage_type) { case OD_STORAGETYPE_REMOTE: frontend_rc = od_frontend_remote(client); break; diff --git a/sources/instance.c b/sources/instance.c index 2cb053b9..a0e30c15 100644 --- a/sources/instance.c +++ b/sources/instance.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -53,8 +53,8 @@ void od_instance_init(od_instance_t *instance) { od_pid_init(&instance->pid); od_logger_init(&instance->logger, &instance->pid); - od_scheme_init(&instance->scheme); - od_schememgr_init(&instance->scheme_mgr); + od_config_init(&instance->config); + od_configmgr_init(&instance->config_mgr); od_idmgr_init(&instance->id_mgr); shapito_cache_init(&instance->stream_cache); instance->config_file = NULL; @@ -71,9 +71,9 @@ void od_instance_init(od_instance_t *instance) void od_instance_free(od_instance_t *instance) { - if (instance->scheme.pid_file) - od_pid_unlink(&instance->pid, instance->scheme.pid_file); - od_scheme_free(&instance->scheme); + if (instance->config.pid_file) + od_pid_unlink(&instance->pid, instance->config.pid_file); + od_config_free(&instance->config); od_logger_close(&instance->logger); shapito_cache_free(&instance->stream_cache); machinarium_free(); @@ -105,40 +105,40 @@ int od_instance_main(od_instance_t *instance, int argc, char **argv) instance->config_file = argv[1]; /* read config file */ - uint64_t scheme_version; - scheme_version = od_schememgr_version(&instance->scheme_mgr); + uint64_t config_version; + config_version = od_configmgr_version(&instance->config_mgr); od_error_t error; od_error_init(&error); int rc; - rc = od_configreader_import(&instance->scheme, &error, instance->config_file, - scheme_version); + rc = od_configreader_import(&instance->config, &error, instance->config_file, + config_version); if (rc == -1) { od_error(&instance->logger, "config", NULL, NULL, "%s", error.error); return -1; } - /* validate configuration scheme */ - rc = od_scheme_validate(&instance->scheme, &instance->logger); + /* validate configuration config */ + rc = od_config_validate(&instance->config, &instance->logger); if (rc == -1) return -1; /* set log in format */ - od_logger_set_format(&instance->logger, instance->scheme.log_format); + od_logger_set_format(&instance->logger, instance->config.log_format); /* set log debug messages */ - od_logger_set_debug(&instance->logger, instance->scheme.log_debug); + od_logger_set_debug(&instance->logger, instance->config.log_debug); /* set log to stdout */ - od_logger_set_stdout(&instance->logger, instance->scheme.log_to_stdout); + od_logger_set_stdout(&instance->logger, instance->config.log_to_stdout); /* set cache limits */ - shapito_cache_set_limit(&instance->stream_cache, instance->scheme.cache); - shapito_cache_set_limit_size(&instance->stream_cache, instance->scheme.cache_chunk); + shapito_cache_set_limit(&instance->stream_cache, instance->config.cache); + shapito_cache_set_limit_size(&instance->stream_cache, instance->config.cache_chunk); /* run as daemon */ - if (instance->scheme.daemonize) { + if (instance->config.daemonize) { rc = od_daemonize(); if (rc == -1) return -1; @@ -147,26 +147,26 @@ int od_instance_main(od_instance_t *instance, int argc, char **argv) } /* init machinarium machinery */ - machinarium_set_pool_size(instance->scheme.resolvers); - machinarium_set_coroutine_cache_size(instance->scheme.cache_coroutine); + machinarium_set_pool_size(instance->config.resolvers); + machinarium_set_coroutine_cache_size(instance->config.cache_coroutine); machinarium_init(); /* reopen log file after config parsing */ - if (instance->scheme.log_file) { - rc = od_logger_open(&instance->logger, instance->scheme.log_file); + if (instance->config.log_file) { + rc = od_logger_open(&instance->logger, instance->config.log_file); if (rc == -1) { od_error(&instance->logger, "init", NULL, NULL, "failed to open log file '%s'", - instance->scheme.log_file); + instance->config.log_file); return -1; } } /* syslog */ - if (instance->scheme.log_syslog) { + if (instance->config.log_syslog) { od_logger_open_syslog(&instance->logger, - instance->scheme.log_syslog_ident, - instance->scheme.log_syslog_facility); + instance->config.log_syslog_ident, + instance->config.log_syslog_facility); } od_log(&instance->logger, "init", NULL, NULL, "odissey (git: %s %s)", OD_VERSION_GIT, @@ -178,18 +178,18 @@ int od_instance_main(od_instance_t *instance, int argc, char **argv) instance->config_file); od_log(&instance->logger, "init", NULL, NULL, ""); - if (instance->scheme.log_config) - od_scheme_print(&instance->scheme, &instance->logger, 0); + if (instance->config.log_config) + od_config_print(&instance->config, &instance->logger, 0); /* create pid file */ - if (instance->scheme.pid_file) - od_pid_create(&instance->pid, instance->scheme.pid_file); + if (instance->config.pid_file) + od_pid_create(&instance->pid, instance->config.pid_file); /* seed id manager */ od_idmgr_seed(&instance->id_mgr); /* is multi-worker deploy */ - instance->is_shared = instance->scheme.workers > 1; + instance->is_shared = instance->config.workers > 1; /* prepare system services */ od_pooler_t pooler; diff --git a/sources/instance.h b/sources/instance.h index 6e8f8741..84d13342 100644 --- a/sources/instance.h +++ b/sources/instance.h @@ -14,8 +14,8 @@ struct od_instance od_pid_t pid; od_logger_t logger; od_idmgr_t id_mgr; - od_schememgr_t scheme_mgr; - od_scheme_t scheme; + od_configmgr_t config_mgr; + od_config_t config; shapito_cache_t stream_cache; int is_shared; char *config_file; diff --git a/sources/logger.c b/sources/logger.c index 51784a7f..d4360086 100644 --- a/sources/logger.c +++ b/sources/logger.c @@ -32,8 +32,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -371,12 +371,12 @@ void od_logger_write(od_logger_t *logger, od_logger_level_t level, if (! is_debug) { od_client_t *client_ref = client; od_server_t *server_ref = server; - if (client_ref && client_ref->scheme) { - is_debug = client_ref->scheme->log_debug; + if (client_ref && client_ref->config) { + is_debug = client_ref->config->log_debug; } else if (server_ref && server_ref->route) { od_route_t *route = server_ref->route; - is_debug = route->scheme->log_debug; + is_debug = route->config->log_debug; } } if (! is_debug) diff --git a/sources/main.c b/sources/main.c index e9f28850..80fc191c 100644 --- a/sources/main.c +++ b/sources/main.c @@ -23,8 +23,8 @@ #include "sources/pid.h" #include "sources/id.h" #include "sources/logger.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/instance.h" diff --git a/sources/pooler.c b/sources/pooler.c index 24dd8595..026c3b01 100644 --- a/sources/pooler.c +++ b/sources/pooler.c @@ -28,8 +28,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -62,7 +62,7 @@ od_pooler_server(void *arg) /* accepted client io is not attached to epoll context yet */ machine_io_t *client_io; int rc; - rc = machine_accept(server->io, &client_io, server->scheme->backlog, + rc = machine_accept(server->io, &client_io, server->config->backlog, 0, UINT32_MAX); if (rc == -1) { od_error(&instance->logger, "server", NULL, NULL, @@ -75,10 +75,10 @@ od_pooler_server(void *arg) } /* set network options */ - machine_set_nodelay(client_io, instance->scheme.nodelay); - if (instance->scheme.keepalive > 0) - machine_set_keepalive(client_io, 1, instance->scheme.keepalive); - rc = machine_set_readahead(client_io, instance->scheme.readahead); + machine_set_nodelay(client_io, instance->config.nodelay); + if (instance->config.keepalive > 0) + machine_set_keepalive(client_io, 1, instance->config.keepalive); + rc = machine_set_readahead(client_io, instance->config.readahead); if (rc == -1) { od_error(&instance->logger, "server", NULL, NULL, "failed to set client readahead: %s", @@ -99,7 +99,7 @@ od_pooler_server(void *arg) } od_idmgr_generate(&instance->id_mgr, &client->id, "c"); client->io = client_io; - client->scheme_listen = server->scheme; + client->config_listen = server->config; client->tls = server->tls; client->time_accept = machine_time(); @@ -114,7 +114,7 @@ od_pooler_server(void *arg) } static inline int -od_pooler_server_start(od_pooler_t *pooler, od_schemelisten_t *scheme, +od_pooler_server_start(od_pooler_t *pooler, od_configlisten_t *config, struct addrinfo *addr) { od_instance_t *instance = pooler->system.instance; @@ -125,13 +125,13 @@ od_pooler_server_start(od_pooler_t *pooler, od_schemelisten_t *scheme, "failed to allocate pooler server object"); return -1; } - server->scheme = scheme; + server->config = config; server->addr = addr; server->system = &pooler->system; /* create server tls */ - if (server->scheme->tls_mode != OD_TLS_DISABLE) { - server->tls = od_tls_frontend(server->scheme); + if (server->config->tls_mode != OD_TLS_DISABLE) { + server->tls = od_tls_frontend(server->config); if (server->tls == NULL) { od_error(&instance->logger, "server", NULL, NULL, "failed to create tls handler"); @@ -194,10 +194,10 @@ od_pooler_main(od_pooler_t *pooler) od_instance_t *instance = pooler->system.instance; int binded = 0; od_list_t *i; - od_list_foreach(&instance->scheme.listen, i) + od_list_foreach(&instance->config.listen, i) { - od_schemelisten_t *listen; - listen = od_container_of(i, od_schemelisten_t, link); + od_configlisten_t *listen; + listen = od_container_of(i, od_configlisten_t, link); /* listen '*' */ struct addrinfo *hints_ptr = NULL; @@ -254,25 +254,25 @@ od_pooler_config_import(od_pooler_t *pooler) od_log(&instance->logger, "config", NULL, NULL, "importing changes from '%s'", instance->config_file); - od_scheme_t scheme; - od_scheme_init(&scheme); - uint64_t scheme_version; - scheme_version = od_schememgr_version_next(&instance->scheme_mgr); + od_config_t config; + od_config_init(&config); + uint64_t config_version; + config_version = od_configmgr_version_next(&instance->config_mgr); od_error_t error; od_error_init(&error); int rc; - rc = od_configreader_import(&scheme, &error, instance->config_file, - scheme_version); + rc = od_configreader_import(&config, &error, instance->config_file, + config_version); if (rc == -1) { od_error(&instance->logger, "config", NULL, NULL, "%s", error.error); - od_scheme_free(&scheme); + od_config_free(&config); return; } - rc = od_scheme_validate(&scheme, &instance->logger); + rc = od_config_validate(&config, &instance->logger); if (rc == -1) { - od_scheme_free(&scheme); + od_config_free(&config); return; } @@ -282,13 +282,13 @@ od_pooler_config_import(od_pooler_t *pooler) * present in new config file. */ int has_updates; - has_updates = od_scheme_merge(&instance->scheme, &instance->logger, &scheme); + has_updates = od_config_merge(&instance->config, &instance->logger, &config); /* free unused settings */ - od_scheme_free(&scheme); + od_config_free(&config); - if (has_updates && instance->scheme.log_config) - od_scheme_print(&instance->scheme, &instance->logger, 1); + if (has_updates && instance->config.log_config) + od_config_print(&instance->config, &instance->logger, 1); } static inline void @@ -361,7 +361,7 @@ od_pooler(void *arg) /* start worker threads */ od_workerpool_t *worker_pool = pooler->system.worker_pool; - rc = od_workerpool_start(worker_pool, &pooler->system, instance->scheme.workers); + rc = od_workerpool_start(worker_pool, &pooler->system, instance->config.workers); if (rc == -1) return; diff --git a/sources/pooler.h b/sources/pooler.h index 15184adf..39dbf796 100644 --- a/sources/pooler.h +++ b/sources/pooler.h @@ -13,7 +13,7 @@ typedef struct od_poolerserver od_poolerserver_t; struct od_poolerserver { struct addrinfo *addr; - od_schemelisten_t *scheme; + od_configlisten_t *config; machine_io_t *io; machine_tls_t *tls; od_system_t *system; diff --git a/sources/reset.c b/sources/reset.c index 39504a79..80908bea 100644 --- a/sources/reset.c +++ b/sources/reset.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -64,7 +64,7 @@ int od_reset(od_server_t *server, shapito_stream_t *stream) } /* support route rollback off */ - if (! route->scheme->pool_rollback) { + if (! route->config->pool_rollback) { if (server->is_transaction) { od_log(&instance->logger, "reset", server->client, server, "in active transaction, closing"); @@ -73,7 +73,7 @@ int od_reset(od_server_t *server, shapito_stream_t *stream) } /* support route cancel off */ - if (! route->scheme->pool_cancel) { + if (! route->config->pool_cancel) { if (! od_server_sync_is(server)) { od_log(&instance->logger, "reset", server->client, server, "not synchronized, closing"); @@ -129,7 +129,7 @@ int od_reset(od_server_t *server, shapito_stream_t *stream) wait_try_cancel++; rc = od_cancel(server->system, stream, - route->scheme->storage, &server->key, + route->config->storage, &server->key, &server->id); if (rc == -1) goto error; @@ -143,7 +143,7 @@ int od_reset(od_server_t *server, shapito_stream_t *stream) /* send rollback in case server has an active * transaction running */ - if (route->scheme->pool_rollback) { + if (route->config->pool_rollback) { if (server->is_transaction) { char query_rlb[] = "ROLLBACK"; rc = od_backend_query(server, stream, "reset rollback", query_rlb, diff --git a/sources/route.h b/sources/route.h index d3a5cb4c..00ee1fb9 100644 --- a/sources/route.h +++ b/sources/route.h @@ -11,7 +11,7 @@ typedef struct od_route od_route_t; struct od_route { - od_schemeroute_t *scheme; + od_configroute_t *config; od_routeid_t id; od_serverstat_t cron_stats; od_serverstat_t cron_stats_avg; @@ -24,7 +24,7 @@ struct od_route static inline void od_route_init(od_route_t *route) { - route->scheme = NULL; + route->config = NULL; od_routeid_init(&route->id); od_serverpool_init(&route->server_pool); od_clientpool_init(&route->client_pool); diff --git a/sources/route_pool.c b/sources/route_pool.c index afa3a0e3..13df09f7 100644 --- a/sources/route_pool.c +++ b/sources/route_pool.c @@ -24,8 +24,8 @@ #include "sources/pid.h" #include "sources/id.h" #include "sources/logger.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/system.h" #include "sources/server.h" @@ -59,7 +59,7 @@ od_routepool_gc_route(od_routepool_t *pool, od_route_t *route) od_clientpool_total(&route->client_pool) > 0) return; - od_schemeroute_t *scheme = route->scheme; + od_configroute_t *config = route->config; /* free route data */ assert(pool->count > 0); @@ -67,11 +67,11 @@ od_routepool_gc_route(od_routepool_t *pool, od_route_t *route) od_list_unlink(&route->link); od_route_free(route); - /* maybe free obsolete scheme db */ - od_schemeroute_unref(scheme); + /* maybe free obsolete config db */ + od_configroute_unref(config); - if (scheme->is_obsolete && scheme->refs == 0) - od_schemeroute_free(scheme); + if (config->is_obsolete && config->refs == 0) + od_configroute_free(config); } void od_routepool_gc(od_routepool_t *pool) @@ -85,7 +85,7 @@ void od_routepool_gc(od_routepool_t *pool) } od_route_t* -od_routepool_new(od_routepool_t *pool, od_schemeroute_t *scheme, +od_routepool_new(od_routepool_t *pool, od_configroute_t *config, od_routeid_t *id) { od_route_t *route = od_route_allocate(); @@ -97,7 +97,7 @@ od_routepool_new(od_routepool_t *pool, od_schemeroute_t *scheme, od_route_free(route); return NULL; } - route->scheme = scheme; + route->config = config; od_list_append(&pool->list, &route->link); pool->count++; return route; @@ -106,13 +106,13 @@ od_routepool_new(od_routepool_t *pool, od_schemeroute_t *scheme, od_route_t* od_routepool_match(od_routepool_t *pool, od_routeid_t *key, - od_schemeroute_t *scheme) + od_configroute_t *config) { od_list_t *i; od_list_foreach(&pool->list, i) { od_route_t *route; route = od_container_of(i, od_route_t, link); - if (route->scheme == scheme && od_routeid_compare(&route->id, key)) + if (route->config == config && od_routeid_compare(&route->id, key)) return route; } return NULL; diff --git a/sources/route_pool.h b/sources/route_pool.h index 87ee6735..08f642ac 100644 --- a/sources/route_pool.h +++ b/sources/route_pool.h @@ -26,11 +26,11 @@ void od_routepool_free(od_routepool_t*); void od_routepool_gc(od_routepool_t*); od_route_t* -od_routepool_new(od_routepool_t*, od_schemeroute_t*, +od_routepool_new(od_routepool_t*, od_configroute_t*, od_routeid_t*); od_route_t* -od_routepool_match(od_routepool_t*, od_routeid_t*, od_schemeroute_t*); +od_routepool_match(od_routepool_t*, od_routeid_t*, od_configroute_t*); od_server_t* od_routepool_next(od_routepool_t*, od_serverstate_t); diff --git a/sources/router.c b/sources/router.c index e221b96d..521529aa 100644 --- a/sources/router.c +++ b/sources/router.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -65,12 +65,12 @@ od_router_fwd(od_router_t *router, shapito_be_startup_t *startup) assert(startup->database != NULL); assert(startup->user != NULL); - /* match latest version of route scheme */ - od_schemeroute_t *scheme; - scheme = od_schemeroute_forward(&instance->scheme, + /* match latest version of route config */ + od_configroute_t *config; + config = od_configroute_forward(&instance->config, shapito_parameter_value(startup->database), shapito_parameter_value(startup->user)); - assert(scheme != NULL); + assert(config != NULL); od_routeid_t id = { .database = shapito_parameter_value(startup->database), @@ -80,29 +80,29 @@ od_router_fwd(od_router_t *router, shapito_be_startup_t *startup) }; /* force settings required by route */ - if (scheme->storage_db) { - id.database = scheme->storage_db; - id.database_len = strlen(scheme->storage_db) + 1; + if (config->storage_db) { + id.database = config->storage_db; + id.database_len = strlen(config->storage_db) + 1; } - if (scheme->storage_user) { - id.user = scheme->storage_user; - id.user_len = strlen(scheme->storage_user) + 1; + if (config->storage_user) { + id.user = config->storage_user; + id.user_len = strlen(config->storage_user) + 1; } /* match or create dynamic route */ od_route_t *route; - route = od_routepool_match(&router->route_pool, &id, scheme); + route = od_routepool_match(&router->route_pool, &id, config); if (route) { - od_schemeroute_ref(scheme); + od_configroute_ref(config); return route; } - route = od_routepool_new(&router->route_pool, scheme, &id); + route = od_routepool_new(&router->route_pool, config, &id); if (route == NULL) { od_error(&instance->logger, "router", NULL, NULL, "failed to allocate route"); return NULL; } - od_schemeroute_ref(scheme); + od_configroute_ref(config); return route; } @@ -136,11 +136,11 @@ od_router_attacher(void *arg) goto on_attach; /* always start new connection, if pool_size is zero */ - if (route->scheme->pool_size == 0) + if (route->config->pool_size == 0) break; /* maybe start new connection */ - if (od_serverpool_total(&route->server_pool) < route->scheme->pool_size) + if (od_serverpool_total(&route->server_pool) < route->config->pool_size) break; /* pool_size limit implementation. @@ -153,14 +153,14 @@ od_router_attacher(void *arg) */ od_debug(&instance->logger, "router", client, NULL, "route '%s.%s' pool limit reached (%d), waiting", - route->scheme->db_name, - route->scheme->user_name, - route->scheme->pool_size); + route->config->db_name, + route->config->user_name, + route->config->pool_size); /* enqueue client */ od_clientpool_set(&route->client_pool, client, OD_CQUEUE); - uint32_t timeout = route->scheme->pool_timeout; + uint32_t timeout = route->config->pool_timeout; if (timeout == 0) timeout = UINT32_MAX; int rc; @@ -169,8 +169,8 @@ od_router_attacher(void *arg) od_clientpool_set(&route->client_pool, client, OD_CPENDING); od_error(&instance->logger, "router", client, NULL, "route '%s.%s' server pool wait timedout, closing", - route->scheme->db_name, - route->scheme->user_name); + route->config->db_name, + route->config->user_name); msg_attach->status = OD_RERROR_TIMEDOUT; machine_channel_write(msg_attach->response, msg); return; @@ -249,11 +249,11 @@ od_router(void *arg) msg_route = machine_msg_get_data(msg); /* ensure global client_max limit */ - if (instance->scheme.client_max_set) { - if (router->clients >= instance->scheme.client_max) { + if (instance->config.client_max_set) { + if (router->clients >= instance->config.client_max) { od_log(&instance->logger, "router", NULL, NULL, "router: global client_max limit reached (%d)", - instance->scheme.client_max); + instance->config.client_max); msg_route->status = OD_RERROR_LIMIT; machine_channel_write(msg_route->response, msg); break; @@ -270,15 +270,15 @@ od_router(void *arg) } /* ensure route client_max limit */ - if (route->scheme->client_max_set) { + if (route->config->client_max_set) { int client_total; client_total = od_clientpool_total(&route->client_pool); - if (client_total >= route->scheme->client_max) { + if (client_total >= route->config->client_max) { od_log(&instance->logger, "router", NULL, NULL, "route '%s.%s' client_max limit reached (%d)", - route->scheme->db_name, - route->scheme->user_name, - route->scheme->client_max); + route->config->db_name, + route->config->user_name, + route->config->client_max); msg_route->status = OD_RERROR_LIMIT; machine_channel_write(msg_route->response, msg); break; @@ -289,7 +289,7 @@ od_router(void *arg) od_clientpool_set(&route->client_pool, msg_route->client, OD_CPENDING); router->clients++; - msg_route->client->scheme = route->scheme; + msg_route->client->config = route->config; msg_route->client->route = route; msg_route->status = OD_ROK; machine_channel_write(msg_route->response, msg); @@ -445,7 +445,7 @@ od_router(void *arg) case OD_MROUTER_CANCEL: { - /* match server key and scheme by client key */ + /* match server key and config by client key */ od_msgrouter_t *msg_cancel; msg_cancel = machine_msg_get_data(msg); int rc; diff --git a/sources/router_cancel.h b/sources/router_cancel.h index 99a99b8c..0fc242af 100644 --- a/sources/router_cancel.h +++ b/sources/router_cancel.h @@ -9,23 +9,23 @@ typedef struct { - od_id_t id; - od_schemestorage_t *scheme; - shapito_key_t key; + od_id_t id; + od_configstorage_t *config; + shapito_key_t key; } od_routercancel_t; static inline void od_routercancel_init(od_routercancel_t *cancel) { - cancel->scheme = NULL; + cancel->config = NULL; shapito_key_init(&cancel->key); } static inline void od_routercancel_free(od_routercancel_t *cancel) { - if (cancel->scheme) - od_schemestorage_free(cancel->scheme); + if (cancel->config) + od_configstorage_free(cancel->config); } #endif diff --git a/sources/scheme_mgr.h b/sources/scheme_mgr.h deleted file mode 100644 index 769a8ee4..00000000 --- a/sources/scheme_mgr.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef SCHEME_MGR_H -#define SCHEME_MGR_H - -/* - * Odissey. - * - * Advanced PostgreSQL connection pooler. -*/ - -typedef struct od_schememgr od_schememgr_t; - -struct od_schememgr -{ - uint64_t version; -}; - -static inline void -od_schememgr_init(od_schememgr_t *mgr) -{ - mgr->version = 0; -} - -static inline uint64_t -od_schememgr_version(od_schememgr_t *mgr) -{ - return mgr->version; -} - -static inline uint64_t -od_schememgr_version_next(od_schememgr_t *mgr) -{ - return ++mgr->version; -} - -#endif /* SCHEME_MGR_H */ diff --git a/sources/server_pool.c b/sources/server_pool.c index 83765fe3..acc52c77 100644 --- a/sources/server_pool.c +++ b/sources/server_pool.c @@ -24,8 +24,8 @@ #include "sources/pid.h" #include "sources/id.h" #include "sources/logger.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/system.h" #include "sources/server.h" @@ -139,11 +139,11 @@ od_serverpool_foreach(od_serverpool_t *pool, { od_list_t *target = NULL; switch (state) { - case OD_SIDLE: target = &pool->idle; + case OD_SIDLE: target = &pool->idle; break; - case OD_SEXPIRE: target = &pool->expire; + case OD_SEXPIRE: target = &pool->expire; break; - case OD_SACTIVE: target = &pool->active; + case OD_SACTIVE: target = &pool->active; break; case OD_SUNDEF: assert(0); break; diff --git a/sources/tls.c b/sources/tls.c index 99e3d861..60191503 100644 --- a/sources/tls.c +++ b/sources/tls.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" @@ -48,36 +48,36 @@ #include "sources/frontend.h" machine_tls_t* -od_tls_frontend(od_schemelisten_t *scheme) +od_tls_frontend(od_configlisten_t *config) { int rc; machine_tls_t *tls; tls = machine_tls_create(); if (tls == NULL) return NULL; - if (scheme->tls_mode == OD_TLS_ALLOW) + if (config->tls_mode == OD_TLS_ALLOW) machine_tls_set_verify(tls, "none"); else - if (scheme->tls_mode == OD_TLS_REQUIRE) + if (config->tls_mode == OD_TLS_REQUIRE) machine_tls_set_verify(tls, "peer"); else machine_tls_set_verify(tls, "peer_strict"); - if (scheme->tls_ca_file) { - rc = machine_tls_set_ca_file(tls, scheme->tls_ca_file); + if (config->tls_ca_file) { + rc = machine_tls_set_ca_file(tls, config->tls_ca_file); if (rc == -1) { machine_tls_free(tls); return NULL; } } - if (scheme->tls_cert_file) { - rc = machine_tls_set_cert_file(tls, scheme->tls_cert_file); + if (config->tls_cert_file) { + rc = machine_tls_set_cert_file(tls, config->tls_cert_file); if (rc == -1) { machine_tls_free(tls); return NULL; } } - if (scheme->tls_key_file) { - rc = machine_tls_set_key_file(tls, scheme->tls_key_file); + if (config->tls_key_file) { + rc = machine_tls_set_key_file(tls, config->tls_key_file); if (rc == -1) { machine_tls_free(tls); return NULL; @@ -89,7 +89,7 @@ od_tls_frontend(od_schemelisten_t *scheme) int od_tls_frontend_accept(od_client_t *client, od_logger_t *logger, - od_schemelisten_t *scheme, + od_configlisten_t *config, machine_tls_t *tls) { shapito_stream_t *stream = client->stream; @@ -99,7 +99,7 @@ od_tls_frontend_accept(od_client_t *client, od_debug(logger, "tls", client, NULL, "ssl request"); shapito_stream_reset(stream); int rc; - if (scheme->tls_mode == OD_TLS_DISABLE) { + if (config->tls_mode == OD_TLS_DISABLE) { /* not supported 'N' */ shapito_stream_write8(stream, 'N'); rc = od_write(client->io, stream); @@ -128,7 +128,7 @@ od_tls_frontend_accept(od_client_t *client, od_debug(logger, "tls", client, NULL, "ok"); return 0; } - switch (scheme->tls_mode) { + switch (config->tls_mode) { case OD_TLS_DISABLE: case OD_TLS_ALLOW: break; @@ -142,36 +142,36 @@ od_tls_frontend_accept(od_client_t *client, } machine_tls_t* -od_tls_backend(od_schemestorage_t *scheme) +od_tls_backend(od_configstorage_t *config) { int rc; machine_tls_t *tls; tls = machine_tls_create(); if (tls == NULL) return NULL; - if (scheme->tls_mode == OD_TLS_ALLOW) + if (config->tls_mode == OD_TLS_ALLOW) machine_tls_set_verify(tls, "none"); else - if (scheme->tls_mode == OD_TLS_REQUIRE) + if (config->tls_mode == OD_TLS_REQUIRE) machine_tls_set_verify(tls, "peer"); else machine_tls_set_verify(tls, "peer_strict"); - if (scheme->tls_ca_file) { - rc = machine_tls_set_ca_file(tls, scheme->tls_ca_file); + if (config->tls_ca_file) { + rc = machine_tls_set_ca_file(tls, config->tls_ca_file); if (rc == -1) { machine_tls_free(tls); return NULL; } } - if (scheme->tls_cert_file) { - rc = machine_tls_set_cert_file(tls, scheme->tls_cert_file); + if (config->tls_cert_file) { + rc = machine_tls_set_cert_file(tls, config->tls_cert_file); if (rc == -1) { machine_tls_free(tls); return NULL; } } - if (scheme->tls_key_file) { - rc = machine_tls_set_key_file(tls, scheme->tls_key_file); + if (config->tls_key_file) { + rc = machine_tls_set_key_file(tls, config->tls_key_file); if (rc == -1) { machine_tls_free(tls); return NULL; @@ -184,7 +184,7 @@ int od_tls_backend_connect(od_server_t *server, od_logger_t *logger, shapito_stream_t *stream, - od_schemestorage_t *scheme) + od_configstorage_t *config) { od_debug(logger, "tls", NULL, server, "init"); @@ -223,7 +223,7 @@ od_tls_backend_connect(od_server_t *server, break; case 'N': /* not supported */ - if (scheme->tls_mode == OD_TLS_ALLOW) { + if (config->tls_mode == OD_TLS_ALLOW) { od_debug(logger, "tls", NULL, server, "not supported, continue (allow)"); } else { diff --git a/sources/tls.h b/sources/tls.h index 9f845392..6d26a048 100644 --- a/sources/tls.h +++ b/sources/tls.h @@ -8,17 +8,17 @@ */ machine_tls_t* -od_tls_frontend(od_schemelisten_t*); +od_tls_frontend(od_configlisten_t*); int -od_tls_frontend_accept(od_client_t*, od_logger_t*, od_schemelisten_t*, +od_tls_frontend_accept(od_client_t*, od_logger_t*, od_configlisten_t*, machine_tls_t*); machine_tls_t* -od_tls_backend(od_schemestorage_t*); +od_tls_backend(od_configstorage_t*); int od_tls_backend_connect(od_server_t*, od_logger_t*, shapito_stream_t*, - od_schemestorage_t*); + od_configstorage_t*); #endif /* OD_TLS_H */ diff --git a/sources/worker.c b/sources/worker.c index e0edd0ce..9ce3a281 100644 --- a/sources/worker.c +++ b/sources/worker.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h" diff --git a/sources/worker_pool.c b/sources/worker_pool.c index 067d9f69..8c47e96b 100644 --- a/sources/worker_pool.c +++ b/sources/worker_pool.c @@ -26,8 +26,8 @@ #include "sources/id.h" #include "sources/logger.h" #include "sources/daemon.h" -#include "sources/scheme.h" -#include "sources/scheme_mgr.h" +#include "sources/config.h" +#include "sources/config_mgr.h" #include "sources/config_reader.h" #include "sources/msg.h" #include "sources/system.h"