cvs commit: src/sys/netinet sctp.h sctp_output.c sctp_structs.h
sctputil.c
Randall Stewart
rrs at FreeBSD.org
Tue Dec 4 06:41:49 PST 2007
rrs 2007-12-04 14:41:48 UTC
FreeBSD src repository
Modified files:
sys/netinet sctp.h sctp_output.c sctp_structs.h
sctputil.c
Log:
- Found a problem in non-blocking sends. When
sending, once the locks are all unlocked to
do the copy's in, its possible that other
events could then raise the number of bytes
outstanding pushing it so not all the message
would fit. This would then cause us to send
only part of the message. This fix makes it
so we keep a "reserved" amount that can be
kept in mind when making calculations to send.
- rcv msg args with a NULL/NULL for to/tolen will return an error incorrectly
for the 1-2-1 model.
- We were not doing 0 len return correctly and not setting cantrcv more
correctly. Previouly we "fixed" this area by taking out the socantrcv
since we then could not get the data out. The correct rix is to still
flag the socket but alow a by-pass route to continue to read until
all data is consumed.
MFC after: 1 week
Revision Changes Path
1.22 +9 -7 src/sys/netinet/sctp.h
1.62 +96 -71 src/sys/netinet/sctp_output.c
1.27 +1 -0 src/sys/netinet/sctp_structs.h
1.70 +9 -8 src/sys/netinet/sctputil.c
More information about the cvs-all
mailing list