Lines Matching +full:- +full:- +full:with +full:- +full:config
1 /*-
5 * Redistribution and use in source and binary forms, with or without
12 * documentation and/or other materials provided with the distribution.
40 #include "config.h"
70 return (strcmp((*((struct configuration_entry **)e1))->name, in configuration_entry_sort_cmp()
71 (*((struct configuration_entry **)e2))->name in configuration_entry_sort_cmp()
79 (*((struct configuration_entry **)e2))->name in configuration_entry_cmp()
86 return (strcmp((*((cache_entry *)e1))->params->entry_name, in configuration_entry_cache_mp_sort_cmp()
87 (*((cache_entry *)e2))->params->entry_name in configuration_entry_cache_mp_sort_cmp()
95 (*((cache_entry *)e2))->params->entry_name in configuration_entry_cache_mp_cmp()
103 (*((cache_entry *)e2))->params->entry_name, in configuration_entry_cache_mp_part_cmp()
130 res = pthread_mutex_init(&retval->positive_cache_lock, NULL); in create_configuration_entry()
139 res = pthread_mutex_init(&retval->negative_cache_lock, NULL); in create_configuration_entry()
141 pthread_mutex_destroy(&retval->positive_cache_lock); in create_configuration_entry()
149 res = pthread_mutex_init(&retval->mp_cache_lock, NULL); in create_configuration_entry()
151 pthread_mutex_destroy(&retval->positive_cache_lock); in create_configuration_entry()
152 pthread_mutex_destroy(&retval->negative_cache_lock); in create_configuration_entry()
160 memcpy(&retval->positive_cache_params, positive_params, in create_configuration_entry()
162 memcpy(&retval->negative_cache_params, negative_params, in create_configuration_entry()
164 memcpy(&retval->mp_cache_params, mp_params, in create_configuration_entry()
168 retval->name = calloc(1, size + 1); in create_configuration_entry()
169 assert(retval->name != NULL); in create_configuration_entry()
170 memcpy(retval->name, name, size); in create_configuration_entry()
172 memcpy(&retval->common_query_timeout, common_timeout, in create_configuration_entry()
174 memcpy(&retval->mp_query_timeout, mp_timeout, in create_configuration_entry()
177 asprintf(&retval->positive_cache_params.cep.entry_name, "%s+", name); in create_configuration_entry()
178 assert(retval->positive_cache_params.cep.entry_name != NULL); in create_configuration_entry()
180 asprintf(&retval->negative_cache_params.cep.entry_name, "%s-", name); in create_configuration_entry()
181 assert(retval->negative_cache_params.cep.entry_name != NULL); in create_configuration_entry()
183 asprintf(&retval->mp_cache_params.cep.entry_name, "%s*", name); in create_configuration_entry()
184 assert(retval->mp_cache_params.cep.entry_name != NULL); in create_configuration_entry()
191 * Creates configuration entry and fills it with default values
247 pthread_mutex_destroy(&entry->positive_cache_lock); in destroy_configuration_entry()
248 pthread_mutex_destroy(&entry->negative_cache_lock); in destroy_configuration_entry()
249 pthread_mutex_destroy(&entry->mp_cache_lock); in destroy_configuration_entry()
250 free(entry->name); in destroy_configuration_entry()
251 free(entry->positive_cache_params.cep.entry_name); in destroy_configuration_entry()
252 free(entry->negative_cache_params.cep.entry_name); in destroy_configuration_entry()
253 free(entry->mp_cache_params.cep.entry_name); in destroy_configuration_entry()
254 free(entry->mp_cache_entries); in destroy_configuration_entry()
260 add_configuration_entry(struct configuration *config, in add_configuration_entry() argument
265 assert(entry->name != NULL); in add_configuration_entry()
266 if (configuration_find_entry(config, entry->name) != NULL) { in add_configuration_entry()
268 return (-1); in add_configuration_entry()
271 if (config->entries_size == config->entries_capacity) { in add_configuration_entry()
274 config->entries_capacity *= 2; in add_configuration_entry()
275 new_entries = calloc(config->entries_capacity, in add_configuration_entry()
278 memcpy(new_entries, config->entries, in add_configuration_entry()
280 config->entries_size); in add_configuration_entry()
282 free(config->entries); in add_configuration_entry()
283 config->entries = new_entries; in add_configuration_entry()
286 config->entries[config->entries_size++] = entry; in add_configuration_entry()
287 qsort(config->entries, config->entries_size, in add_configuration_entry()
296 configuration_get_entries_size(struct configuration *config) in configuration_get_entries_size() argument
299 assert(config != NULL); in configuration_get_entries_size()
301 return (config->entries_size); in configuration_get_entries_size()
305 configuration_get_entry(struct configuration *config, size_t index) in configuration_get_entry() argument
308 assert(config != NULL); in configuration_get_entry()
309 assert(index < config->entries_size); in configuration_get_entry()
311 return (config->entries[index]); in configuration_get_entry()
315 configuration_find_entry(struct configuration *config, in configuration_find_entry() argument
322 retval = bsearch(name, config->entries, config->entries_size, in configuration_find_entry()
341 ++config_entry->mp_cache_entries_size; in configuration_entry_add_mp_cache_entry()
343 config_entry->mp_cache_entries_size); in configuration_entry_add_mp_cache_entry()
347 if (config_entry->mp_cache_entries_size - 1 > 0) { in configuration_entry_add_mp_cache_entry()
349 config_entry->mp_cache_entries, in configuration_entry_add_mp_cache_entry()
350 (config_entry->mp_cache_entries_size - 1) * in configuration_entry_add_mp_cache_entry()
354 old_mp_entries = config_entry->mp_cache_entries; in configuration_entry_add_mp_cache_entry()
355 config_entry->mp_cache_entries = new_mp_entries; in configuration_entry_add_mp_cache_entry()
358 qsort(config_entry->mp_cache_entries, in configuration_entry_add_mp_cache_entry()
359 config_entry->mp_cache_entries_size, in configuration_entry_add_mp_cache_entry()
374 result = bsearch(mp_name, config_entry->mp_cache_entries, in configuration_entry_find_mp_cache_entry()
375 config_entry->mp_cache_entries_size, in configuration_entry_find_mp_cache_entry()
388 * Searches for all multipart entries with names starting with mp_name.
399 result = bsearch(mp_name, config_entry->mp_cache_entries, in configuration_entry_find_mp_cache_entries()
400 config_entry->mp_cache_entries_size, in configuration_entry_find_mp_cache_entries()
405 return (-1); in configuration_entry_find_mp_cache_entries()
411 while (*start != config_entry->mp_cache_entries) { in configuration_entry_find_mp_cache_entries()
412 if (configuration_entry_cache_mp_part_cmp(mp_name, *start - 1) == 0) in configuration_entry_find_mp_cache_entries()
413 *start = *start - 1; in configuration_entry_find_mp_cache_entries()
418 while (*finish != config_entry->mp_cache_entries + in configuration_entry_find_mp_cache_entries()
419 config_entry->mp_cache_entries_size) { in configuration_entry_find_mp_cache_entries()
436 configuration_lock_rdlock(struct configuration *config) in configuration_lock_rdlock() argument
439 pthread_rwlock_rdlock(&config->rwlock); in configuration_lock_rdlock()
444 configuration_lock_wrlock(struct configuration *config) in configuration_lock_wrlock() argument
447 pthread_rwlock_wrlock(&config->rwlock); in configuration_lock_wrlock()
452 configuration_unlock(struct configuration *config) in configuration_unlock() argument
455 pthread_rwlock_unlock(&config->rwlock); in configuration_unlock()
473 pthread_mutex_lock(&entry->positive_cache_lock); in configuration_lock_entry()
476 pthread_mutex_lock(&entry->negative_cache_lock); in configuration_lock_entry()
479 pthread_mutex_lock(&entry->mp_cache_lock); in configuration_lock_entry()
497 pthread_mutex_unlock(&entry->positive_cache_lock); in configuration_unlock_entry()
500 pthread_mutex_unlock(&entry->negative_cache_lock); in configuration_unlock_entry()
503 pthread_mutex_unlock(&entry->mp_cache_lock); in configuration_unlock_entry()
521 retval->entries_capacity = INITIAL_ENTRIES_CAPACITY; in init_configuration()
522 retval->entries = calloc(retval->entries_capacity, in init_configuration()
523 sizeof(*retval->entries)); in init_configuration()
524 assert(retval->entries != NULL); in init_configuration()
526 pthread_rwlock_init(&retval->rwlock, NULL); in init_configuration()
533 fill_configuration_defaults(struct configuration *config) in fill_configuration_defaults() argument
538 assert(config != NULL); in fill_configuration_defaults()
540 if (config->socket_path != NULL) in fill_configuration_defaults()
541 free(config->socket_path); in fill_configuration_defaults()
544 config->socket_path = calloc(1, len + 1); in fill_configuration_defaults()
545 assert(config->socket_path != NULL); in fill_configuration_defaults()
546 memcpy(config->socket_path, DEFAULT_SOCKET_PATH, len); in fill_configuration_defaults()
549 config->pidfile_path = calloc(1, len + 1); in fill_configuration_defaults()
550 assert(config->pidfile_path != NULL); in fill_configuration_defaults()
551 memcpy(config->pidfile_path, DEFAULT_PIDFILE_PATH, len); in fill_configuration_defaults()
553 config->socket_mode = S_IFSOCK | S_IRUSR | S_IWUSR | in fill_configuration_defaults()
555 config->force_unlink = 1; in fill_configuration_defaults()
557 config->query_timeout = DEFAULT_QUERY_TIMEOUT; in fill_configuration_defaults()
558 config->threads_num = DEFAULT_THREADS_NUM; in fill_configuration_defaults()
560 for (i = 0; i < config->entries_size; ++i) in fill_configuration_defaults()
561 destroy_configuration_entry(config->entries[i]); in fill_configuration_defaults()
562 config->entries_size = 0; in fill_configuration_defaults()
568 destroy_configuration(struct configuration *config) in destroy_configuration() argument
573 assert(config != NULL); in destroy_configuration()
574 free(config->pidfile_path); in destroy_configuration()
575 free(config->socket_path); in destroy_configuration()
577 for (i = 0; i < config->entries_size; ++i) in destroy_configuration()
578 destroy_configuration_entry(config->entries[i]); in destroy_configuration()
579 free(config->entries); in destroy_configuration()
581 pthread_rwlock_destroy(&config->rwlock); in destroy_configuration()
582 free(config); in destroy_configuration()