X-Git-Url: http://pilppa.org/gitweb/?p=libplp.git;a=blobdiff_plain;f=src_test%2Ftest_config2.c;fp=src_test%2Ftest_config2.c;h=0000000000000000000000000000000000000000;hp=dfd0987c840d6bcf606ff11cee031c17933fb4d7;hb=860d8c023b82eeca9833d4a3f534c6d11a9523f3;hpb=65f22bbea2531f7cd492d6108b8902f92b7750a8 diff --git a/src_test/test_config2.c b/src_test/test_config2.c deleted file mode 100644 index dfd0987..0000000 --- a/src_test/test_config2.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - * test_w1.cc - * - * Created on: Oct 20, 2010 - * Author: lamikr - */ -#include -#include -#include -#include -#include - -#include "log.h" -#include "config.h" - -/* -static int uci_do_add(int argc, char **argv) -{ - struct uci_package *p = NULL; - struct uci_section *s = NULL; - int ret; - - if (argc != 3) - return 255; - - ret = uci_load(ctx, argv[1], &p); - if (ret != UCI_OK) - goto done; - - ret = uci_add_section(ctx, p, argv[2], &s); - if (ret != UCI_OK) - goto done; - - ret = uci_save(ctx, p); - -done: - if (ret != UCI_OK) - cli_perror(); - else if (s) - fprintf(stdout, "%s\n", s->e.name); - return ret; -} -*/ - -static int uci_create_named_section(struct uci_context *ctx, const char *conf_file_name, const char *section_type, const char *section_name) -{ - struct uci_ptr ptr; - int ret_val; - char *cmd_data; - int len; - - ret_val = -1; - if ((ctx != NULL) && - (conf_file_name != NULL) && - (section_type != NULL) && - (section_name != NULL)) { - len = strlen(conf_file_name); - len = len + 1; - len = len + strlen(section_type); - len = len + 1; - len = len + strlen(section_name); - len = len + 1; - cmd_data = malloc(len); - if (cmd_data != NULL) { - snprintf(cmd_data, len, "%s.%s=%s", conf_file_name, section_name, section_type); - if (uci_lookup_ptr(ctx, &ptr, cmd_data, true) == UCI_OK) { - ret_val = uci_set(ctx, &ptr); - if (ret_val == UCI_OK) { - } - } - free(cmd_data); - } - } - return ret_val; -} - -bool set_config_value2(const char *conf_dir_name, - const char *conf_file_name, - const char *section_type, - const char *section_name, - const char *key, - const char *value) { - struct uci_context *ctx; - struct uci_package *pkg; - struct uci_section *sct; - struct uci_section *tmp_sct; - int err_flg; - char *fname; - int b_count; - struct uci_element *elem; - struct uci_ptr ptr; - FILE *fp; - bool ret_val; - - ret_val = false; - if ((conf_dir_name != NULL) && - (conf_file_name != NULL) && - (section_type != NULL) && - (section_name != NULL) && - (key != NULL) && - (value != NULL)) { - b_count = strlen(conf_dir_name) + strlen(conf_file_name) + 10; - fname = (char *)calloc(1, b_count); - if (fname != NULL) { - strncpy(fname, conf_dir_name, b_count); - strncat(fname, "/", 1); - strncat(fname, conf_file_name, strlen(conf_file_name) + 1); - ctx = uci_alloc_context(); - if (ctx != NULL) { - sct = NULL; - uci_set_confdir(ctx, conf_dir_name); - if (access(fname, W_OK) != 0) { - if (access(fname, F_OK) != 0) { - fp = fopen(fname, "w+"); - fclose(fp); - } - } - if (access(fname, W_OK) == 0) { - err_flg = uci_load(ctx, fname, &pkg); - uci_foreach_element(&pkg->sections, elem) { - tmp_sct = uci_to_section(elem); - if (strcmp(tmp_sct->type, section_type) == 0) { - sct = tmp_sct; - break; - } - } - if (sct == NULL) { - //err_flg = uci_add_named_section(ctx, pkg, section_type, section_name, &sct); - //err_flg = uci_add_section(ctx, pkg, section_name, &sct); - err_flg = uci_create_named_section(ctx, conf_file_name, section_type, section_name); - if (err_flg == UCI_OK) { - uci_foreach_element(&pkg->sections, elem) { - tmp_sct = uci_to_section(elem); - if (strcmp(tmp_sct->type, section_type) == 0) { - sct = tmp_sct; - break; - } - } - } - } - if (err_flg == 0) { - memset(&ptr, 0, sizeof(ptr)); - ptr.package = pkg->e.name; - ptr.section = sct->e.name; - ptr.option = key; - - if (uci_lookup_ptr(ctx, &ptr, NULL, false) == UCI_OK) { - ptr.value = value; - uci_set(ctx, &ptr); - uci_save(ctx, pkg); - ret_val = true; - log_debug("Created configuration section %s to configuration file: %s\n", section_name, fname); - } - else { - log_error("Could not write to configuration file: %s\n. Could not look-up pointer for package %s section %s.\n", fname, pkg->e.name, sct->e.name); - } - uci_free_context(ctx); - } - else { - log_error("Could not write to configuration file: %s\n. Could not create section %s.\n", fname, section_name); - } - } - else { - log_error("Could not write to configuration file: %s. File does not exist or is not writable.\n", fname); - } - } - free(fname); - } - else { - log_error("Could not change config value, out of memory\n"); - } - } - else { - log_error("Could not change config value, invalid parameters\n"); - } - return ret_val; -} - -void test_config() { - char work_dir[FILENAME_MAX]; - - getcwd(work_dir, sizeof(work_dir)); - printf("working directory: %s\n", work_dir); - - set_config_value2(work_dir, - "dev_cfg_txt", - "mysection_type", - "mysection_name", - "myoption_name", - "my_option_value"); - set_config_value2(work_dir, - "dev_cfg_txt", - "mysection_type", - "mysection_name", - "myoption_name", - "my_option_value2"); -} - -int main(int argc, char** argv) { - test_config(); - return 0; -}