mpr: Changes comparison of dwScope in WNetOpenEnum function

Konstantin Kondratyuk kondratyuk at etersoft.ru
Tue Sep 25 03:53:24 CDT 2007


Hello, Juan!

> Hi Konstantin,
>
> -                             providerTable->table[index].dwEnumScopes
> & dwScope)
> +                             providerTable->table[index].dwEnumScopes
> & WNNC_ENUM_GLOBAL)
>
> This change looks correct, but it should be changed in the next block as
> well:
>
>                                 ret = providerTable->table[index].openEnum(
>                                  dwScope, dwType, dwUsage, lpNet, &handle);
>
> It also looks incorrect in _enumerateGlobalPassthroughW:
>         ret = providerTable->table[enumerator->providerIndex].
>          openEnum(enumerator->dwScope, enumerator->dwType,
>          enumerator->dwUsage, enumerator->lpNet,
>          &enumerator->handle);
>
> In fact, all of these usages of dwScope look to confuse the two
> meanings.  (D'oh.)
> --Juan

Well, I have looked all code in mpr/wnet.c
The following condition in _globalEnumeratorAdvance() looks incorrect:

        for (; enumerator->providerIndex < providerTable->numProviders &&
         !(enumerator->dwScope & providerTable->table
         [enumerator->providerIndex].dwEnumScopes);
         enumerator->providerIndex++)

Other conditions and parameters look correctly. For example, function 
NPOpenEnum() expects a dwScope, containing RESOURCE_CONNECTED, 
RESOURCE_GLOBALNET or RESOURCE_CONTEXT.
Correct for me if I am not right.

-- 
Best regards,
Konstantin Kondratyuk.



More information about the wine-devel mailing list