| 857 | } |
| 858 | |
| 859 | int |
| 860 | pfr_insert_kentry(struct pfr_ktable *kt, struct pfr_addr *ad, long tzero) |
| 861 | { |
| 862 | struct pfr_kentry *p; |
| 863 | int rv; |
| 864 | |
| 865 | p = pfr_lookup_addr(kt, ad, 1); |
| 866 | if (p != NULL) |
| 867 | return (0); |
| 868 | p = pfr_create_kentry(ad, (kt->pfrkt_flags & PFR_TFLAG_COUNTERS) != 0); |
| 869 | if (p == NULL) |
| 870 | return (ENOMEM); |
| 871 | |
| 872 | rv = pfr_route_kentry(kt, p); |
| 873 | if (rv) |
| 874 | return (rv); |
| 875 | |
| 876 | p->pfrke_counters.pfrkc_tzero = tzero; |
| 877 | kt->pfrkt_cnt++; |
| 878 | |
| 879 | return (0); |
| 880 | } |
| 881 | |
| 882 | static void |
| 883 | pfr_remove_kentries(struct pfr_ktable *kt, |
no test coverage detected