diff options
author | Michael Tuexen <tuexen@fh-muenster.de> | 2015-12-06 17:31:45 +0100 |
---|---|---|
committer | Michael Tuexen <tuexen@fh-muenster.de> | 2015-12-06 17:31:45 +0100 |
commit | 49335e137be22deec1eeb518c8b3e192c3d9a452 (patch) | |
tree | 928560107a6bf4421f13306b5123f5ceb1bc111d /usrsctplib | |
parent | b71f558bfd3c5814e25936dd1a9d5d55ff5bc5d3 (diff) | |
download | usrsctp-49335e137be22deec1eeb518c8b3e192c3d9a452.tar.gz |
Sync with Yosemite sources.
Diffstat (limited to 'usrsctplib')
-rwxr-xr-x | usrsctplib/netinet/sctp_input.c | 3 | ||||
-rwxr-xr-x | usrsctplib/netinet/sctp_output.c | 8 | ||||
-rwxr-xr-x | usrsctplib/netinet/sctp_pcb.c | 7 | ||||
-rwxr-xr-x | usrsctplib/netinet/sctp_pcb.h | 8 | ||||
-rwxr-xr-x | usrsctplib/netinet/sctp_usrreq.c | 7 | ||||
-rwxr-xr-x | usrsctplib/netinet/sctputil.c | 6 | ||||
-rwxr-xr-x | usrsctplib/netinet/sctputil.h | 4 | ||||
-rw-r--r-- | usrsctplib/netinet6/sctp6_usrreq.c | 4 |
8 files changed, 26 insertions, 21 deletions
diff --git a/usrsctplib/netinet/sctp_input.c b/usrsctplib/netinet/sctp_input.c index 6d1d4f3b..7990f4ef 100755 --- a/usrsctplib/netinet/sctp_input.c +++ b/usrsctplib/netinet/sctp_input.c @@ -32,7 +32,7 @@ #ifdef __FreeBSD__ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/netinet/sctp_input.c 291752 2015-12-04 08:49:27Z tuexen $"); +__FBSDID("$FreeBSD: head/sys/netinet/sctp_input.c 291904 2015-12-06 16:17:57Z tuexen $"); #endif #include <netinet/sctp_os.h> @@ -2177,6 +2177,7 @@ sctp_process_cookie_new(struct mbuf *m, int iphlen, int offset, */ stcb = sctp_aloc_assoc(inp, init_src, &error, ntohl(initack_cp->init.initiate_tag), vrf_id, + ntohs(initack_cp->init.num_outbound_streams), #if defined(__FreeBSD__) && __FreeBSD_version >= 500000 (struct thread *)NULL #elif defined(__Windows__) diff --git a/usrsctplib/netinet/sctp_output.c b/usrsctplib/netinet/sctp_output.c index 35de5659..1a19ee08 100755 --- a/usrsctplib/netinet/sctp_output.c +++ b/usrsctplib/netinet/sctp_output.c @@ -32,7 +32,7 @@ #ifdef __FreeBSD__ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/netinet/sctp_output.c 291700 2015-12-03 15:19:29Z tuexen $"); +__FBSDID("$FreeBSD: head/sys/netinet/sctp_output.c 291904 2015-12-06 16:17:57Z tuexen $"); #endif #include <netinet/sctp_os.h> @@ -3745,6 +3745,7 @@ sctp_process_cmsgs_for_init(struct sctp_tcb *stcb, struct mbuf *control, int *er #endif stcb->asoc.strmout[i].stream_no = i; stcb->asoc.strmout[i].last_msg_incomplete = 0; + stcb->asoc.strmout[i].state = SCTP_STREAM_OPENING; stcb->asoc.ss_functions.sctp_ss_init_stream(&stcb->asoc.strmout[i], NULL); } } @@ -6265,10 +6266,10 @@ sctp_send_initiate_ack(struct sctp_inpcb *inp, struct sctp_tcb *stcb, his_limit = ntohs(init_chk->init.num_inbound_streams); /* choose what I want */ if (asoc != NULL) { - if (asoc->streamoutcnt > inp->sctp_ep.pre_open_stream_count) { + if (asoc->streamoutcnt > asoc->pre_open_streams) { i_want = asoc->streamoutcnt; } else { - i_want = inp->sctp_ep.pre_open_stream_count; + i_want = asoc->pre_open_streams; } } else { i_want = inp->sctp_ep.pre_open_stream_count; @@ -13544,6 +13545,7 @@ sctp_lower_sosend(struct socket *so, } #endif stcb = sctp_aloc_assoc(inp, addr, &error, 0, vrf_id, + inp->sctp_ep.pre_open_stream_count, #if !(defined( __Panda__) || defined(__Userspace__)) p #else diff --git a/usrsctplib/netinet/sctp_pcb.c b/usrsctplib/netinet/sctp_pcb.c index 90d2ad6c..f623b512 100755 --- a/usrsctplib/netinet/sctp_pcb.c +++ b/usrsctplib/netinet/sctp_pcb.c @@ -32,7 +32,7 @@ #ifdef __FreeBSD__ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.c 291141 2015-11-21 18:21:16Z tuexen $"); +__FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.c 291904 2015-12-06 16:17:57Z tuexen $"); #endif #include <netinet/sctp_os.h> @@ -4897,7 +4897,8 @@ sctp_aloc_a_assoc_id(struct sctp_inpcb *inp, struct sctp_tcb *stcb) */ struct sctp_tcb * sctp_aloc_assoc(struct sctp_inpcb *inp, struct sockaddr *firstaddr, - int *error, uint32_t override_tag, uint32_t vrf_id, + int *error, uint32_t override_tag, uint32_t vrf_id, + uint16_t o_streams, #if defined(__FreeBSD__) && __FreeBSD_version >= 500000 struct thread *p #elif defined(__Windows__) @@ -5093,7 +5094,7 @@ sctp_aloc_assoc(struct sctp_inpcb *inp, struct sockaddr *firstaddr, /* setup back pointer's */ stcb->sctp_ep = inp; stcb->sctp_socket = inp->sctp_socket; - if ((err = sctp_init_asoc(inp, stcb, override_tag, vrf_id))) { + if ((err = sctp_init_asoc(inp, stcb, override_tag, vrf_id, o_streams))) { /* failed */ SCTP_TCB_LOCK_DESTROY(stcb); SCTP_TCB_SEND_LOCK_DESTROY(stcb); diff --git a/usrsctplib/netinet/sctp_pcb.h b/usrsctplib/netinet/sctp_pcb.h index 5fc6bee9..15380f0d 100755 --- a/usrsctplib/netinet/sctp_pcb.h +++ b/usrsctplib/netinet/sctp_pcb.h @@ -32,7 +32,7 @@ #ifdef __FreeBSD__ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.h 284515 2015-06-17 15:20:14Z tuexen $"); +__FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.h 291904 2015-12-06 16:17:57Z tuexen $"); #endif #ifndef _NETINET_SCTP_PCB_H_ @@ -795,16 +795,16 @@ void sctp_inpcb_free(struct sctp_inpcb *, int, int); #if defined(__FreeBSD__) && __FreeBSD_version >= 500000 struct sctp_tcb * sctp_aloc_assoc(struct sctp_inpcb *, struct sockaddr *, - int *, uint32_t, uint32_t, struct thread *); + int *, uint32_t, uint32_t, uint16_t, struct thread *); #elif defined(__Windows__) struct sctp_tcb * sctp_aloc_assoc(struct sctp_inpcb *, struct sockaddr *, - int *, uint32_t, uint32_t, PKTHREAD); + int *, uint32_t, uint32_t, uint16_t, PKTHREAD); #else /* proc will be NULL for __Userspace__ */ struct sctp_tcb * sctp_aloc_assoc(struct sctp_inpcb *, struct sockaddr *, - int *, uint32_t, uint32_t, struct proc *); + int *, uint32_t, uint32_t, uint16_t, struct proc *); #endif int sctp_free_assoc(struct sctp_inpcb *, struct sctp_tcb *, int, int); diff --git a/usrsctplib/netinet/sctp_usrreq.c b/usrsctplib/netinet/sctp_usrreq.c index 4cf49538..22d7d007 100755 --- a/usrsctplib/netinet/sctp_usrreq.c +++ b/usrsctplib/netinet/sctp_usrreq.c @@ -32,7 +32,7 @@ #ifdef __FreeBSD__ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/netinet/sctp_usrreq.c 291376 2015-11-26 23:12:41Z tuexen $"); +__FBSDID("$FreeBSD: head/sys/netinet/sctp_usrreq.c 291904 2015-12-06 16:17:57Z tuexen $"); #endif #include <netinet/sctp_os.h> @@ -2059,6 +2059,7 @@ sctp_do_connect_x(struct socket *so, struct sctp_inpcb *inp, void *optval, /* We are GOOD to go */ stcb = sctp_aloc_assoc(inp, sa, &error, 0, vrf_id, + inp->sctp_ep.pre_open_stream_count, #if defined(__FreeBSD__) && __FreeBSD_version >= 500000 (struct thread *)p #elif defined(__Windows__) @@ -7844,7 +7845,7 @@ sctp_connect(struct socket *so, struct mbuf *nam, struct proc *p) } #endif /* We are GOOD to go */ - stcb = sctp_aloc_assoc(inp, addr, &error, 0, vrf_id, p); + stcb = sctp_aloc_assoc(inp, addr, &error, 0, vrf_id, inp->sctp_ep.pre_open_stream_count, p); if (stcb == NULL) { /* Gak! no memory */ goto out_now; @@ -8009,7 +8010,7 @@ sctpconn_connect(struct socket *so, struct sockaddr *addr) } #endif /* We are GOOD to go */ - stcb = sctp_aloc_assoc(inp, addr, &error, 0, vrf_id, p); + stcb = sctp_aloc_assoc(inp, addr, &error, 0, vrf_id, inp->sctp_ep.pre_open_stream_count, p); if (stcb == NULL) { /* Gak! no memory */ goto out_now; diff --git a/usrsctplib/netinet/sctputil.c b/usrsctplib/netinet/sctputil.c index f42c0365..fb0aea96 100755 --- a/usrsctplib/netinet/sctputil.c +++ b/usrsctplib/netinet/sctputil.c @@ -32,7 +32,7 @@ #ifdef __FreeBSD__ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/netinet/sctputil.c 291364 2015-11-26 09:25:20Z tuexen $"); +__FBSDID("$FreeBSD: head/sys/netinet/sctputil.c 291904 2015-12-06 16:17:57Z tuexen $"); #endif #include <netinet/sctp_os.h> @@ -1005,7 +1005,7 @@ sctp_map_assoc_state(int kernel_state) int sctp_init_asoc(struct sctp_inpcb *inp, struct sctp_tcb *stcb, - uint32_t override_tag, uint32_t vrf_id) + uint32_t override_tag, uint32_t vrf_id, uint16_t o_strms) { struct sctp_association *asoc; /* @@ -1177,7 +1177,7 @@ sctp_init_asoc(struct sctp_inpcb *inp, struct sctp_tcb *stcb, * that we request by default. */ asoc->strm_realoutsize = asoc->streamoutcnt = asoc->pre_open_streams = - inp->sctp_ep.pre_open_stream_count; + o_strms; SCTP_MALLOC(asoc->strmout, struct sctp_stream_out *, asoc->streamoutcnt * sizeof(struct sctp_stream_out), SCTP_M_STRMO); diff --git a/usrsctplib/netinet/sctputil.h b/usrsctplib/netinet/sctputil.h index 80c47f44..2276177e 100755 --- a/usrsctplib/netinet/sctputil.h +++ b/usrsctplib/netinet/sctputil.h @@ -32,7 +32,7 @@ #ifdef __FreeBSD__ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/netinet/sctputil.h 287282 2015-08-29 09:14:32Z tuexen $"); +__FBSDID("$FreeBSD: head/sys/netinet/sctputil.h 291904 2015-12-06 16:17:57Z tuexen $"); #endif #ifndef _NETINET_SCTP_UTIL_H_ @@ -82,7 +82,7 @@ uint32_t sctp_select_initial_TSN(struct sctp_pcb *); uint32_t sctp_select_a_tag(struct sctp_inpcb *, uint16_t lport, uint16_t rport, int); -int sctp_init_asoc(struct sctp_inpcb *, struct sctp_tcb *, uint32_t, uint32_t); +int sctp_init_asoc(struct sctp_inpcb *, struct sctp_tcb *, uint32_t, uint32_t, uint16_t); void sctp_fill_random_store(struct sctp_pcb *); diff --git a/usrsctplib/netinet6/sctp6_usrreq.c b/usrsctplib/netinet6/sctp6_usrreq.c index 5aa49ed2..25eebbf5 100644 --- a/usrsctplib/netinet6/sctp6_usrreq.c +++ b/usrsctplib/netinet6/sctp6_usrreq.c @@ -32,7 +32,7 @@ #ifdef __FreeBSD__ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/netinet6/sctp6_usrreq.c 285877 2015-07-25 18:26:09Z tuexen $"); +__FBSDID("$FreeBSD: head/sys/netinet6/sctp6_usrreq.c 291904 2015-12-06 16:17:57Z tuexen $"); #endif #include <netinet/sctp_os.h> @@ -1312,7 +1312,7 @@ sctp6_connect(struct socket *so, struct mbuf *nam, struct proc *p) return (EALREADY); } /* We are GOOD to go */ - stcb = sctp_aloc_assoc(inp, addr, &error, 0, vrf_id, p); + stcb = sctp_aloc_assoc(inp, addr, &error, 0, vrf_id, inp->sctp_ep.pre_open_stream_count, p); SCTP_ASOC_CREATE_UNLOCK(inp); if (stcb == NULL) { /* Gak! no memory */ |