| 964 | } while (0) |
| 965 | |
| 966 | static void |
| 967 | pf_hash_rule_addr(MD5_CTX *ctx, struct pf_rule_addr *pfr) |
| 968 | { |
| 969 | PF_MD5_UPD(pfr, addr.type); |
| 970 | switch (pfr->addr.type) { |
| 971 | case PF_ADDR_DYNIFTL: |
| 972 | PF_MD5_UPD(pfr, addr.v.ifname); |
| 973 | PF_MD5_UPD(pfr, addr.iflags); |
| 974 | break; |
| 975 | case PF_ADDR_TABLE: |
| 976 | PF_MD5_UPD(pfr, addr.v.tblname); |
| 977 | break; |
| 978 | case PF_ADDR_ADDRMASK: |
| 979 | /* XXX ignore af? */ |
| 980 | PF_MD5_UPD(pfr, addr.v.a.addr.addr32); |
| 981 | PF_MD5_UPD(pfr, addr.v.a.mask.addr32); |
| 982 | break; |
| 983 | } |
| 984 | |
| 985 | PF_MD5_UPD(pfr, port[0]); |
| 986 | PF_MD5_UPD(pfr, port[1]); |
| 987 | PF_MD5_UPD(pfr, neg); |
| 988 | PF_MD5_UPD(pfr, port_op); |
| 989 | } |
| 990 | |
| 991 | static void |
| 992 | pf_hash_rule(MD5_CTX *ctx, struct pf_krule *rule) |