Compile config.c as C++

This commit is contained in:
Johan Wikman
2017-03-22 21:57:59 +02:00
parent c84c2dcfbd
commit 74085978b4
4 changed files with 46 additions and 43 deletions

View File

@ -4,7 +4,8 @@ add_library(maxscale-common SHARED
atomic.cc
authenticator.cc
buffer.cc
config.c config_runtime.c dcb.c filter.c filter.cc externcmd.c paths.c hashtable.c hint.c housekeeper.c load_utils.c log_manager.cc maxscale_pcre2.c misc.c mlist.c modutil.c monitor.c queuemanager.c query_classifier.cc poll.c random_jkiss.c resultset.c router.cc secrets.c server.c service.c session.c spinlock.c thread.c users.c utils.c skygw_utils.cc statistics.c listener.c ssl.c mysql_utils.c mysql_binlog.c modulecmd.c)
config.cc
config_runtime.c dcb.c filter.c filter.cc externcmd.c paths.c hashtable.c hint.c housekeeper.c load_utils.c log_manager.cc maxscale_pcre2.c misc.c mlist.c modutil.c monitor.c queuemanager.c query_classifier.cc poll.c random_jkiss.c resultset.c router.cc secrets.c server.c service.c session.c spinlock.c thread.c users.c utils.c skygw_utils.cc statistics.c listener.c ssl.c mysql_utils.c mysql_binlog.c modulecmd.c)
if(WITH_JEMALLOC)
target_link_libraries(maxscale-common ${JEMALLOC_LIBRARIES})

View File

