summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/netinet/sctp_output.c7
-rw-r--r--sys/netinet/sctp_usrreq.c2
2 files changed, 5 insertions, 4 deletions
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c
index d648d18..d1c9d71 100644
--- a/sys/netinet/sctp_output.c
+++ b/sys/netinet/sctp_output.c
@@ -11627,7 +11627,7 @@ sctp_lower_sosend(struct socket *so,
local_add_more = sndlen;
}
len = 0;
- if (non_blocking == 0) {
+ if (non_blocking) {
goto skip_preblock;
}
if (((max_len <= local_add_more) &&
@@ -11667,8 +11667,9 @@ sctp_lower_sosend(struct socket *so,
}
inqueue_bytes = stcb->asoc.total_output_queue_size - (stcb->asoc.chunks_on_out_queue * sizeof(struct sctp_data_chunk));
}
- if (SCTP_SB_LIMIT_SND(so) > stcb->asoc.total_output_queue_size) {
- max_len = SCTP_SB_LIMIT_SND(so) - stcb->asoc.total_output_queue_size;
+ inqueue_bytes = stcb->asoc.total_output_queue_size - (stcb->asoc.chunks_on_out_queue * sizeof(struct sctp_data_chunk));
+ if (SCTP_SB_LIMIT_SND(so) > inqueue_bytes) {
+ max_len = SCTP_SB_LIMIT_SND(so) - inqueue_bytes;
} else {
max_len = 0;
}
diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c
index 070c9a7..aea2db5 100644
--- a/sys/netinet/sctp_usrreq.c
+++ b/sys/netinet/sctp_usrreq.c
@@ -70,7 +70,7 @@ sctp_init(void)
* the SB_MAX whichever is smaller for the send window.
*/
sb_max_adj = (u_long)((u_quad_t) (SB_MAX) * MCLBYTES / (MSIZE + MCLBYTES));
- sctp_sendspace = min((min(SB_MAX, sb_max_adj)),
+ sctp_sendspace = min(sb_max_adj,
(((uint32_t) nmbclusters / 2) * SCTP_DEFAULT_MAXSEGMENT));
/*
* Now for the recv window, should we take the same amount? or
OpenPOWER on IntegriCloud