OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
From: Arjan de Vet (list.postfix.usersadv.iae.nl)
Date: Tue Mar 06 2001 - 17:19:18 CST

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    In article <20010306213602.11432BC06Dspike.porcupine.org> you write:

    >Every 100 seconds means whenever the master 'wakeup' timer goes
    >off. This means that UNIX-domain socket behavior has changed.

    I've looked through recent commits to socket code and this one may be
    the problem (not verified yet, it's time to go to sleep ;-):

    jlemon 2001/02/13 18:09:12 PST

      Modified files:
        sys/kern uipc_socket.c uipc_syscalls.c
      Log:
      Return ECONNABORTED from accept if connection is closed while on the
      listen queue, as well as the current behavior of a zero-length sockaddr.
      
      Obtained from: KAME
      Reviewed by: -net
      
      Revision Changes Path
      1.88 +3 -6 src/sys/kern/uipc_socket.c
      1.85 +15 -2 src/sys/kern/uipc_syscalls.c

    This change was applied on Feb 24 to FreeBSD 4.2-stable.

    The change in uipc_socket.c is:

    -365,11 +365,8
            so->so_state &= ~SS_NOFDREF;
            if ((so->so_state & SS_ISDISCONNECTED) == 0)
                    error = (*so->so_proto->pr_usrreqs->pru_accept)(so,
    nam);
    - else {
    - if (nam)
    - *nam = 0;
    - error = 0;
    - }
    + else
    + error = ECONNABORTED;
            splx(s);
            return (error);
     }

    ECONNABORTED is exactly the error I'm seeing now.

    >At the very least, the kernel could deliver the data that
    >is send with connect/write/disconnect.

    Arjan

    -- 
    Arjan de Vet, Eindhoven, The Netherlands              <Arjan.deVetadv.iae.nl>
    URL: http://www.iae.nl/users/devet/           for PGP key: finger devetiae.nl