Lines Matching refs:ad

140 #define	ADDR_NETWORK(ad)	((ad)->pfra_net < AF_BITS((ad)->pfra_af))
320 struct pfr_addr ad;
339 if (COPYIN(addr+i, &ad, sizeof(ad), flags))
341 if (pfr_validate_addr(&ad))
343 p = pfr_lookup_addr(kt, &ad, 1);
344 q = pfr_lookup_addr(tmpkt, &ad, 1);
347 ad.pfra_fback = PFR_FB_DUPLICATE;
349 ad.pfra_fback = PFR_FB_ADDED;
350 else if (p->pfrke_not != ad.pfra_not)
351 ad.pfra_fback = PFR_FB_CONFLICT;
353 ad.pfra_fback = PFR_FB_NONE;
356 p = pfr_create_kentry(&ad,
362 ad.pfra_fback = PFR_FB_NONE;
369 if (COPYOUT(&ad, addr+i, sizeof(ad), flags))
401 struct pfr_addr ad;
432 if (COPYIN(addr+i, &ad, sizeof(ad), flags))
434 if (pfr_validate_addr(&ad))
436 p = pfr_lookup_addr(kt, &ad, 1);
443 if (COPYIN(addr+i, &ad, sizeof(ad), flags))
445 if (pfr_validate_addr(&ad))
447 p = pfr_lookup_addr(kt, &ad, 1);
450 ad.pfra_fback = PFR_FB_NONE;
451 else if (p->pfrke_not != ad.pfra_not)
452 ad.pfra_fback = PFR_FB_CONFLICT;
454 ad.pfra_fback = PFR_FB_DUPLICATE;
456 ad.pfra_fback = PFR_FB_DELETED;
458 if (p != NULL && p->pfrke_not == ad.pfra_not &&
465 if (COPYOUT(&ad, addr+i, sizeof(ad), flags))
492 struct pfr_addr ad;
515 if (COPYIN(addr+i, &ad, sizeof(ad), flags))
517 if (pfr_validate_addr(&ad))
519 ad.pfra_fback = PFR_FB_NONE;
520 p = pfr_lookup_addr(kt, &ad, 1);
523 ad.pfra_fback = PFR_FB_DUPLICATE;
527 if (p->pfrke_not != ad.pfra_not) {
529 ad.pfra_fback = PFR_FB_CHANGED;
533 q = pfr_lookup_addr(tmpkt, &ad, 1);
535 ad.pfra_fback = PFR_FB_DUPLICATE;
538 p = pfr_create_kentry(&ad,
544 ad.pfra_fback = PFR_FB_NONE;
547 ad.pfra_fback = PFR_FB_ADDED;
553 if (COPYOUT(&ad, addr+i, sizeof(ad), flags))
564 pfr_copyout_addr(&ad, p);
565 ad.pfra_fback = PFR_FB_DELETED;
566 if (COPYOUT(&ad, addr+size+i, sizeof(ad), flags))
607 struct pfr_addr ad;
618 if (COPYIN(addr+i, &ad, sizeof(ad), flags))
620 if (pfr_validate_addr(&ad))
622 if (ADDR_NETWORK(&ad))
624 p = pfr_lookup_addr(kt, &ad, 0);
626 pfr_copyout_addr(&ad, p);
627 ad.pfra_fback = (p == NULL) ? PFR_FB_NONE :
631 if (COPYOUT(&ad, addr+i, sizeof(ad), flags))
753 struct pfr_addr ad;
765 if (COPYIN(addr+i, &ad, sizeof(ad), flags))
767 if (pfr_validate_addr(&ad))
769 p = pfr_lookup_addr(kt, &ad, 1);
771 ad.pfra_fback = (p != NULL) ?
773 if (COPYOUT(&ad, addr+i, sizeof(ad), flags))
799 pfr_validate_addr(struct pfr_addr *ad)
803 switch (ad->pfra_af) {
806 if (ad->pfra_net > 32)
812 if (ad->pfra_net > 128)
819 if (ad->pfra_net < 128 &&
820 (((caddr_t)ad)[ad->pfra_net/8] & (0xFF >> (ad->pfra_net%8))))
822 for (i = (ad->pfra_net+7)/8; i < sizeof(ad->pfra_u); i++)
823 if (((caddr_t)ad)[i])
825 if (ad->pfra_not && ad->pfra_not != 1)
827 if (ad->pfra_fback)
885 pfr_lookup_addr(struct pfr_ktable *kt, struct pfr_addr *ad, int exact)
897 if (ad->pfra_af == AF_INET) {
898 FILLIN_SIN(sa.sin, ad->pfra_ip4addr);
900 } else if ( ad->pfra_af == AF_INET6 ) {
901 FILLIN_SIN6(sa.sin6, ad->pfra_ip6addr);
904 if (ADDR_NETWORK(ad)) {
905 pfr_prepare_network(&mask, ad->pfra_af, ad->pfra_net);
925 pfr_create_kentry(struct pfr_addr *ad, int intr)
940 if (ad->pfra_af == AF_INET)
941 FILLIN_SIN(ke->pfrke_sa.sin, ad->pfra_ip4addr);
942 else if (ad->pfra_af == AF_INET6)
943 FILLIN_SIN6(ke->pfrke_sa.sin6, ad->pfra_ip6addr);
944 ke->pfrke_af = ad->pfra_af;
945 ke->pfrke_net = ad->pfra_net;
946 ke->pfrke_not = ad->pfra_not;
995 pfr_insert_kentry(struct pfr_ktable *kt, struct pfr_addr *ad, long tzero)
1000 p = pfr_lookup_addr(kt, ad, 1);
1003 p = pfr_create_kentry(ad, 1);
1068 struct pfr_addr ad;
1072 if (COPYIN(addr+i, &ad, sizeof(ad), flags))
1074 ad.pfra_fback = PFR_FB_NONE;
1075 if (COPYOUT(&ad, addr+i, sizeof(ad), flags))
1189 pfr_copyout_addr(struct pfr_addr *ad, struct pfr_kentry *ke)
1191 bzero(ad, sizeof(*ad));
1194 ad->pfra_af = ke->pfrke_af;
1195 ad->pfra_net = ke->pfrke_net;
1196 ad->pfra_not = ke->pfrke_not;
1197 if (ad->pfra_af == AF_INET)
1198 ad->pfra_ip4addr = ke->pfrke_sa.sin.sin_addr;
1199 else if (ad->pfra_af == AF_INET6)
1200 ad->pfra_ip6addr = ke->pfrke_sa.sin6.sin6_addr;
1224 struct pfr_addr ad;
1226 pfr_copyout_addr(&ad, ke);
1227 if (copyout(&ad, w->pfrw_addr, sizeof(ad)))
1677 struct pfr_addr ad;
1729 if (COPYIN(addr+i, &ad, sizeof(ad), flags))
1731 if (pfr_validate_addr(&ad))
1733 if (pfr_lookup_addr(shadow, &ad, 1) != NULL)
1735 p = pfr_create_kentry(&ad, 0);
1862 struct pfr_addr ad;
1873 pfr_copyout_addr(&ad, p);
1874 q = pfr_lookup_addr(kt, &ad, 1);