Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netpfil/pf/pf_lb.c
Show First 20 Lines • Show All 322 Lines • ▼ Show 20 Lines | if (*sn == NULL && r->rpool.opts & PF_POOL_STICKYADDR && | ||||
(r->rpool.opts & PF_POOL_TYPEMASK) != PF_POOL_NONE) | (r->rpool.opts & PF_POOL_TYPEMASK) != PF_POOL_NONE) | ||||
*sn = pf_find_src_node(saddr, r, af, 0); | *sn = pf_find_src_node(saddr, r, af, 0); | ||||
/* If a src_node was found or explicitly given and it has a non-zero | /* If a src_node was found or explicitly given and it has a non-zero | ||||
route address, use this address. A zeroed address is found if the | route address, use this address. A zeroed address is found if the | ||||
src node was created just a moment ago in pf_create_state and it | src node was created just a moment ago in pf_create_state and it | ||||
needs to be filled in with routing decision calculated here. */ | needs to be filled in with routing decision calculated here. */ | ||||
if (*sn != NULL && !PF_AZERO(&(*sn)->raddr, af)) { | if (*sn != NULL && !PF_AZERO(&(*sn)->raddr, af)) { | ||||
/* If the supplied address is the same as the current one we've | |||||
* been asked before, so tell the caller that there's no other | |||||
* address to be had. */ | |||||
if (PF_AEQ(naddr, &(*sn)->raddr, af)) | |||||
return (1); | |||||
PF_ACPY(naddr, &(*sn)->raddr, af); | PF_ACPY(naddr, &(*sn)->raddr, af); | ||||
if (V_pf_status.debug >= PF_DEBUG_MISC) { | if (V_pf_status.debug >= PF_DEBUG_MISC) { | ||||
printf("pf_map_addr: src tracking maps "); | printf("pf_map_addr: src tracking maps "); | ||||
pf_print_host(saddr, 0, af); | pf_print_host(saddr, 0, af); | ||||
printf(" to "); | printf(" to "); | ||||
pf_print_host(naddr, 0, af); | pf_print_host(naddr, 0, af); | ||||
printf("\n"); | printf("\n"); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 348 Lines • Show Last 20 Lines |