Page MenuHomeFreeBSD

D31136.id92303.diff
No OneTemporary

D31136.id92303.diff

diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -243,12 +243,11 @@
struct pf_addr *, struct pf_addr *, u_int16_t,
u_int16_t *, u_int16_t *, u_int16_t *,
u_int16_t *, u_int8_t, sa_family_t);
-static void pf_send_tcp(struct mbuf *,
- const struct pf_krule *, sa_family_t,
+static void pf_send_tcp(const struct pf_krule *, sa_family_t,
const struct pf_addr *, const struct pf_addr *,
u_int16_t, u_int16_t, u_int32_t, u_int32_t,
u_int8_t, u_int16_t, u_int16_t, u_int8_t, int,
- u_int16_t, struct ifnet *);
+ u_int16_t);
static void pf_send_icmp(struct mbuf *, u_int8_t, u_int8_t,
sa_family_t, struct pf_krule *);
static void pf_detach_state(struct pf_kstate *);
@@ -1725,13 +1724,13 @@
if (s->src.state == PF_TCPS_PROXY_DST) {
/* XXX wire key the right one? */
- pf_send_tcp(NULL, s->rule.ptr, s->key[PF_SK_WIRE]->af,
+ pf_send_tcp(s->rule.ptr, s->key[PF_SK_WIRE]->af,
&s->key[PF_SK_WIRE]->addr[1],
&s->key[PF_SK_WIRE]->addr[0],
s->key[PF_SK_WIRE]->port[1],
s->key[PF_SK_WIRE]->port[0],
s->src.seqhi, s->src.seqlo + 1,
- TH_RST|TH_ACK, 0, 0, 0, 1, s->tag, NULL);
+ TH_RST|TH_ACK, 0, 0, 0, 1, s->tag);
}
LIST_REMOVE(s, entry);
@@ -2461,11 +2460,11 @@
}
static void
-pf_send_tcp(struct mbuf *replyto, const struct pf_krule *r, sa_family_t af,
+pf_send_tcp(const struct pf_krule *r, sa_family_t af,
const struct pf_addr *saddr, const struct pf_addr *daddr,
u_int16_t sport, u_int16_t dport, u_int32_t seq, u_int32_t ack,
u_int8_t flags, u_int16_t win, u_int16_t mss, u_int8_t ttl, int tag,
- u_int16_t rtag, struct ifnet *ifp)
+ u_int16_t rtag)
{
struct pf_send_entry *pfse;
struct mbuf *m;
@@ -2679,10 +2678,10 @@
ack++;
if (th->th_flags & TH_FIN)
ack++;
- pf_send_tcp(m, r, af, pd->dst,
+ pf_send_tcp(r, af, pd->dst,
pd->src, th->th_dport, th->th_sport,
ntohl(th->th_ack), ack, TH_RST|TH_ACK, 0, 0,
- r->return_ttl, 1, 0, kif->pfik_ifp);
+ r->return_ttl, 1, 0);
}
} else if (pd->proto != IPPROTO_ICMP && af == AF_INET &&
r->return_icmp)
@@ -3941,9 +3940,9 @@
mss = pf_calc_mss(pd->src, pd->af, rtid, mss);
mss = pf_calc_mss(pd->dst, pd->af, rtid, mss);
s->src.mss = mss;
- pf_send_tcp(NULL, r, pd->af, pd->dst, pd->src, th->th_dport,
+ pf_send_tcp(r, pd->af, pd->dst, pd->src, th->th_dport,
th->th_sport, s->src.seqhi, ntohl(th->th_seq) + 1,
- TH_SYN|TH_ACK, 0, s->src.mss, 0, 1, 0, NULL);
+ TH_SYN|TH_ACK, 0, s->src.mss, 0, 1, 0);
REASON_SET(&reason, PFRES_SYNPROXY);
return (PF_SYNPROXY_DROP);
}
@@ -4385,12 +4384,11 @@
(*state)->src.state == TCPS_SYN_SENT) {
/* Send RST for state mismatches during handshake */
if (!(th->th_flags & TH_RST))
- pf_send_tcp(NULL, (*state)->rule.ptr, pd->af,
+ pf_send_tcp((*state)->rule.ptr, pd->af,
pd->dst, pd->src, th->th_dport,
th->th_sport, ntohl(th->th_ack), 0,
TH_RST, 0, 0,
- (*state)->rule.ptr->return_ttl, 1, 0,
- kif->pfik_ifp);
+ (*state)->rule.ptr->return_ttl, 1, 0);
src->seqlo = 0;
src->seqhi = 1;
src->max_win = 1;
@@ -4540,10 +4538,10 @@
REASON_SET(reason, PFRES_SYNPROXY);
return (PF_DROP);
}
- pf_send_tcp(NULL, (*state)->rule.ptr, pd->af, pd->dst,
+ pf_send_tcp((*state)->rule.ptr, pd->af, pd->dst,
pd->src, th->th_dport, th->th_sport,
(*state)->src.seqhi, ntohl(th->th_seq) + 1,
- TH_SYN|TH_ACK, 0, (*state)->src.mss, 0, 1, 0, NULL);
+ TH_SYN|TH_ACK, 0, (*state)->src.mss, 0, 1, 0);
REASON_SET(reason, PFRES_SYNPROXY);
return (PF_SYNPROXY_DROP);
} else if ((th->th_flags & (TH_ACK|TH_RST|TH_FIN)) != TH_ACK ||
@@ -4569,11 +4567,11 @@
(*state)->src.max_win = MAX(ntohs(th->th_win), 1);
if ((*state)->dst.seqhi == 1)
(*state)->dst.seqhi = htonl(arc4random());
- pf_send_tcp(NULL, (*state)->rule.ptr, pd->af,
+ pf_send_tcp((*state)->rule.ptr, pd->af,
&sk->addr[pd->sidx], &sk->addr[pd->didx],
sk->port[pd->sidx], sk->port[pd->didx],
(*state)->dst.seqhi, 0, TH_SYN, 0,
- (*state)->src.mss, 0, 0, (*state)->tag, NULL);
+ (*state)->src.mss, 0, 0, (*state)->tag);
REASON_SET(reason, PFRES_SYNPROXY);
return (PF_SYNPROXY_DROP);
} else if (((th->th_flags & (TH_SYN|TH_ACK)) !=
@@ -4584,16 +4582,16 @@
} else {
(*state)->dst.max_win = MAX(ntohs(th->th_win), 1);
(*state)->dst.seqlo = ntohl(th->th_seq);
- pf_send_tcp(NULL, (*state)->rule.ptr, pd->af, pd->dst,
+ pf_send_tcp((*state)->rule.ptr, pd->af, pd->dst,
pd->src, th->th_dport, th->th_sport,
ntohl(th->th_ack), ntohl(th->th_seq) + 1,
TH_ACK, (*state)->src.max_win, 0, 0, 0,
- (*state)->tag, NULL);
- pf_send_tcp(NULL, (*state)->rule.ptr, pd->af,
+ (*state)->tag);
+ pf_send_tcp((*state)->rule.ptr, pd->af,
&sk->addr[pd->sidx], &sk->addr[pd->didx],
sk->port[pd->sidx], sk->port[pd->didx],
(*state)->src.seqhi + 1, (*state)->src.seqlo + 1,
- TH_ACK, (*state)->dst.max_win, 0, 0, 1, 0, NULL);
+ TH_ACK, (*state)->dst.max_win, 0, 0, 1, 0);
(*state)->src.seqdiff = (*state)->dst.seqhi -
(*state)->src.seqlo;
(*state)->dst.seqdiff = (*state)->src.seqhi -

File Metadata

Mime Type
text/plain
Expires
Tue, Sep 24, 7:44 PM (16 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
12587240
Default Alt Text
D31136.id92303.diff (5 KB)

Event Timeline