VirtualBox

Ignore:
Timestamp:
Aug 13, 2009 6:58:11 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
51020
Message:

NAT: cosmetics

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DrvNAT.cpp

    r22217 r22219  
    170170    PPDMTHREAD              thrNATRx;
    171171    RTSEMEVENT              semNATRx;
    172 #endif
    173     int     output_flag;
     172    bool                    fCanOutput;
     173#endif
    174174} DRVNAT;
    175175/** Pointer the NAT driver instance data. */
     
    183183        return VINF_SUCCESS;
    184184    while (pThread->enmState == PDMTHREADSTATE_RUNNING)
    185         {
     185    {
    186186        int rc = pThis->pPort->pfnWaitReceiveAvail(pThis->pPort, 0);
    187         int new_flag = RT_SUCCESS(rc) ? 1 : 0;
    188 
    189         if (pThis->output_flag == 0 && new_flag == 1)
     187        bool fHaveRxBuffers = RT_SUCCESS(rc);
     188
     189        if (!pThis->fCanOutput && fHaveRxBuffers)
    190190        {
    191191            int rc;
    192             pThis->output_flag = new_flag;
     192            pThis->fCanOutput = fHaveRxBuffers;
    193193            /*we need inform NAT thread*/
    194194#ifndef RT_OS_WINDOWS
     
    201201            AssertRelease(rc == TRUE);
    202202#endif
    203         } 
    204         pThis->output_flag = new_flag;
     203        }
     204        pThis->fCanOutput = fHaveRxBuffers;
    205205        RTSemEventWait(pThis->semNATRx, RT_INDEFINITE_WAIT);
    206         }
     206    }
    207207    return VINF_SUCCESS;
    208208}
     
    221221 * NAT queue item.
    222222 */
    223 typedef enum SLIRP_EVENT {SLIRP_CHECK, SLIRP_SEND} SLIRP_EVENT;
     223enum
     224{
     225    SLIRP_CHECK,
     226    SLIRP_SEND
     227};
     228
    224229typedef struct DRVNATQUEUITEM
    225230{
     
    526531#endif /* RT_OS_WINDOWS */
    527532#ifdef SLIRP_SPLIT_CAN_OUTPUT
    528         drvNATRxWakeup(pThis->pDrvIns, pThis->thrNATRx); 
     533        drvNATRxWakeup(pThis->pDrvIns, pThis->thrNATRx);
    529534#endif
    530535    }
     
    562567{
    563568    PDRVNAT pThis = PDMINS_2_DATA(pDrvIns, PDRVNAT);
     569
    564570    if (pThread->enmState == PDMTHREADSTATE_INITIALIZING)
    565571        return VINF_SUCCESS;
    566572    while (pThread->enmState == PDMTHREADSTATE_RUNNING)
    567         {
     573    {
    568574        slirp_process_queue(pThis->pNATState);
    569         }
     575    }
    570576    return VINF_SUCCESS;
    571577}
     
    589595{
    590596#ifdef SLIRP_SPLIT_CAN_OUTPUT
    591    return pThis->output_flag;
     597   return pThis->fCanOutput;
    592598#else
    593599    return 1;
     
    840846    char szNetAddr[16];
    841847    char szNetwork[32]; /* xxx.xxx.xxx.xxx/yy */
     848
    842849    LogFlow(("drvNATConstruct:\n"));
    843850
     
    986993            rc = RTSemEventCreate(&pThis->semStatus);
    987994            AssertRC(rc);
    988             pThis->output_flag = 0;
    989995#ifdef SLIRP_SPLIT_CAN_OUTPUT
     996            pThis->fCanOutput = false;
    990997            rc = PDMDrvHlpPDMThreadCreate(pDrvIns, &pThis->thrNATRx, pThis, drvNATRx,
    991998                                          drvNATRxWakeup, 128 * _1K, RTTHREADTYPE_IO, "NATRX");
     
    10811088    NULL
    10821089};
    1083 
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