VirtualBox

Changeset 21011 in vbox


Ignore:
Timestamp:
Jun 29, 2009 5:14:02 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
49225
Message:

NAT: more readability

File:
1 edited

Legend:

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

    r21010 r21011  
    5858#define VBOX_NAT_DELAY_HACK
    5959
    60 
    6160#define GET_EXTRADATA(node, drv_inst, name, rc, type, type_name, var)                               \
    6261do {                                                                                                \
    6362    (rc) = CFGMR3Query ## type((node), name, &(var));                                               \
    6463    if (RT_FAILURE((rc)) && (rc) != VERR_CFGM_VALUE_NOT_FOUND)                                      \
     64        return PDMDrvHlpVMSetError(pThis->pDrvIns, (rc), RT_SRC_POS, N_("NAT#%d: configuration"     \
     65            " query for \""name"\" " #type_name " failed"), (drv_inst));                            \
     66}while(0)
     67
     68#define GET_ED_STRICT(node, drv_inst, name, rc, type, type_name, var)                               \
     69do {                                                                                                \
     70    (rc) = CFGMR3Query ## type((node), name, &(var));                                               \
     71    if (RT_FAILURE((rc)))                                                                           \
    6572        return PDMDrvHlpVMSetError(pThis->pDrvIns, (rc), RT_SRC_POS, N_("NAT#%d: configuration"     \
    6673            " query for \""name"\" " #type_name " failed"), (drv_inst));                            \
     
    8390#define GET_S32(rc, node, drv_inst, name, var) \
    8491    GET_EXTRADATA(node, drv_inst, name, (rc), S32, int, (var))
     92#define GET_S32_STRICT(rc, node, drv_inst, name, var) \
     93    GET_ED_STRICT(node, drv_inst, name, (rc), S32, int, (var))
    8594
    8695/*******************************************************************************
     
    724733        /* host port */
    725734        int32_t iHostPort;
    726         rc = CFGMR3QueryS32(pNode, "HostPort", &iHostPort);
    727         if (RT_FAILURE(rc))
    728             return PDMDrvHlpVMSetError(pThis->pDrvIns, rc, RT_SRC_POS, N_("NAT#%d: configuration query for \"HostPort\" integer failed"), iInstance);
     735        GET_S32_STRICT(rc, pNode, iInstance, "HostPort", iHostPort);
    729736
    730737        /* guest port */
    731738        int32_t iGuestPort;
    732         rc = CFGMR3QueryS32(pNode, "GuestPort", &iGuestPort);
    733         if (RT_FAILURE(rc))
    734             return PDMDrvHlpVMSetError(pThis->pDrvIns, rc, RT_SRC_POS, N_("NAT#%d: configuration query for \"GuestPort\" integer failed"), iInstance);
     739        GET_S32_STRICT(rc, pNode, iInstance, "GuestPort", iGuestPort);
    735740
    736741        /* guest address */
     
    745750        if (slirp_redir(pThis->pNATState, fUDP, BindIP, iHostPort, GuestIP, iGuestPort) < 0)
    746751            return PDMDrvHlpVMSetError(pThis->pDrvIns, VERR_NAT_REDIR_SETUP, RT_SRC_POS,
    747                                        N_("NAT#%d: configuration error: failed to set up redirection of %d to %d. Probably a conflict with existing services or other rules"), iInstance, iHostPort, iGuestPort);
     752                                       N_("NAT#%d: configuration error: failed to set up "
     753                                       "redirection of %d to %d. Probably a conflict with "
     754                                       "existing services or other rules"), iInstance, iHostPort,
     755                                       iGuestPort);
    748756#undef GETIP   
    749757    } /* for each redir rule */
     
    801809        "SocketRcvBuf\0SocketSndBuf\0TcpRcvSpace\0TcpSndSpace\0"))
    802810        return PDMDRV_SET_ERROR(pDrvIns, VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES,
    803                                 N_("Unknown NAT configuration option, only supports PassDomain, TFTPPrefix, BootFile and Network"));
     811                                N_("Unknown NAT configuration option, only supports PassDomain,"
     812                                " TFTPPrefix, BootFile and Network"));
    804813
    805814    /*
     
    901910        slirp_register_statistics(pThis->pNATState, pDrvIns);
    902911#ifdef VBOX_WITH_STATISTICS
    903         PDMDrvHlpSTAMRegisterF(pDrvIns, &pThis->StatQueuePktSent,    STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, "counting packet sent via PDM queue", "/Drivers/NAT%u/QueuePacketSent", pDrvIns->iInstance);
    904         PDMDrvHlpSTAMRegisterF(pDrvIns, &pThis->StatQueuePktDropped, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, "counting packet sent via PDM queue", "/Drivers/NAT%u/QueuePacketDropped", pDrvIns->iInstance);
     912        PDMDrvHlpSTAMRegisterF(pDrvIns, &pThis->StatQueuePktSent,    STAMTYPE_COUNTER,
     913                              STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, "counting packet sent viai "
     914                              "PDM queue", "/Drivers/NAT%u/QueuePacketSent", pDrvIns->iInstance);
     915        PDMDrvHlpSTAMRegisterF(pDrvIns, &pThis->StatQueuePktDropped, STAMTYPE_COUNTER,
     916                              STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, "counting packet sent via PDM"
     917                              " queue", "/Drivers/NAT%u/QueuePacketDropped", pDrvIns->iInstance);
    905918#endif
    906919
     
    923936            }
    924937
    925             rc = PDMDrvHlpPDMQueueCreate(pDrvIns, sizeof(DRVNATQUEUITEM), 50, 0, drvNATQueueConsumer, &pThis->pSendQueue);
     938            rc = PDMDrvHlpPDMQueueCreate(pDrvIns, sizeof(DRVNATQUEUITEM), 50, 0,
     939                                         drvNATQueueConsumer, &pThis->pSendQueue);
    926940            if (RT_FAILURE(rc))
    927941            {
     
    945959#else
    946960            pThis->hWakeupEvent = CreateEvent(NULL, FALSE, FALSE, NULL); /* auto-reset event */
    947             slirp_register_external_event(pThis->pNATState, pThis->hWakeupEvent, VBOX_WAKEUP_EVENT_INDEX);
     961            slirp_register_external_event(pThis->pNATState, pThis->hWakeupEvent,
     962                                          VBOX_WAKEUP_EVENT_INDEX);
    948963#endif
    949964
    950             rc = PDMDrvHlpPDMThreadCreate(pDrvIns, &pThis->pThread, pThis, drvNATAsyncIoThread, drvNATAsyncIoWakeup, 128 * _1K, RTTHREADTYPE_IO, "NAT");
     965            rc = PDMDrvHlpPDMThreadCreate(pDrvIns, &pThis->pThread, pThis, drvNATAsyncIoThread,
     966                                          drvNATAsyncIoWakeup, 128 * _1K, RTTHREADTYPE_IO, "NAT");
    951967            AssertReleaseRC(rc);
    952968
    953969#ifdef VBOX_WITH_SLIRP_MT
    954             rc = PDMDrvHlpPDMThreadCreate(pDrvIns, &pThis->pGuestThread, pThis, drvNATAsyncIoGuest, drvNATAsyncIoGuestWakeup, 128 * _1K, RTTHREADTYPE_IO, "NATGUEST");
     970            rc = PDMDrvHlpPDMThreadCreate(pDrvIns, &pThis->pGuestThread, pThis, drvNATAsyncIoGuest,
     971                                          drvNATAsyncIoGuestWakeup, 128 * _1K, RTTHREADTYPE_IO, "NATGUEST");
    955972            AssertReleaseRC(rc);
    956973#endif
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