From 1aeed6c222376fe5ec92a00b2347d07d78482e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20B=C3=BChler?= Date: Mon, 14 Sep 2009 21:06:55 +0200 Subject: [PATCH] Execute self defined actions --- src/main/config_parser.rl | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/config_parser.rl b/src/main/config_parser.rl index fc23a5e..d9463b4 100644 --- a/src/main/config_parser.rl +++ b/src/main/config_parser.rl @@ -599,14 +599,26 @@ } } else { - al = g_queue_peek_head(ctx->action_list_stack); - a = li_create_action(srv, name->data.string->str, NULL); + /* lookup hashtable of defined actions */ + a = g_hash_table_lookup(ctx->action_blocks, name->data.string); + + if (a == NULL) { + a = li_create_action(srv, name->data.string->str, NULL); + } else { + li_action_acquire(a); + } + + if (a == NULL) { + li_value_free(name); + return FALSE; + } if (a == NULL) { li_value_free(name); return FALSE; } + al = g_queue_peek_head(ctx->action_list_stack); g_array_append_val(al->data.list, a); } }