VirtualBox

Changeset 87900 in vbox for trunk


Ignore:
Timestamp:
Mar 1, 2021 4:56:52 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142984
Message:

IntNetIf: Add ifSetPromiscuous(). bugid:9959.

Location:
trunk/src/VBox/NetworkServices/NetLib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/NetworkServices/NetLib/IntNetIf.cpp

    r87825 r87900  
    144144    m_hIf = OpenReq.hIf;
    145145    AssertReturn(m_hIf != INTNET_HANDLE_INVALID, VERR_GENERAL_FAILURE);
     146
     147    return VINF_SUCCESS;
     148}
     149
     150
     151/**
     152 * Set promiscuous mode on the interface.
     153 */
     154int
     155IntNetIf::ifSetPromiscuous(bool fPromiscuous)
     156{
     157    AssertReturn(m_pSession != NIL_RTR0PTR, VERR_GENERAL_FAILURE);
     158    AssertReturn(m_hIf != INTNET_HANDLE_INVALID, VERR_GENERAL_FAILURE);
     159
     160    INTNETIFSETPROMISCUOUSMODEREQ SetPromiscuousModeReq;
     161    int rc;
     162
     163    SetPromiscuousModeReq.Hdr.u32Magic = SUPVMMR0REQHDR_MAGIC;
     164    SetPromiscuousModeReq.Hdr.cbReq = sizeof(SetPromiscuousModeReq);
     165    SetPromiscuousModeReq.pSession = m_pSession;
     166    SetPromiscuousModeReq.hIf = m_hIf;
     167
     168    SetPromiscuousModeReq.fPromiscuous = fPromiscuous;
     169
     170    rc = CALL_VMMR0(VMMR0_DO_INTNET_IF_SET_PROMISCUOUS_MODE, SetPromiscuousModeReq);
     171    if (RT_FAILURE(rc))
     172        return rc;
    146173
    147174    return VINF_SUCCESS;
  • trunk/src/VBox/NetworkServices/NetLib/IntNetIf.h

    r87824 r87900  
    9999    int setInputGSOCallback(PFNINPUTGSO pfnInputGSO, void *pvUser);
    100100
     101    int ifSetPromiscuous(bool fPromiscuous = true);
     102
    101103    int ifPump();
    102104    int ifAbort();
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