aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/conftest/conftest.c16
-rw-r--r--src/conftest/hooks/add_notify.c14
-rw-r--r--src/conftest/hooks/ignore_message.c8
-rw-r--r--src/conftest/hooks/ike_auth_fill.c8
-rw-r--r--src/conftest/hooks/unencrypted_notify.c12
-rw-r--r--src/conftest/hooks/unsort_message.c8
6 files changed, 37 insertions, 29 deletions
diff --git a/src/conftest/conftest.c b/src/conftest/conftest.c
index 9be141118..0d610c5b4 100644
--- a/src/conftest/conftest.c
+++ b/src/conftest/conftest.c
@@ -214,19 +214,27 @@ static bool load_keys(settings_t *settings, char *dir)
static bool load_hooks()
{
enumerator_t *enumerator;
- char *name, buf[64];
- hook_t *(*create)(void);
+ char *name, *pos, buf[64];
+ hook_t *(*create)(char*);
hook_t *hook;
enumerator = conftest->test->create_section_enumerator(conftest->test,
"hooks");
while (enumerator->enumerate(enumerator, &name))
{
- snprintf(buf, sizeof(buf), "%s_hook_create", name);
+ pos = strchr(name, '-');
+ if (pos)
+ {
+ snprintf(buf, sizeof(buf), "%.*s_hook_create", pos - name, name);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), "%s_hook_create", name);
+ }
create = dlsym(RTLD_DEFAULT, buf);
if (create)
{
- hook = create();
+ hook = create(name);
if (hook)
{
conftest->hooks->insert_last(conftest->hooks, hook);
diff --git a/src/conftest/hooks/add_notify.c b/src/conftest/hooks/add_notify.c
index d73bdbaf8..4ae7c2db7 100644
--- a/src/conftest/hooks/add_notify.c
+++ b/src/conftest/hooks/add_notify.c
@@ -111,7 +111,7 @@ METHOD(hook_t, destroy, void,
/**
* Create the IKE_AUTH fill hook
*/
-hook_t *add_notify_hook_create(void)
+hook_t *add_notify_hook_create(char *name)
{
private_add_notify_t *this;
@@ -123,17 +123,17 @@ hook_t *add_notify_hook_create(void)
.destroy = _destroy,
},
.req = conftest->test->get_bool(conftest->test,
- "hooks.add_notify.request", TRUE),
+ "hooks.%s.request", TRUE, name),
.id = conftest->test->get_int(conftest->test,
- "hooks.add_notify.id", 0),
+ "hooks.%s.id", 0, name),
.type = conftest->test->get_str(conftest->test,
- "hooks.add_notify.type", ""),
+ "hooks.%s.type", "", name),
.data = conftest->test->get_str(conftest->test,
- "hooks.add_notify.data", ""),
+ "hooks.%s.data", "", name),
.spi = conftest->test->get_int(conftest->test,
- "hooks.add_notify.spi", 0),
+ "hooks.%s.spi", 0, name),
.esp = conftest->test->get_bool(conftest->test,
- "hooks.add_notify.esp", FALSE),
+ "hooks.%s.esp", FALSE, name),
);
return &this->hook;
diff --git a/src/conftest/hooks/ignore_message.c b/src/conftest/hooks/ignore_message.c
index 33182dd9b..210f3ac50 100644
--- a/src/conftest/hooks/ignore_message.c
+++ b/src/conftest/hooks/ignore_message.c
@@ -66,7 +66,7 @@ METHOD(hook_t, destroy, void,
/**
* Create the ignore_message hook
*/
-hook_t *ignore_message_hook_create(void)
+hook_t *ignore_message_hook_create(char *name)
{
private_ignore_message_t *this;
@@ -78,11 +78,11 @@ hook_t *ignore_message_hook_create(void)
.destroy = _destroy,
},
.in = conftest->test->get_bool(conftest->test,
- "hooks.ignore_message.inbound", TRUE),
+ "hooks.%s.inbound", TRUE, name),
.req = conftest->test->get_bool(conftest->test,
- "hooks.ignore_message.request", TRUE),
+ "hooks.%s.request", TRUE, name),
.id = conftest->test->get_int(conftest->test,
- "hooks.ignore_message.id", 0),
+ "hooks.%s.id", 0, name),
);
return &this->hook;
diff --git a/src/conftest/hooks/ike_auth_fill.c b/src/conftest/hooks/ike_auth_fill.c
index 7f3ff08c2..0e1a1d38f 100644
--- a/src/conftest/hooks/ike_auth_fill.c
+++ b/src/conftest/hooks/ike_auth_fill.c
@@ -121,7 +121,7 @@ METHOD(hook_t, destroy, void,
/**
* Create the IKE_AUTH fill hook
*/
-hook_t *ike_auth_fill_hook_create(void)
+hook_t *ike_auth_fill_hook_create(char *name)
{
private_ike_auth_fill_t *this;
@@ -133,11 +133,11 @@ hook_t *ike_auth_fill_hook_create(void)
.destroy = _destroy,
},
.req = conftest->test->get_bool(conftest->test,
- "hooks.ike_auth_fill.request", TRUE),
+ "hooks.%s.request", TRUE, name),
.id = conftest->test->get_int(conftest->test,
- "hooks.ike_auth_fill.id", 1),
+ "hooks.%s.id", 1, name),
.bytes = conftest->test->get_int(conftest->test,
- "hooks.ike_auth_fill.bytes", 0),
+ "hooks.%s.bytes", 0, name),
);
return &this->hook;
diff --git a/src/conftest/hooks/unencrypted_notify.c b/src/conftest/hooks/unencrypted_notify.c
index 7db929614..1d7f42def 100644
--- a/src/conftest/hooks/unencrypted_notify.c
+++ b/src/conftest/hooks/unencrypted_notify.c
@@ -126,7 +126,7 @@ METHOD(hook_t, destroy, void,
/**
* Create the IKE_AUTH fill hook
*/
-hook_t *unencrypted_notify_hook_create(void)
+hook_t *unencrypted_notify_hook_create(char *name)
{
private_unencrypted_notify_t *this;
@@ -138,15 +138,15 @@ hook_t *unencrypted_notify_hook_create(void)
.destroy = _destroy,
},
.id = conftest->test->get_int(conftest->test,
- "hooks.unencrypted_notify.id", 2),
+ "hooks.%s.id", 2, name),
.type = conftest->test->get_str(conftest->test,
- "hooks.unencrypted_notify.type", ""),
+ "hooks.%s.type", "", name),
.data = conftest->test->get_str(conftest->test,
- "hooks.unencrypted_notify.data", ""),
+ "hooks.%s.data", "", name),
.spi = conftest->test->get_int(conftest->test,
- "hooks.unencrypted_notify.spi", 0),
+ "hooks.%s.spi", 0, name),
.esp = conftest->test->get_bool(conftest->test,
- "hooks.unencrypted_notify.esp", FALSE),
+ "hooks.%s.esp", FALSE, name),
);
return &this->hook;
diff --git a/src/conftest/hooks/unsort_message.c b/src/conftest/hooks/unsort_message.c
index c12f55601..9af13e8e0 100644
--- a/src/conftest/hooks/unsort_message.c
+++ b/src/conftest/hooks/unsort_message.c
@@ -110,7 +110,7 @@ METHOD(hook_t, destroy, void,
/**
* Create the IKE_AUTH fill hook
*/
-hook_t *unsort_message_hook_create(void)
+hook_t *unsort_message_hook_create(char *name)
{
private_unsort_message_t *this;
@@ -122,11 +122,11 @@ hook_t *unsort_message_hook_create(void)
.destroy = _destroy,
},
.req = conftest->test->get_bool(conftest->test,
- "hooks.unsort_message.request", TRUE),
+ "hooks.%s.request", TRUE, name),
.id = conftest->test->get_int(conftest->test,
- "hooks.unsort_message.id", 0),
+ "hooks.%s.id", 0, name),
.order = conftest->test->get_str(conftest->test,
- "hooks.unsort_message.order", ""),
+ "hooks.%s.order", "", name),
);
return &this->hook;