int main(int argc, char **argv) { const uint16_t acceptor_port = (uint16_t)((argc >= 2) ? atoi(argv[1]) : 8080); char const * const settings_file_name = ((argc >= 3) ? argv[2] : "settings.txt"); settings_t settings; server_t server; log_t log; log_create(&log, stderr); if (!load_settings(&settings, settings_file_name, &log)) { return 1; } if (!server_create(&server, &log, &settings, acceptor_port)) { settings_destroy(&settings); return 1; } settings_destroy(&settings); server_run(&server); server_destroy(&server); log_destroy(&log); return 0; }
static void settings_unref(SETTINGS_REC *rec, int remove_hash) { if (--rec->refcount == 0) { if (remove_hash) g_hash_table_remove(settings, rec->key); settings_destroy(rec); } }
static void saved_rack_destroy (saved_rack_t * saved_rack) { GSList * list; for (list = saved_rack->plugins; list; list = g_slist_next (list)) settings_destroy (((saved_plugin_t *) list->data)->settings); g_slist_free (saved_rack->plugins); g_free (saved_rack); }
void _destroy(state_stack* stack) { state_desc *top = (state_desc*) table_ind(stack, stack->m_len-1); _settings_menu *data = (_settings_menu*) top->m_pData; menu *pMenu = (menu*) data->m_menu; settings *pSettings = (settings*) data->m_settings; menu_destroy(pMenu); settings_destroy(pSettings); free(data); }
void settings_remove(const char *key) { SETTINGS_REC *rec; g_return_if_fail(key != NULL); rec = g_hash_table_lookup(settings, key); if (rec == NULL) return; g_hash_table_remove(settings, key); settings_destroy(rec); }
static void on_app_sig(int sig) { if (sig == SIGUSR1) { /* reload the settings */ settings_load(); preedit_reload(); } else { preedit_finalize(); icmgr_finalize(); settings_save(); settings_destroy(); exit(0); } }
static void settings_hash_free(const char *key, SETTINGS_REC *rec) { settings_destroy(rec); }