View | Details | Raw Unified | Return to bug 268717 | Differences between
and this patch

Collapse All | Expand All

(-)b/sys/netpfil/pf/pf.c (+18 lines)
Lines 7492-7497 pf_test(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, struct inpcb * Link Here
7492
			action = PF_DROP;
7492
			action = PF_DROP;
7493
			REASON_SET(&reason, PFRES_MEMORY);
7493
			REASON_SET(&reason, PFRES_MEMORY);
7494
		}
7494
		}
7495
		if (dir == PF_IN && pf_isforlocal(m, AF_INET)) {
7496
			/*
7497
			 * This packet is for us. To allow PF_RDR rules to work
7498
			 * for connections initiated on the local host, we need
7499
			 * to simulate a PF_OUT transition to allow the redirect
7500
			 * to be reversed.
7501
			 */
7502
			action = pf_test(PF_OUT, pflags, ifp, m0, inp);
7503
		}
7495
		break;
7504
		break;
7496
	}
7505
	}
7497
7506
Lines 7941-7946 pf_test6(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, struct inpcb Link Here
7941
			action = PF_DROP;
7950
			action = PF_DROP;
7942
			REASON_SET(&reason, PFRES_MEMORY);
7951
			REASON_SET(&reason, PFRES_MEMORY);
7943
		}
7952
		}
7953
		if (dir == PF_IN && pf_isforlocal(m, AF_INET6)) {
7954
			/*
7955
			 * This packet is for us. To allow PF_RDR rules to work
7956
			 * for connections initiated on the local host, we need
7957
			 * to simulate a PF_OUT transition to allow the redirect
7958
			 * to be reversed.
7959
			 */
7960
			action = pf_test6(PF_OUT, pflags, ifp, m0, inp);
7961
		}
7944
		break;
7962
		break;
7945
	}
7963
	}
7946
7964

Return to bug 268717