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