X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=service%2Ftrigger.c;h=97a06bb57d1a4bcf4769c4c81831d35b4456a3be;hp=a8533b3bce298a9479b334552582111756df4ba3;hb=47462caa6346dd4c51ae4ba6061f124e94ecce7a;hpb=94e7ea8b88cb01192a6fb1f1f6a68ada1356763f;ds=sidebyside diff --git a/service/trigger.c b/service/trigger.c index a8533b3..97a06bb 100644 --- a/service/trigger.c +++ b/service/trigger.c @@ -323,12 +323,12 @@ void trigger_init(void) 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) @@ -338,7 +338,7 @@ 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);