Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!van-bc!netsoft!robert From: robert@netsoft.wimsey.bc.ca (Robert B. Nelson) Newsgroups: comp.protocols.tcp-ip Subject: Re: STREAMS flow control in SunOS 4.1.1 Message-ID: <1991Jun28.000815.9624@netsoft.wimsey.bc.ca> Date: 28 Jun 91 00:08:15 GMT References: Organization: NetSoft Systems Inc, Vancouver, British Columbia, Canada Lines: 35 In thomas@nexus.se writes: >When I've set up the connection I I_PUSH tirdwr (after I_POPing timod) >to be able to use the ordinary read / write system calls. The problem is I_POPing timod, don't do it! "tirdwr" translates the calls between the stream head and "timod", if you pop "timod" then the streams driver or mux which is next in the stream gets "timod" messages that it doesn't know how to deal with. >If I'm using sockets there wont be more than a few K bytes on the way >before write blocks. Using STREAMS I find that write will >never block, I can cram 150K down the stream without blocking. The problem is >that I seem to lose the last part of the data. Also data flowing from the >remote end is lost. Using a lanwatcher I can see that the last part of the >data written is not transmitted and that the remote end actually sends data >that is never delivered to the process. Flow control is handled within "timod" which you've removed. >I would like the behaviour of the stream to match that of a socket. >What am I missing? Is there an option that can be used on the stream that >would limit the amount of data that is on the way before blocking >or is it a bug in SunOS? >-- >Real life: Thomas Tornblom Email: t_tornblom@nexus.se >Snail mail: Communicator Nexus Phone: +46 18 171814 > Box 857 Fax: +46 18 696516 > S - 751 08 Uppsala, Sweden -- Robert B. Nelson NetSoft Systems Inc Phone: (604) 261-3652 1102 West 48th Avenue INTERNET: robert@netsoft.wimsey.bc.ca Vancouver, BC, CANADA, V6M 2N5