fw4: fix family comparisons
authorJo-Philipp Wich <jo@mein.io>
Wed, 26 Jan 2022 10:01:55 +0000 (11:01 +0100)
committerJo-Philipp Wich <jo@mein.io>
Wed, 26 Jan 2022 10:02:51 +0000 (11:02 +0100)
The address family of an object might be either `0` or `null` so loosen
the checks to accomodate both.

Ref: https://github.com/jow-/ucode/commit/aa860a35252b4833a188f8b2f9c6a7d68963767d
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
root/usr/share/ucode/fw4.uc

index 6973eae5460e158c3707703571fb63f2df8d562f..113e4f551214de11e6419c512c19d54e1d6d8bc6 100644 (file)
@@ -264,9 +264,9 @@ function ensure_tcpudp(x) {
        return false;
 }
 
-let is_family = (x, v) => (x.family == 0 || x.family == v);
-let family_is_ipv4 = (x) => (x.family == 0 || x.family == 4);
-let family_is_ipv6 = (x) => (x.family == 0 || x.family == 6);
+let is_family = (x, v) => (!x.family || x.family == v);
+let family_is_ipv4 = (x) => (!x.family || x.family == 4);
+let family_is_ipv6 = (x) => (!x.family || x.family == 6);
 
 function infer_family(f, objects) {
        let res = f;
@@ -277,7 +277,7 @@ function infer_family(f, objects) {
                    desc = objects[i + 1];
 
                for (let obj in objs) {
-                       if (!obj || obj.family == 0 || obj.family == res)
+                       if (!obj || !obj.family || obj.family == res)
                                continue;
 
                        if (res == 0) {