Code

src/filter_chain.c, src/match_regex.c: Add some debugging messages.
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Sat, 22 Nov 2008 00:05:15 +0000 (01:05 +0100)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Sat, 22 Nov 2008 00:05:15 +0000 (01:05 +0100)
src/filter_chain.c
src/match_regex.c

index 154a4abe99ddc5ed6baa4f761167a2b7c0b1c412..e51e07ec7bb3bdf67c82fa254454d60316cd6b4c 100644 (file)
@@ -565,12 +565,19 @@ int fc_process_chain (const data_set_t *ds, value_list_t *vl, /* {{{ */
   if (chain == NULL)
     return (-1);
 
+  DEBUG ("fc_process_chain (chain = %s);", chain->name);
+
   status = FC_ACTION_CONTINUE;
 
   for (rule = chain->rules; rule != NULL; rule = rule->next)
   {
     fc_match_t *match;
 
+    if (rule->name[0] != 0)
+    {
+      DEBUG ("fc_process_chain: Testing the `%s' rule.", rule->name);
+    }
+
     /* N. B.: rule->matches may be NULL. */
     for (match = rule->matches; match != NULL; match = match->next)
     {
@@ -578,7 +585,7 @@ int fc_process_chain (const data_set_t *ds, value_list_t *vl, /* {{{ */
           &match->user_data);
       if (status < 0)
       {
-        WARNING ("fc_process: A match failed.");
+        WARNING ("fc_process_chain: A match failed.");
         break;
       }
       else if (status != FC_MATCH_MATCHES)
@@ -589,14 +596,20 @@ int fc_process_chain (const data_set_t *ds, value_list_t *vl, /* {{{ */
     if (match != NULL)
       continue;
 
+    if (rule->name[0] != 0)
+    {
+      DEBUG ("fc_process_chain: Rule `%s' matches.", rule->name);
+    }
+
     for (target = rule->targets; target != NULL; target = target->next)
     {
-      /* If we get here, all matches have matched the value. Execute the target. */
+      /* If we get here, all matches have matched the value. Execute the
+       * target. */
       status = (*target->proc.invoke) (ds, vl, /* meta = */ NULL,
           &target->user_data);
       if (status < 0)
       {
-        WARNING ("fc_process: A target failed.");
+        WARNING ("fc_process_chain: A target failed.");
         continue;
       }
       else if (status == FC_ACTION_CONTINUE)
@@ -605,12 +618,19 @@ int fc_process_chain (const data_set_t *ds, value_list_t *vl, /* {{{ */
         break;
       else
       {
-        WARNING ("fc_process: Unknown target return value: %i", status);
+        WARNING ("fc_process_chain: Unknown target return value: %i", status);
       }
     }
 
     if (status == FC_ACTION_STOP)
+    {
+      if (rule->name[0] != 0)
+      {
+        DEBUG ("fc_process_chain: Rule `%s' signaled the stop condition.",
+            rule->name);
+      }
       break;
+    }
   } /* for (rule) */
 
   /* for-loop has been aborted: A target returned `FC_ACTION_STOP' */
@@ -619,12 +639,13 @@ int fc_process_chain (const data_set_t *ds, value_list_t *vl, /* {{{ */
 
   for (target = chain->targets; target != NULL; target = target->next)
   {
-    /* If we get here, all matches have matched the value. Execute the target. */
+    /* If we get here, all matches have matched the value. Execute the
+     * target. */
     status = (*target->proc.invoke) (ds, vl, /* meta = */ NULL,
         &target->user_data);
     if (status < 0)
     {
-      WARNING ("fc_process: The default target failed.");
+      WARNING ("fc_process_chain: The default target failed.");
     }
   }
 
@@ -870,6 +891,8 @@ int fc_register_match (const char *name, match_proc_t proc) /* {{{ */
 {
   fc_match_t *m;
 
+  DEBUG ("fc_register_match (%s);", name);
+
   m = (fc_match_t *) malloc (sizeof (*m));
   if (m == NULL)
     return (-ENOMEM);
@@ -902,6 +925,8 @@ int fc_register_target (const char *name, target_proc_t proc) /* {{{ */
 {
   fc_target_t *t;
 
+  DEBUG ("fc_register_target (%s);", name);
+
   t = (fc_target_t *) malloc (sizeof (*t));
   if (t == NULL)
     return (-ENOMEM);
index e0ab7bd70917295300abd59bb87204a7945ab369..f14d96d5c933a6d278fee49c61b08ec625414d90 100644 (file)
@@ -105,7 +105,17 @@ static int mr_match_regexen (mr_regex_t *re_head, /* {{{ */
                                /* nmatch = */ 0, /* pmatch = */ NULL,
                                /* eflags = */ 0);
                if (status == 0)
+               {
+                       DEBUG ("regex match: Regular expression `%s' matches `%s'.",
+                                       re->re_str, string);
                        return (FC_MATCH_MATCHES);
+               }
+               else
+               {
+                       DEBUG ("regex match: Regular expression `%s' does not match `%s'.",
+                                       re->re_str, string);
+               }
+
        }
 
        return (FC_MATCH_NO_MATCH);