The copyright holder of the patch needs to simply state that the patch is provided under the MIT license. Nothing complicated, we just need a written record. You can either submit the patch again with the additional statement, or post an e-mail clearly identifying the previously submitted patch.

 See https://www.virtualbox.org/wiki/Contributor_information for details.

   - Michal

On 7/13/2017 2:05 PM, Sameeh Jubran wrote:


On Thu, Jul 13, 2017 at 2:59 PM, Michal Necasek <[email protected] <mailto:[email protected]>> wrote:


         Hi Sameeh/Yuri,

      Thanks for the patch. For us to actually accept it, the patch
    needs to be either explicitly licensed under MIT or submitted by
    someone with a signed OCA (Oracle Contributors Agreement).

No problem, how should we explicitly license it under MIT?


      Do you happen to know if the patch also solves interoperability
    problems with USBPcap?

Probably but we haven't tested that.



          Regards,
            Michal


    On 7/12/2017 10:39 AM, Sameeh Jubran wrote:

        From: Yuri Benditovich <[email protected]
        <mailto:[email protected]>>

        VBoxUsbMon hooks PnP call in driver object of top level devices
        in stack of every hub. There is assumption that such a way it
        will receive PnP messages for PDOs of USB devices created by
        these hubs. This assumption is not always correct: if there is
        upper filter installed in stack of hub devices but not in stack
        of USB devices, the VBoxUsbMon does not receive devices' PnP
        messages and USB redirection does not work.
        ---
           src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbFlt.cpp |  4 ++++
           src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp | 10
        ++++++++++
           src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.h   |  2 ++
           3 files changed, 16 insertions(+)

        diff --git a/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbFlt.cpp
        b/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbFlt.cpp
        index bd1eeaa..63cf973 100644
        --- a/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbFlt.cpp
        +++ b/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbFlt.cpp
        @@ -725,6 +725,7 @@ static bool
        vboxUsbFltDevCheckReplugLocked(PVBOXUSBFLT_DEVICE pDevice, PVBOXUSBF
                           LOG(("Matching: Need replug"));
                           /* the device needs to be filtered, but the
        owner changes, replug needed */
                           bNeedReplug = true;
        +                EnsureDeviceIsFiltered(pDevice->Pdo);
                       }
                   }
                   else
        @@ -740,6 +741,7 @@ static bool
        vboxUsbFltDevCheckReplugLocked(PVBOXUSBFLT_DEVICE pDevice, PVBOXUSBF
                       {
                           bNeedReplug = true;
                           LOG(("Matching: Need replug"));
        +                EnsureDeviceIsFiltered(pDevice->Pdo);
                       }
                   }
               }
        @@ -852,6 +854,7 @@ static DECLCALLBACK(BOOLEAN)
        vboxUsbFltFilterCheckWalker(PFILE_OBJECT pFile, PDE
                           if (fFilter)
                           {
                               LOG(("Matching: This device SHOULD be
        filtered"));
        +                    EnsureDeviceIsFiltered(Device.Pdo);
                               /* this device needs to be filtered, but
        it's not,
                                * leave the PDO in array to issue a
        replug request for it
                                * later on */
        @@ -1295,6 +1298,7 @@ NTSTATUS VBoxUsbFltPdoAdd(PDEVICE_OBJECT
        pPdo, BOOLEAN *pbFiltered)
                   ASSERT_WARN(pCtx, ("zero ctx"));
                   ASSERT_WARN(uId, ("zero uId"));
                   pDevice->enmState = VBOXUSBFLT_DEVSTATE_CAPTURING;
        +        EnsureDeviceIsFiltered(pPdo);
               }
               else
               {
        diff --git a/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp
        b/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp
        index dba6c1d..307abe5 100644
        --- a/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp
        +++ b/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.cpp
        @@ -1259,6 +1259,16 @@ static DECLCALLBACK(BOOLEAN)
        vboxUsbMonHookDrvObjWalker(PFILE_OBJECT pFile, PDEV
               return FALSE;
           }
           +
        +/**
        +* Ensure PnP hooks will be installed in the driver that
        +  serves USB device PDO
        +*/
        +void EnsureDeviceIsFiltered(PDEVICE_OBJECT Pdo)
        +{
        +    vboxUsbMonHookDrvObjWalker(NULL, NULL, Pdo, NULL);
        +}
        +
           /**
            * Finds all USB drivers in the system and installs hooks if
        haven't done already.
            */
        diff --git a/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.h
        b/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.h
        index b218bde..c64d789 100644
        --- a/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.h
        +++ b/src/VBox/HostDrivers/VBoxUSB/win/mon/VBoxUsbMon.h
        @@ -58,4 +58,6 @@ typedef FNVBOXUSBMONDEVWALKER
        *PFNVBOXUSBMONDEVWALKER;
             VOID vboxUsbMonHubDevWalk(PFNVBOXUSBMONDEVWALKER pfnWalker,
        PVOID pvWalker, ULONG fFlags);
           +void EnsureDeviceIsFiltered(PDEVICE_OBJECT Pdo);
        +
           #endif /* #ifndef ___VBoxUsbMon_h___ */


    _______________________________________________
    vbox-dev mailing list
    [email protected] <mailto:[email protected]>
    https://www.virtualbox.org/mailman/listinfo/vbox-dev
    <https://www.virtualbox.org/mailman/listinfo/vbox-dev>




--
Respectfully,
*/Sameeh Jubran/*
/Linkedin <https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a>/
/Software Engineer @ Daynix <http://www.daynix.com>./

_______________________________________________
vbox-dev mailing list
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev

Reply via email to