2.) if you are increasing so_rcv buff size, may want to open window
SCCS-vsn: sys/netiso/tp_output.c 7.16
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)tp_output.c 7.15 (Berkeley) %G%
+ * @(#)tp_output.c 7.16 (Berkeley) %G%
*/
/***********************************************************
*/
/***********************************************************
goto done;
} else if ( level == SOL_SOCKET) {
if (optname == SO_RCVBUF && cmd == PRCO_SETOPT) {
goto done;
} else if ( level == SOL_SOCKET) {
if (optname == SO_RCVBUF && cmd == PRCO_SETOPT) {
+ u_long old_credit = tpcb->tp_maxlcredit;
+ if (tpcb->tp_rhiwat != so->so_rcv.sb_hiwat &&
+ tpcb->tp_state == TP_OPEN &&
+ (old_credit < tpcb->tp_maxlcredit))
+ tp_emit(AK_TPDU_type, tpcb,
+ tpcb->tp_rcvnxt, 0, MNULL);
+ tpcb->tp_rhiwat = so->so_rcv.sb_hiwat;
}
goto done;
} else if ( level != SOL_TRANSPORT ) {
}
goto done;
} else if ( level != SOL_TRANSPORT ) {
* reside in the first mbuf
*/
if (*mp) {
* reside in the first mbuf
*/
if (*mp) {
- if (cmd == PRCO_SETOPT)
+ if (cmd == PRCO_SETOPT) {
+ *mp = MNULL;
+ } else {
ASSERT ( m_compress(*mp, mp) <= MLEN );
if (error)
(*mp)->m_len = 0;
ASSERT ( m_compress(*mp, mp) <= MLEN );
if (error)
(*mp)->m_len = 0;