From 25bb7a978d9585065be263a6f1ae2d2653d9bf58 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Thu, 24 Dec 2015 16:02:26 +0100
Subject: degesch: refactoring
---
degesch.c | 36 +++++++++++++++++++-----------------
1 file changed, 19 insertions(+), 17 deletions(-)
diff --git a/degesch.c b/degesch.c
index ba624de..9cd3882 100644
--- a/degesch.c
+++ b/degesch.c
@@ -2156,18 +2156,8 @@ log_message_attributed (void *user_data, const char *quote, const char *fmt,
input_show (&ctx->input);
}
-static void
-apply_attribute_change (struct config_item *item, int id)
-{
- struct app_context *ctx = item->user_data;
- free (ctx->attrs[id]);
- ctx->attrs[id] = xstrdup (item->type == CONFIG_ITEM_NULL
- ? ctx->attrs_defaults[id]
- : item->value.string.str);
-}
-
-static void
-on_config_attribute_change (struct config_item *item)
+static ssize_t
+attr_by_name (const char *name)
{
static const char *table[ATTR_COUNT] =
{
@@ -2177,11 +2167,23 @@ on_config_attribute_change (struct config_item *item)
};
for (size_t i = 0; i < N_ELEMENTS (table); i++)
- if (!strcmp (item->schema->name, table[i]))
- {
- apply_attribute_change (item, i);
- return;
- }
+ if (!strcmp (name, table[i]))
+ return i;
+ return -1;
+}
+
+static void
+on_config_attribute_change (struct config_item *item)
+{
+ struct app_context *ctx = item->user_data;
+ ssize_t id = attr_by_name (item->schema->name);
+ if (id != -1)
+ {
+ free (ctx->attrs[id]);
+ ctx->attrs[id] = xstrdup (item->type == CONFIG_ITEM_NULL
+ ? ctx->attrs_defaults[id]
+ : item->value.string.str);
+ }
}
static void
--
cgit v1.2.3-70-g09d2