VirtualBox

Ignore:
Timestamp:
Jul 22, 2011 6:05:36 AM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
73063
Message:

NAT: makes backlog value configurable in listen(, backlog).

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/slirp/libslirp.h

    r35922 r38111  
    9595void slirp_set_mtu(PNATState, int);
    9696void slirp_info(PNATState pData, PCDBGFINFOHLP pHlp, const char *pszArgs);
     97void slirp_set_somaxconn(PNATState pData, int iSoMaxConn);
    9798
    9899#if defined(RT_OS_WINDOWS)
  • trunk/src/VBox/Devices/Network/slirp/slirp.c

    r38110 r38111  
    606606    tcp_sndspace = 64 * _1K;
    607607    tcp_rcvspace = 64 * _1K;
     608    pData->soMaxConn = 1; /* historical value */
    608609
    609610#ifdef RT_OS_WINDOWS
     
    20022003    } while (0)
    20032004
     2005void slirp_set_somaxconn(PNATState pData, int iSoMaxConn)
     2006{
     2007    LogFlowFunc(("iSoMaxConn:d\n", iSoMaxConn));
     2008    if (iSoMaxConn > SOMAXCONN)
     2009    {
     2010        LogRel(("New value of somaxconn(%d) bigger than SOMAXCONN(%d)\n", iSoMaxConn, SOMAXCONN));
     2011        pData->soMaxConn = SOMAXCONN;
     2012    }
     2013    pData->soMaxConn = iSoMaxConn > 0 ? iSoMaxConn : pData->soMaxConn;
     2014    LogRel(("New value of somaxconn: %d\n", pData->soMaxConn));
     2015    LogFlowFuncLeave();
     2016}
    20042017/* don't allow user set less 8kB and more than 1M values */
    20052018#define _8K_1M_CHECK_ARG(name, val) CHECK_ARG(name, (val), 8, 1024)
  • trunk/src/VBox/Devices/Network/slirp/slirp_state.h

    r36216 r38111  
    134134    int socket_rcv;
    135135    int socket_snd;
     136    int soMaxConn;
    136137#ifdef VBOX_WITH_SLIRP_MT
    137138    PRTREQQUEUE pReqQueue;
  • trunk/src/VBox/Devices/Network/slirp/socket.c

    r38108 r38111  
    10251025        || (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,(char *)&opt, sizeof(int)) < 0)
    10261026        || (bind(s,(struct sockaddr *)&addr, sizeof(addr)) < 0)
    1027         || (listen(s, SOMAXCONN) < 0))
     1027        || (listen(s, pData->soMaxConn) < 0))
    10281028    {
    10291029#ifdef RT_OS_WINDOWS
Note: See TracChangeset for help on using the changeset viewer.

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