@ -268,7 +268,7 @@ static void duplicate_context_finish(DUPLICATE_CONTEXT* context)
char* config_clean_string_list(const char* str)
{
size_t destsize = strlen(str) + 1;
char *dest = MXS_MALLOC(destsize);
char *dest = (char*)MXS_MALLOC(destsize);
if (dest)
{
@ -297,7 +297,7 @@ char* config_clean_string_list(const char* str)
(PCRE2_SPTR) replace, PCRE2_ZERO_TERMINATED,
(PCRE2_UCHAR*) dest, &destsize)) == PCRE2_ERROR_NOMEMORY)
{
char* tmp = MXS_REALLOC(dest, destsize * 2);
char* tmp = (char*)MXS_REALLOC(dest, destsize * 2);
if (tmp == NULL)
{
MXS_FREE(dest);
@ -623,7 +623,7 @@ config_load_and_process(const char* filename, bool (*process_config)(CONFIG_CONT
if (duplicate_context_init(&dcontext))
{
CONFIG_CONTEXT ccontext = {.object = ""};
CONFIG_CONTEXT ccontext = {.object = (char*)""};
if (config_load_single_file(filename, &dcontext, &ccontext))
{
@ -1079,7 +1079,7 @@ int config_get_server_list(const MXS_CONFIG_PARAMETER *params, const char *key,
if (found)
{
/* Fill in the result array */
SERVER** result = MXS_CALLOC(found, sizeof(SERVER*));
SERVER** result = (SERVER**)MXS_CALLOC(found, sizeof(SERVER*));
if (result)
{
int res_ind = 0;
@ -1116,7 +1116,7 @@ char* config_copy_string(const MXS_CONFIG_PARAMETER *params, const char *key)
MXS_CONFIG_PARAMETER* config_clone_param(const MXS_CONFIG_PARAMETER* param)
{
MXS_CONFIG_PARAMETER *p2 = MXS_MALLOC(sizeof(MXS_CONFIG_PARAMETER));
MXS_CONFIG_PARAMETER *p2 = (MXS_CONFIG_PARAMETER*)MXS_MALLOC(sizeof(MXS_CONFIG_PARAMETER));
if (p2)
{
@ -1206,9 +1206,9 @@ config_get_feedback_data()
static struct
{
char* name;
const char* name;
int priority;
char* replacement;
const char* replacement;
} lognames[] =
{
{ "log_messages", LOG_NOTICE, "log_notice" }, // Deprecated
@ -1469,7 +1469,7 @@ SSL_LISTENER* make_ssl_structure (CONFIG_CONTEXT *obj, bool require_cert, int *e
{
if (!strcmp(ssl, "required"))
{
if ((new_ssl = MXS_CALLOC(1, sizeof(SSL_LISTENER))) == NULL)
if ((new_ssl = (SSL_LISTENER*)MXS_CALLOC(1, sizeof(SSL_LISTENER))) == NULL)
{
return NULL;
}
@ -1896,7 +1896,7 @@ static void process_path_parameter(MXS_CONFIG_PARAMETER *param)
{
const char *mod_dir = get_module_configdir();
size_t size = strlen(param->value) + strlen(mod_dir) + 3;
char *value = MXS_MALLOC(size);
char *value = (char*)MXS_MALLOC(size);
MXS_ABORT_IF_NULL(value);
sprintf(value, "/%s/%s", mod_dir, param->value);
@ -2153,7 +2153,7 @@ config_get_release_string(char* release)
if (glob(masks[i], GLOB_NOSORT, NULL, &found) == 0)
{
int fd;
int k = 0;
size_t k = 0;
int skipindex = 0;
int startindex = 0;
@ -2339,7 +2339,7 @@ bool config_has_duplicate_sections(const char* filename, DUPLICATE_CONTEXT* cont
bool rval = false;
int size = 1024;
char *buffer = MXS_MALLOC(size * sizeof(char));
char *buffer = (char*)MXS_MALLOC(size * sizeof(char));
if (buffer)
{
@ -2363,7 +2363,7 @@ bool config_has_duplicate_sections(const char* filename, DUPLICATE_CONTEXT* cont
PCRE2_UCHAR section[len];
pcre2_substring_copy_bynumber(context->mdata, 1, section, &len);
if (hashtable_add(context->hash, section, "") == 0)
if (hashtable_add(context->hash, section, (char*)"") == 0)
{
MXS_ERROR("Duplicate section found: %s", section);
rval = true;
@ -2553,13 +2553,13 @@ int create_new_service(CONFIG_CONTEXT *obj)
char *retry = config_get_value(obj->parameters, "retry_on_failure");
if (retry)
{
serviceSetRetryOnFailure(obj->element, retry);
serviceSetRetryOnFailure(service, retry);
}
char *enable_root_user = config_get_value(obj->parameters, "enable_root_user");
if (enable_root_user)
{
serviceEnableRootUser(obj->element, config_truth_value(enable_root_user));
serviceEnableRootUser(service, config_truth_value(enable_root_user));
}
char *max_retry_interval = config_get_value(obj->parameters, "max_retry_interval");
@ -2583,7 +2583,7 @@ int create_new_service(CONFIG_CONTEXT *obj)
char *connection_timeout = config_get_value(obj->parameters, "connection_timeout");
if (connection_timeout)
{
serviceSetTimeout(obj->element, atoi(connection_timeout));
serviceSetTimeout(service, atoi(connection_timeout));
}
const char *max_connections = config_get_value_string(obj->parameters, "max_connections");
@ -2591,32 +2591,32 @@ int create_new_service(CONFIG_CONTEXT *obj)
const char *queued_connection_timeout = config_get_value_string(obj->parameters, "queued_connection_timeout");
if (strlen(max_connections))
{
serviceSetConnectionLimits(obj->element, atoi(max_connections),
serviceSetConnectionLimits(service, atoi(max_connections),
atoi(max_queued_connections), atoi(queued_connection_timeout));
}
char *auth_all_servers = config_get_value(obj->parameters, "auth_all_servers");
if (auth_all_servers)
{
serviceAuthAllServers(obj->element, config_truth_value(auth_all_servers));
serviceAuthAllServers(service, config_truth_value(auth_all_servers));
}
char *strip_db_esc = config_get_value(obj->parameters, "strip_db_esc");
if (strip_db_esc)
{
serviceStripDbEsc(obj->element, config_truth_value(strip_db_esc));
serviceStripDbEsc(service, config_truth_value(strip_db_esc));
}
char *weightby = config_get_value(obj->parameters, "weightby");
if (weightby)
{
serviceWeightBy(obj->element, weightby);
serviceWeightBy(service, weightby);
}
char *wildcard = config_get_value(obj->parameters, "localhost_match_wildcard_host");
if (wildcard)
{
serviceEnableLocalhostMatchWildcardHost(obj->element, config_truth_value(wildcard));
serviceEnableLocalhostMatchWildcardHost(service, config_truth_value(wildcard));
}
char *user = config_get_value(obj->parameters, "user");
@ -2624,7 +2624,7 @@ int create_new_service(CONFIG_CONTEXT *obj)
if (user && auth)
{
serviceSetUser(obj->element, user, auth);
serviceSetUser(service, user, auth);
}
else if (!rcap_type_required(service_get_capabilities(service), RCAP_TYPE_NO_AUTH))
{
@ -2659,7 +2659,7 @@ int create_new_service(CONFIG_CONTEXT *obj)
if (version_string[0] != '5')
{
size_t len = strlen(version_string) + strlen("5.5.5-") + 1;
service->version_string = MXS_MALLOC(len);
service->version_string = (char*)MXS_MALLOC(len);
MXS_ABORT_IF_NULL(service->version_string);
strcpy(service->version_string, "5.5.5-");
strcat(service->version_string, version_string);
@ -2684,7 +2684,7 @@ int create_new_service(CONFIG_CONTEXT *obj)
if (mod)
{
config_add_defaults(obj, mod->parameters);
service_add_parameters(obj->element, obj->parameters);
service_add_parameters(service, obj->parameters);
}
else
{
@ -2745,7 +2745,7 @@ int create_new_server(CONFIG_CONTEXT *obj)
if (error_count == 0)
{
SERVER *server = obj->element;
SERVER *server = (SERVER*)obj->element;
if (monuser && monpw)
{
@ -2803,7 +2803,7 @@ int create_new_server(CONFIG_CONTEXT *obj)
{
if (!is_normal_server_parameter(params->name))
{
server_add_parameter(obj->element, params->name, params->value);
server_add_parameter(server, params->name, params->value);
}
params = params->next;
}
@ -2826,7 +2826,7 @@ int configure_new_service(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj)
char *servers = config_get_value(obj->parameters, "servers");
char *monitor = config_get_value(obj->parameters, "monitor");
char *roptions = config_get_value(obj->parameters, "router_options");
SERVICE *service = obj->element;
SERVICE *service = (SERVICE*)obj->element;
if (service)
{
@ -2872,7 +2872,7 @@ int configure_new_service(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj)
if (strcmp(trim(s), obj1->object) == 0 && obj1->element)
{
found = 1;
serviceAddBackend(service, obj1->element);
serviceAddBackend(service, (SERVER*)obj1->element);
break;
}
obj1 = obj1->next;
@ -2949,12 +2949,13 @@ int create_new_monitor(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj, HASHTABLE*
if (error_count == 0)
{
MXS_MONITOR* monitor = (MXS_MONITOR*)obj->element;
const MXS_MODULE *mod = get_module(module, MODULE_MONITOR);
if (mod)
{
config_add_defaults(obj, mod->parameters);
monitorAddParameters(obj->element, obj->parameters);
monitorAddParameters(monitor, obj->parameters);
}
else
{
@ -2970,7 +2971,7 @@ int create_new_monitor(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj, HASHTABLE*
Perhaps a greater minimum value should be added? */
if (*endptr == '\0' && interval > 0)
{
monitorSetInterval(obj->element, (unsigned long)interval);
monitorSetInterval(monitor, (unsigned long)interval);
}
else
{
@ -2989,7 +2990,7 @@ int create_new_monitor(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj, HASHTABLE*
char *connect_timeout = config_get_value(obj->parameters, "backend_connect_timeout");
if (connect_timeout)
{
if (!monitorSetNetworkTimeout(obj->element, MONITOR_CONNECT_TIMEOUT, atoi(connect_timeout)))
if (!monitorSetNetworkTimeout(monitor, MONITOR_CONNECT_TIMEOUT, atoi(connect_timeout)))
{
MXS_ERROR("Failed to set backend_connect_timeout");
error_count++;
@ -2999,7 +3000,7 @@ int create_new_monitor(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj, HASHTABLE*
char *read_timeout = config_get_value(obj->parameters, "backend_read_timeout");
if (read_timeout)
{
if (!monitorSetNetworkTimeout(obj->element, MONITOR_READ_TIMEOUT, atoi(read_timeout)))
if (!monitorSetNetworkTimeout(monitor, MONITOR_READ_TIMEOUT, atoi(read_timeout)))
{
MXS_ERROR("Failed to set backend_read_timeout");
error_count++;
@ -3009,7 +3010,7 @@ int create_new_monitor(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj, HASHTABLE*
char *write_timeout = config_get_value(obj->parameters, "backend_write_timeout");
if (write_timeout)
{
if (!monitorSetNetworkTimeout(obj->element, MONITOR_WRITE_TIMEOUT, atoi(write_timeout)))
if (!monitorSetNetworkTimeout(monitor, MONITOR_WRITE_TIMEOUT, atoi(write_timeout)))
{
MXS_ERROR("Failed to set backend_write_timeout");
error_count++;
@ -3030,13 +3031,13 @@ int create_new_monitor(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj, HASHTABLE*
if (strcmp(trim(s), obj1->object) == 0 && obj->element && obj1->element)
{
found = 1;
if (hashtable_add(monitorhash, obj1->object, "") == 0)
if (hashtable_add(monitorhash, obj1->object, (char*)"") == 0)
{
MXS_WARNING("Multiple monitors are monitoring server [%s]. "
"This will cause undefined behavior.",
obj1->object);
}
monitorAddServer(obj->element, obj1->element);
monitorAddServer(monitor, (SERVER*)obj1->element);
}
obj1 = obj1->next;
}
@ -3055,7 +3056,7 @@ int create_new_monitor(CONFIG_CONTEXT *context, CONFIG_CONTEXT *obj, HASHTABLE*
char *passwd = config_get_password(obj->parameters);
if (user && passwd)
{
monitorAddUser(obj->element, user, passwd);
monitorAddUser(monitor, user, passwd);
}
else if (user)
{
@ -3159,6 +3160,7 @@ int create_new_filter(CONFIG_CONTEXT *obj)
{
if ((obj->element = filter_alloc(obj->object, module)))
{
MXS_FILTER_DEF* filter_def = (MXS_FILTER_DEF*)obj->element;
char *options = config_get_value(obj->parameters, "options");
if (options)
{
@ -3166,7 +3168,7 @@ int create_new_filter(CONFIG_CONTEXT *obj)
char *s = strtok_r(options, ",", &lasts);
while (s)
{
filter_add_option(obj->element, s);
filter_add_option(filter_def, s);
s = strtok_r(NULL, ",", &lasts);
}
}
@ -3184,7 +3186,7 @@ int create_new_filter(CONFIG_CONTEXT *obj)
for (MXS_CONFIG_PARAMETER *p = obj->parameters; p; p = p->next)
{
filter_add_parameter(obj->element, p->name, p->value);
filter_add_parameter(filter_def, p->name, p->value);
}
}
else
@ -3494,7 +3496,7 @@ int config_parse_server_list(const char *servers, char ***output_array)
pos++;
out_arr_size++;
}
char **results = MXS_CALLOC(out_arr_size, sizeof(char*));
char **results = (char**)MXS_CALLOC(out_arr_size, sizeof(char*));
if (!results)
{
return 0;

View File

@ -16,7 +16,7 @@
#define SS_DEBUG
#endif
#include "../config.c"
#include "../config.cc"
#define TEST(a) do{if(!(a)){printf("Error: `" #a "` was not true\n");return 1;}}while(false)

View File

@ -39,7 +39,7 @@
#include <maxscale/paths.h>
// This is pretty ugly but it's required to test internal functions
#include "../config.c"
#include "../config.cc"
#include "../server.c"
/**