]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
filter_same should now work with path masks.
authorPavel Machek <pavel@ucw.cz>
Wed, 26 Apr 2000 09:36:47 +0000 (09:36 +0000)
committerPavel Machek <pavel@ucw.cz>
Wed, 26 Apr 2000 09:36:47 +0000 (09:36 +0000)
filter/filter.c

index 350cb08e91374f031927fddcf5869f24f901b8e4..63f8967a8fa2edc275b29822cece7e6790e7ce37 100644 (file)
@@ -28,6 +28,17 @@ struct f_inst *startup_func = NULL, *test1_func, *test2_func;
 
 #define CMP_ERROR 999
 
+int
+pm_path_compare(struct f_path_mask *m1, struct f_path_mask *m2)
+{
+  while (1) {
+    if ((!m1) || (!m2))
+      return !((!m1) && (!m2));
+    m1 = m1->next;
+    m2 = m2->next;
+  }
+}
+
 /* Compare two values, returns -1, 0, 1 compared, ERROR 999 */
 int
 val_compare(struct f_val v1, struct f_val v2)
@@ -53,6 +64,8 @@ val_compare(struct f_val v1, struct f_val v2)
   case T_IP:
   case T_PREFIX:
     return ipa_compare(v1.val.px.ip, v2.val.px.ip);
+  case T_PATH_MASK:
+    return pm_path_compare(v1.val.path_mask, v2.val.path_mask);
   default:
     debug( "Compare of unkown entities: %x\n", v1.type );
     return CMP_ERROR;