VirtualBox

Changeset 41455 in vbox


Ignore:
Timestamp:
May 28, 2012 2:31:25 AM (13 years ago)
Author:
vboxsync
Message:

NAT: Don't spend time on connections with uninitiolized template.

Location:
trunk/src/VBox/Devices/Network/slirp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/slirp/socket.c

    r41453 r41455  
    341341        else
    342342        {
     343            int fUninitiolizedTemplate = 0;
     344            fUninitiolizedTemplate = RT_BOOL((   sototcpcb(so)
     345                                              && (  sototcpcb(so)->t_template.ti_src.s_addr == INADDR_ANY
     346                                                 || sototcpcb(so)->t_template.ti_dst.s_addr == INADDR_ANY)));
    343347            /* nn == 0 means peer has performed an orderly shutdown */
    344348            Log2(("%s: disconnected, nn = %d, errno = %d (%s)\n",
    345349                  __PRETTY_FUNCTION__, nn, errno, strerror(errno)));
    346350            sofcantrcvmore(so);
    347             tcp_sockclosed(pData, sototcpcb(so));
     351            if (!fUninitiolizedTemplate)
     352                tcp_sockclosed(pData, sototcpcb(so));
     353            else
     354                tcp_drop(pData, sototcpcb(so), errno);
    348355            SOCKET_UNLOCK(so);
    349356            STAM_PROFILE_STOP(&pData->StatIOread, a);
  • trunk/src/VBox/Devices/Network/slirp/tcp_subr.c

    r40621 r41455  
    244244{
    245245*/
     246    int fUninitiolizedTemplate = 0;
    246247#ifndef LOG_ENABLED
    247248    NOREF(err);
    248249#endif
    249250    LogFlowFunc(("ENTER: tp = %R[tcpcb793], errno = %d\n", tp, err));
    250 
    251     if (TCPS_HAVERCVDSYN(tp->t_state))
     251    fUninitiolizedTemplate = RT_BOOL((   tp
     252                                      && (  tp->t_template.ti_src.s_addr == INADDR_ANY
     253                                         || tp->t_template.ti_dst.s_addr == INADDR_ANY)));
     254
     255    if (   TCPS_HAVERCVDSYN(tp->t_state)
     256        && !fUninitiolizedTemplate)
    252257    {
    253258        TCP_STATE_SWITCH_TO(tp, TCPS_CLOSED);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette