mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 01:31:55 +00:00
Prefix comparison bug (hopefully) fixed.
This commit is contained in:
parent
6ea8ca1469
commit
d85e1f0e2f
@ -81,6 +81,8 @@ pm_path_compare(struct f_path_mask *m1, struct f_path_mask *m2)
|
|||||||
int
|
int
|
||||||
val_compare(struct f_val v1, struct f_val v2)
|
val_compare(struct f_val v1, struct f_val v2)
|
||||||
{
|
{
|
||||||
|
int rc;
|
||||||
|
|
||||||
if ((v1.type == T_VOID) && (v2.type == T_VOID))
|
if ((v1.type == T_VOID) && (v2.type == T_VOID))
|
||||||
return 0;
|
return 0;
|
||||||
if (v1.type == T_VOID) /* Hack for else */
|
if (v1.type == T_VOID) /* Hack for else */
|
||||||
@ -100,8 +102,15 @@ val_compare(struct f_val v1, struct f_val v2)
|
|||||||
if (v1.val.i < v2.val.i) return -1;
|
if (v1.val.i < v2.val.i) return -1;
|
||||||
return 1;
|
return 1;
|
||||||
case T_IP:
|
case T_IP:
|
||||||
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_PREFIX:
|
||||||
|
if (rc = ipa_compare(v1.val.px.ip, v2.val.px.ip))
|
||||||
|
return rc;
|
||||||
|
if (v1.val.px.len < v2.val.px.len)
|
||||||
|
return -1;
|
||||||
|
if (v1.val.px.len > v2.val.px.len)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
case T_PATH_MASK:
|
case T_PATH_MASK:
|
||||||
return pm_path_compare(v1.val.path_mask, v2.val.path_mask);
|
return pm_path_compare(v1.val.path_mask, v2.val.path_mask);
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user