VirtualBox

Changeset 49210 in vbox for trunk/src/VBox/NetworkServices


Ignore:
Timestamp:
Oct 21, 2013 12:38:11 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
90096
Message:

Add listener for HostNameResolutionConfigurationChange (a do-nothing
as of yet). Doesn't get events yet b/c of problems on the event
source side that are being worked on.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/NetworkServices/NAT/VBoxNetLwipNAT.cpp

    r49200 r49210  
    186186    /* Our NAT network descriptor in Main */
    187187    ComPtr<INATNetwork> m_net;
    188     ComPtr<NATNetworkListenerImpl> m_listener;
     188    ComObjPtr<NATNetworkListenerImpl> m_listener;
     189
     190    ComPtr<IHost> m_host;
     191    ComObjPtr<NATNetworkListenerImpl> m_vboxListener;
     192
    189193    STDMETHOD(HandleEvent)(VBoxEventType_T aEventType, IEvent *pEvent);
    190194
     
    879883    AssertComRCReturn(hrc, VERR_NOT_FOUND);
    880884
    881     ComPtr<IEventSource> pES;
    882     hrc = m_net->COMGETTER(EventSource)(pES.asOutParam());
     885    hrc = m_listener.createObject();
     886    AssertComRCReturn(hrc, VERR_INTERNAL_ERROR);
     887
     888    hrc = m_listener->init(new NATNetworkListener(), this);
     889    AssertComRCReturn(hrc, VERR_INTERNAL_ERROR);
     890
     891    ComPtr<IEventSource> esNet;
     892    hrc = m_net->COMGETTER(EventSource)(esNet.asOutParam());
    883893    AssertComRC(hrc);
    884894
    885     ComObjPtr<NATNetworkListenerImpl> listener;
    886     hrc = listener.createObject();
     895    com::SafeArray<VBoxEventType_T> aNetEvents;
     896    aNetEvents.push_back(VBoxEventType_OnNATNetworkPortForward);
     897    aNetEvents.push_back(VBoxEventType_OnNATNetworkSetting);
     898    hrc = esNet->RegisterListener(m_listener, ComSafeArrayAsInParam(aNetEvents), true);
    887899    AssertComRCReturn(hrc, VERR_INTERNAL_ERROR);
    888900
    889     hrc = listener->init(new NATNetworkListener(), this);
     901
     902    // resolver changes are reported on vbox but are retrieved from
     903    // host so stash a pointer for future lookups
     904    hrc = virtualbox->COMGETTER(Host)(m_host.asOutParam());
    890905    AssertComRCReturn(hrc, VERR_INTERNAL_ERROR);
    891906
    892     com::SafeArray<VBoxEventType_T> events;
    893     events.push_back(VBoxEventType_OnNATNetworkPortForward);
    894     events.push_back(VBoxEventType_OnNATNetworkSetting);
    895 
    896     hrc = pES->RegisterListener(listener, ComSafeArrayAsInParam(events), true);
     907    hrc = m_vboxListener.createObject();
    897908    AssertComRCReturn(hrc, VERR_INTERNAL_ERROR);
    898909
    899     m_listener = listener;
     910    hrc = m_vboxListener->init(new NATNetworkListener(), this);
     911    AssertComRCReturn(hrc, VERR_INTERNAL_ERROR);
     912
     913    ComPtr<IEventSource> esVBox;
     914    hrc = virtualbox->COMGETTER(EventSource)(esVBox.asOutParam());
     915    AssertComRC(hrc);
     916
     917    com::SafeArray<VBoxEventType_T> aVBoxEvents;
     918    aVBoxEvents.push_back(VBoxEventType_OnHostNameResolutionConfigurationChange);
     919    hrc = esVBox->RegisterListener(m_vboxListener, ComSafeArrayAsInParam(aVBoxEvents), true);
     920    AssertComRCReturn(hrc, VERR_INTERNAL_ERROR);
    900921
    901922
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