VirtualBox

vbox的更動 57416 路徑 trunk/src/VBox/NetworkServices


忽略:
時間撮記:
2015-8-18 上午11:19:28 (9 年 以前)
作者:
vboxsync
訊息:

More DECLCALLBACK fixes; retired RTMemAutoPtr.

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/NetworkServices/NAT/VBoxNetLwipNAT.cpp

    r56318 r57416  
    1818/* Must be included before winutils.h (lwip/def.h), otherwise Windows build breaks. */
    1919#define LOG_GROUP LOG_GROUP_NAT_SERVICE
    20 
    21 #include <iprt/cpp/mem.h>
    2220
    2321#include "winutils.h"
     
    183181     */
    184182    bool fDontLoadRulesOnStartup;
    185     static void onLwipTcpIpInit(void *arg);
    186     static void onLwipTcpIpFini(void *arg);
     183    static DECLCALLBACK(void) onLwipTcpIpInit(void *arg);
     184    static DECLCALLBACK(void) onLwipTcpIpFini(void *arg);
    187185    static err_t netifInit(netif *pNetif);
    188186    static err_t netifLinkoutput(netif *pNetif, pbuf *pBuf);
    189     static int intNetThreadRecv(RTTHREAD, void *);
     187    /* static int intNetThreadRecv(RTTHREAD, void *); - unused */
    190188
    191189    VECNATSERVICEPF m_vecPortForwardRule4;
     
    294292
    295293                default:
    296                     LogRel(("Event: %s %s port-forwarding rule \"%s\":"
    297                             " invalid protocol %d\n",
     294                    LogRel(("Event: %s %s port-forwarding rule \"%s\": invalid protocol %d\n",
    298295                            fCreateFW ? "Add" : "Remove",
    299296                            fIPv6FW ? "IPv6" : "IPv4",
     
    303300            }
    304301
    305             LogRel(("Event: %s %s port-forwarding rule \"%s\":"
    306                     " %s %s%s%s:%d -> %s%s%s:%d\n",
     302            LogRel(("Event: %s %s port-forwarding rule \"%s\": %s %s%s%s:%d -> %s%s%s:%d\n",
    307303                    fCreateFW ? "Add" : "Remove",
    308304                    fIPv6FW ? "IPv6" : "IPv4",
     
    353349                {
    354350                    /* compare */
    355                     NATSEVICEPORTFORWARDRULE& natFw = *it;
     351                    NATSEVICEPORTFORWARDRULE &natFw = *it;
    356352                    if (   natFw.Pfr.iPfrProto == r.Pfr.iPfrProto
    357353                        && natFw.Pfr.u16PfrHostPort == r.Pfr.u16PfrHostPort
    358                         && (strncmp(natFw.Pfr.szPfrHostAddr, r.Pfr.szPfrHostAddr, INET6_ADDRSTRLEN) == 0)
     354                        && strncmp(natFw.Pfr.szPfrHostAddr, r.Pfr.szPfrHostAddr, INET6_ADDRSTRLEN) == 0
    359355                        && natFw.Pfr.u16PfrGuestPort == r.Pfr.u16PfrGuestPort
    360                         && (strncmp(natFw.Pfr.szPfrGuestAddr, r.Pfr.szPfrGuestAddr, INET6_ADDRSTRLEN) == 0))
     356                        && strncmp(natFw.Pfr.szPfrGuestAddr, r.Pfr.szPfrGuestAddr, INET6_ADDRSTRLEN) == 0)
    361357                    {
    362                         RTCMemAutoPtr<fwspec> pFwCopy;
    363                         if (RT_UNLIKELY(!pFwCopy.alloc()))
    364                             break;
    365 
    366                         memcpy(pFwCopy.get(), &natFw.FWSpec, sizeof(natFw.FWSpec));
    367 
    368                         int status = portfwd_rule_del(pFwCopy.get());
    369                         if (status != 0)
    370                             break;
    371 
    372                         pFwCopy.release(); /* owned by lwip thread now */
    373                         rules.erase(it);
     358                        fwspec *pFwCopy = (fwspec *)RTMemDup(&natFw.FWSpec, sizeof(natFw.FWSpec));
     359                        if (pFwCopy)
     360                        {
     361                            int status = portfwd_rule_del(pFwCopy);
     362                            if (status == 0)
     363                                rules.erase(it);   /* (pFwCopy is owned by lwip thread now.) */
     364                            else
     365                                RTMemFree(pFwCopy);
     366                        }
    374367                        break;
    375368                    }
     
    427420
    428421
    429 void VBoxNetLwipNAT::onLwipTcpIpInit(void* arg)
     422/*static*/ DECLCALLBACK(void) VBoxNetLwipNAT::onLwipTcpIpInit(void *arg)
    430423{
    431424    AssertPtrReturnVoid(arg);
     
    520513
    521514
    522 void VBoxNetLwipNAT::onLwipTcpIpFini(void* arg)
     515/*static*/ DECLCALLBACK(void) VBoxNetLwipNAT::onLwipTcpIpFini(void* arg)
    523516{
    524517    AssertPtrReturnVoid(arg);
     
    535528 * Callback for netif_add() to initialize the interface.
    536529 */
    537 err_t VBoxNetLwipNAT::netifInit(netif *pNetif)
     530/*static*/ err_t VBoxNetLwipNAT::netifInit(netif *pNetif)
    538531{
    539532    err_t rcLwip = ERR_OK;
     
    597590
    598591
    599 err_t VBoxNetLwipNAT::netifLinkoutput(netif *pNetif, pbuf *pPBuf)
     592/*static*/ err_t VBoxNetLwipNAT::netifLinkoutput(netif *pNetif, pbuf *pPBuf)
    600593{
    601594    AssertPtrReturn(pNetif, ERR_ARG);
     
    702695
    703696
    704 int VBoxNetLwipNAT::natServicePfRegister(NATSEVICEPORTFORWARDRULE& natPf)
     697/*static*/ int VBoxNetLwipNAT::natServicePfRegister(NATSEVICEPORTFORWARDRULE& natPf)
    705698{
    706699    int lrc;
     
    739732        return VERR_IGNORED;
    740733
    741     RTCMemAutoPtr<fwspec> pFwCopy;
    742     if (RT_UNLIKELY(!pFwCopy.alloc()))
    743     {
     734    fwspec *pFwCopy = (fwspec *)RTMemDup(&natPf.FWSpec, sizeof(natPf.FWSpec));
     735    if (pFwCopy)
     736    {
     737        lrc = portfwd_rule_add(pFwCopy);
     738        if (lrc == 0)
     739            return VINF_SUCCESS; /* (pFwCopy is owned by lwip thread now.) */
     740        RTMemFree(pFwCopy);
     741    }
     742    else
    744743        LogRel(("Unable to allocate memory for %s rule \"%s\"\n",
    745744                natPf.Pfr.fPfrIPv6 ? "IPv6" : "IPv4",
    746745                natPf.Pfr.szPfrName));
    747         return VERR_IGNORED;
    748     }
    749 
    750     memcpy(pFwCopy.get(), &natPf.FWSpec, sizeof(natPf.FWSpec));
    751 
    752     lrc = portfwd_rule_add(pFwCopy.get());
    753     if (lrc != 0)
    754         return VERR_IGNORED;
    755 
    756     pFwCopy.release();          /* owned by lwip thread now */
    757     return VINF_SUCCESS;
    758 }
    759 
    760 
    761 int VBoxNetLwipNAT::natServiceProcessRegisteredPf(VECNATSERVICEPF& vecRules)
     746    return VERR_IGNORED;
     747}
     748
     749
     750/*static*/ int VBoxNetLwipNAT::natServiceProcessRegisteredPf(VECNATSERVICEPF& vecRules)
    762751{
    763752    ITERATORNATSERVICEPF it;
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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