degesch: set "user_data" while loading config
It'd be quite wrong to call "on_change" on them without this.
This commit is contained in:
parent
9b41256ebf
commit
b1dd34a7ba
11
common.c
11
common.c
|
@ -1865,11 +1865,9 @@ config_item_clone (struct config_item_ *self)
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
||||||
// TODO: maybe also make it possible to assign the "user_data" pointer
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
config_schema_fix_value
|
config_schema_fix_value
|
||||||
(struct config_schema *schema, struct config_item_ *object)
|
(struct config_schema *schema, struct config_item_ *object, void *user_data)
|
||||||
{
|
{
|
||||||
struct config_item_ *item =
|
struct config_item_ *item =
|
||||||
str_map_find (&object->value.object, schema->name);
|
str_map_find (&object->value.object, schema->name);
|
||||||
|
@ -1912,17 +1910,18 @@ config_schema_fix_value
|
||||||
item->type = schema->type;
|
item->type = schema->type;
|
||||||
|
|
||||||
item->schema = schema;
|
item->schema = schema;
|
||||||
|
item->user_data = user_data;
|
||||||
if (schema->on_change)
|
if (schema->on_change)
|
||||||
schema->on_change (item);
|
schema->on_change (item);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
config_schema_apply_to_object
|
config_schema_apply_to_object (struct config_schema *schema_array,
|
||||||
(struct config_schema *schema_array, struct config_item_ *object)
|
struct config_item_ *object, void *user_data)
|
||||||
{
|
{
|
||||||
hard_assert (object->type == CONFIG_ITEM_OBJECT);
|
hard_assert (object->type == CONFIG_ITEM_OBJECT);
|
||||||
while (schema_array->name)
|
while (schema_array->name)
|
||||||
config_schema_fix_value (schema_array++, object);
|
config_schema_fix_value (schema_array++, object, user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
14
degesch.c
14
degesch.c
|
@ -1576,17 +1576,13 @@ static struct config_schema g_config_attributes[] =
|
||||||
static void
|
static void
|
||||||
load_config_behaviour (struct config_item_ *subtree, void *user_data)
|
load_config_behaviour (struct config_item_ *subtree, void *user_data)
|
||||||
{
|
{
|
||||||
(void) user_data;
|
config_schema_apply_to_object (g_config_behaviour, subtree, user_data);
|
||||||
// TODO: assign user_data to all the subitems
|
|
||||||
config_schema_apply_to_object (g_config_behaviour, subtree);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
load_config_attributes (struct config_item_ *subtree, void *user_data)
|
load_config_attributes (struct config_item_ *subtree, void *user_data)
|
||||||
{
|
{
|
||||||
(void) user_data;
|
config_schema_apply_to_object (g_config_attributes, subtree, user_data);
|
||||||
// TODO: assign user_data to all the subitems
|
|
||||||
config_schema_apply_to_object (g_config_attributes, subtree);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -8398,9 +8394,6 @@ load_server_from_config (struct app_context *ctx,
|
||||||
struct server *s = xmalloc (sizeof *s);
|
struct server *s = xmalloc (sizeof *s);
|
||||||
server_init (s, &ctx->poller);
|
server_init (s, &ctx->poller);
|
||||||
|
|
||||||
// TODO: assign user_data (s) to all the subitems
|
|
||||||
config_schema_apply_to_object (g_config_server, subtree);
|
|
||||||
|
|
||||||
s->ctx = ctx;
|
s->ctx = ctx;
|
||||||
s->name = xstrdup (name);
|
s->name = xstrdup (name);
|
||||||
str_map_set (&ctx->servers, s->name, s);
|
str_map_set (&ctx->servers, s->name, s);
|
||||||
|
@ -8415,6 +8408,9 @@ load_server_from_config (struct app_context *ctx,
|
||||||
buffer_add (ctx, buffer);
|
buffer_add (ctx, buffer);
|
||||||
buffer_activate (ctx, buffer);
|
buffer_activate (ctx, buffer);
|
||||||
|
|
||||||
|
// This fires any "on_change" callbacks
|
||||||
|
config_schema_apply_to_object (g_config_server, subtree, s);
|
||||||
|
|
||||||
// XXX: is this desirable in here? I think we should do it only when
|
// XXX: is this desirable in here? I think we should do it only when
|
||||||
// actually creating a new server instead of every time we load them.
|
// actually creating a new server instead of every time we load them.
|
||||||
struct error *e = NULL;
|
struct error *e = NULL;
|
||||||
|
|
Loading…
Reference in New Issue