[ECOS] bsd_write() returns EINVAL

Roland Caßebohm roland.cassebohm@visionsystems.de
Fri Jan 3 15:42:00 GMT 2003


Hi,

I'm using the OpenBSD stack.

I have the following problem:
The write() function returns EINVAL, if the TCP connection is close from the 
client.
Is this right?

The following code in tcp_usrreq() generates the error:

        inp = sotoinpcb(so);
        /*
         * When a TCP is attached to a socket, then there will be
         * a (struct inpcb) pointed at by the socket, and this
         * structure will point at a subsidary (struct tcpcb).
         */
        if (inp == 0 && req != PRU_ATTACH) {
                splx(s);
                /*
                 * The following corrects an mbuf leak under rare
                 * circumstances
                 */
                if (m && (req == PRU_SEND || req == PRU_SENDOOB))
                        m_freem(m);
                return (EINVAL);                /* XXX */
        }

Thank you,
Roland

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list