filter_same should now work with path masks.

This commit is contained in:
Pavel Machek 2000-04-26 09:36:47 +00:00
parent f71bded6e9
commit 2e5a8735f4

View file

@ -28,6 +28,17 @@ struct f_inst *startup_func = NULL, *test1_func, *test2_func;
#define CMP_ERROR 999 #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 */ /* Compare two values, returns -1, 0, 1 compared, ERROR 999 */
int int
val_compare(struct f_val v1, struct f_val v2) 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_IP:
case T_PREFIX: case T_PREFIX:
return ipa_compare(v1.val.px.ip, v2.val.px.ip); 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: default:
debug( "Compare of unkown entities: %x\n", v1.type ); debug( "Compare of unkown entities: %x\n", v1.type );
return CMP_ERROR; return CMP_ERROR;