- u_async.c: process immediate_queue BEFORE epoll_wait in uasync_poll - stcp_link.c: defensive NULL etcp_conn/etcp_link in stcp_link_close - utun_instance.c: move stcp_server_list_destroy_all to Phase J (before ETCP), add deferred drain in both Phase J and L - stcp.h/c: STCP_HS_ENC_CLIENT 6→38, STCP_HS_ENC_SERVER 7→39, exchange ed25519_pubkey in both handshake directions - etcp_connections.c: copy peer_ed25519 from STCP to ETCP_CONN in etcp_link_enter_ready_tcp; guard link->etcp in tcp_link_close_cb - chat_sync.c: fix lk->conn NULL dereference for TCP links - test_stcp.c: update stcp_server_create/stcp_client_connect callsites - tools/chat_tcp_test: change transport udp→tcp
36 lines
928 B
C
36 lines
928 B
C
/*
|
|
* utun_config_api.c — configuration provider implementation
|
|
*/
|
|
#include "utun_config_api.h"
|
|
#include <string.h>
|
|
|
|
static const utun_config_provider_t* g_provider = NULL;
|
|
|
|
void utun_config_set_provider(const utun_config_provider_t* provider) {
|
|
g_provider = provider;
|
|
}
|
|
|
|
const char* cfg_get_string(const char* key, const char* def) {
|
|
if (g_provider && g_provider->get_string)
|
|
return g_provider->get_string(key, def);
|
|
return def;
|
|
}
|
|
|
|
int64_t cfg_get_int64(const char* key, int64_t def) {
|
|
if (g_provider && g_provider->get_int64)
|
|
return g_provider->get_int64(key, def);
|
|
return def;
|
|
}
|
|
|
|
int cfg_get_int(const char* key, int def) {
|
|
if (g_provider && g_provider->get_int)
|
|
return g_provider->get_int(key, def);
|
|
return def;
|
|
}
|
|
|
|
int cfg_get_bool(const char* key, int def) {
|
|
if (g_provider && g_provider->get_bool)
|
|
return g_provider->get_bool(key, def);
|
|
return def;
|
|
}
|