summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_output.c
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2007-06-02 11:05:08 +0000
committerrrs <rrs@FreeBSD.org>2007-06-02 11:05:08 +0000
commit18555b3d48ec06d96b44fa98539c6db54196054e (patch)
treec18f72f2ca85c02cfe7e378a329a507d80f9907b /sys/netinet/sctp_output.c
parentc5c0761a84c2231d37094c3bc212e67e381f5fe0 (diff)
downloadFreeBSD-src-18555b3d48ec06d96b44fa98539c6db54196054e.zip
FreeBSD-src-18555b3d48ec06d96b44fa98539c6db54196054e.tar.gz
- fix initial pcb vrf setting when the initial vrf is not the
default_vrf_id - Missing lock/unlock of inp added as well in the v6 side. - IFN hash table moves to sctppcbinfo since indexes are unique across systems (including different VRFs) this makes it easier to do ifn lookups.
Diffstat (limited to 'sys/netinet/sctp_output.c')
-rw-r--r--sys/netinet/sctp_output.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c
index 022ffbe..fcc347b 100644
--- a/sys/netinet/sctp_output.c
+++ b/sys/netinet/sctp_output.c
@@ -2370,7 +2370,7 @@ sctp_choose_boundspecific_inp(struct sctp_inpcb *inp,
ifn = SCTP_GET_IFN_VOID_FROM_ROUTE(ro);
ifn_index = SCTP_GET_IF_INDEX_FROM_ROUTE(ro);
- sctp_ifn = sctp_find_ifn(vrf, ifn, ifn_index);
+ sctp_ifn = sctp_find_ifn(ifn, ifn_index);
/*
* first question, is the ifn we will emit on in our list, if so, we
* want such an address. Note that we first looked for a preferred
@@ -2478,7 +2478,7 @@ sctp_choose_boundspecific_stcb(struct sctp_inpcb *inp,
ifn = SCTP_GET_IFN_VOID_FROM_ROUTE(ro);
ifn_index = SCTP_GET_IF_INDEX_FROM_ROUTE(ro);
- sctp_ifn = sctp_find_ifn(vrf, ifn, ifn_index);
+ sctp_ifn = sctp_find_ifn(ifn, ifn_index);
/*
* first question, is the ifn we will emit on in our list? If so,
@@ -2705,7 +2705,7 @@ sctp_choose_boundall(struct sctp_inpcb *inp,
ifn = SCTP_GET_IFN_VOID_FROM_ROUTE(ro);
ifn_index = SCTP_GET_IF_INDEX_FROM_ROUTE(ro);
- emit_ifn = looked_at = sctp_ifn = sctp_find_ifn(vrf, ifn, ifn_index);
+ emit_ifn = looked_at = sctp_ifn = sctp_find_ifn(ifn, ifn_index);
if (sctp_ifn == NULL) {
/* ?? We don't have this guy ?? */
goto bound_all_plan_b;
@@ -10572,7 +10572,7 @@ sctp_lower_sosend(struct socket *so,
struct thread *p
)
{
- unsigned int sndlen, max_len;
+ unsigned int sndlen = 0, max_len;
int error, len;
struct mbuf *top = NULL;
@@ -11747,6 +11747,7 @@ skip_out_eof:
out:
out_unlocked:
+
if (create_lock_applied) {
SCTP_ASOC_CREATE_UNLOCK(inp);
create_lock_applied = 0;
OpenPOWER on IntegriCloud