{
struct trigger *t = container_of(ctx, struct trigger, jctx);
+ if (strcmp(name, t->type) != 0)
+ return NULL;
+
return json_script_file_from_blobmsg(t->type, t->rule, blob_pad_len(t->rule));
}
{
struct trigger *t = container_of(tout, struct trigger, delay);
- json_script_run(&t->jctx, "foo", t->data);
+ json_script_run(&t->jctx, t->type, t->data);
free(t->data);
t->data = NULL;
}
q.max_running_tasks = 1;
}
-static int trigger_match(const char *event, const char *match)
+static bool trigger_match(const char *event, const char *match)
{
char *wildcard = strstr(match, ".*");
if (wildcard)
- return strncmp(event, match, wildcard - match);
- return strcmp(event, match);
+ return !strncmp(event, match, wildcard - match);
+ return !strcmp(event, match);
}
void trigger_event(const char *type, struct blob_attr *data)
list_for_each_entry(t, &triggers, list) {
if (t->remove)
continue;
- if (!trigger_match(type, t->type)) {
+ if (trigger_match(type, t->type)) {
if (t->timeout) {
free(t->data);
t->data = blob_memdup(data);
uloop_timeout_set(&t->delay, t->timeout);
} else {
- json_script_run(&t->jctx, "foo", data);
+ json_script_run(&t->jctx, t->type, data);
}
}
}