Skip to content

Commit d7df1ea

Browse files
createreadupdatedebuggerone
authored andcommitted
Release dynamic admin API config strings
1 parent 6b8379b commit d7df1ea

3 files changed

Lines changed: 29 additions & 0 deletions

File tree

extension/include/config/dynamic_admin_api/default.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
*/
1919
void kg_config_dynamic_admin_api_defaults_load(void);
2020

21+
/**
22+
* @brief Releases persistent config strings owned by dynamic admin callbacks.
23+
*/
24+
void kg_config_dynamic_admin_api_defaults_release(void);
25+
2126
#endif /* KING_CONFIG_DYNAMIC_ADMIN_API_DEFAULT_H */

extension/src/config/dynamic_admin_api/default.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@
1414
#include "config/dynamic_admin_api/default.h"
1515
#include "config/dynamic_admin_api/base_layer.h"
1616

17+
static void dynamic_admin_api_release_owned_string(char **value)
18+
{
19+
if (*value != NULL) {
20+
pefree(*value, 1);
21+
*value = NULL;
22+
}
23+
}
24+
1725
void kg_config_dynamic_admin_api_defaults_load(void)
1826
{
1927
king_dynamic_admin_api_config.bind_host = NULL;
@@ -23,3 +31,18 @@ void kg_config_dynamic_admin_api_defaults_load(void)
2331
king_dynamic_admin_api_config.cert_file = NULL;
2432
king_dynamic_admin_api_config.key_file = NULL;
2533
}
34+
35+
void kg_config_dynamic_admin_api_defaults_release(void)
36+
{
37+
/*
38+
* bind_host is managed by the engine's STD_PHP_INI_ENTRY storage.
39+
* The remaining string fields are persistent copies created by the
40+
* dynamic-admin-api INI callbacks in this config family.
41+
*/
42+
king_dynamic_admin_api_config.bind_host = NULL;
43+
king_dynamic_admin_api_config.port = 2019;
44+
dynamic_admin_api_release_owned_string(&king_dynamic_admin_api_config.auth_mode);
45+
dynamic_admin_api_release_owned_string(&king_dynamic_admin_api_config.ca_file);
46+
dynamic_admin_api_release_owned_string(&king_dynamic_admin_api_config.cert_file);
47+
dynamic_admin_api_release_owned_string(&king_dynamic_admin_api_config.key_file);
48+
}

extension/src/config/dynamic_admin_api/index.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,5 @@ void kg_config_dynamic_admin_api_init(void)
2323
void kg_config_dynamic_admin_api_shutdown(void)
2424
{
2525
kg_config_dynamic_admin_api_ini_unregister();
26+
kg_config_dynamic_admin_api_defaults_release();
2627
}

0 commit comments

Comments
 (0)