Details
- 
    
Improvement
 - 
    Resolution: Fixed
 - 
    
Major
 
- 
        September 2016
 
Description
I played around with ws2_32_new and managed to fix some bugs and make it working for me.
A summary of ws2_32_new changes (the rest is described with each atomic commit) :
- Don't use local variable for UpcallTable. Return error code from WSPStartup in WsTpAllocate. Add some checks
 - Fix reading PackedCatalogItem in WsTcEntryInitializeFromRegistry
 - Read protocol provider catalog from registry. Fix protocol range check in WsTcLoadProvider
 - Read namespace provider catalog from registry
 - Implement WSAEnumNamespaceProvidersA/W
 - Implement WSAEnumProvidersA/W based on WSCEnumProviders. Don't return protocol with iProtocol == 0 (based on winetest)
 - Some fixes in GetAddrInfoW according to the addrinfo wine tests
 - Use internal parsing of IPv4 address as the other function is more general (based on winetest)
 - Fix WSAStartup based on wine tests
 - Small fixes to getxyDataEnt
 - Add some checks to inet_addr based on wine tests
 - Add some checks and use dynamic memory for constructing DatabasePath in GetProtoOpenNetworkDatabase
 - Add error checks for namespace catalog entry list reading from registry
 - Add some checks in WSALookupService(Begin/Next/End) based on wine tests
 - Add some checks in setsockopt based on wine tests
 - Add some checks in WSASocketW based on wine tests
 - Fix DPRINT in sendto
 - Add some DPRINTs
 
With attached patches I have the following results:
ws2_32:getaddrinfo         397 tests executed (0 marked as todo, 119 failures), 0 skipped.
ws2_32:ioctlsocket            19 tests executed (0 marked as todo, 2 failures), 0 skipped.
ws2_32:nostartup               5 tests executed (0 marked as todo, 0 failures), 0 skipped.
ws2_32:protocol               28 tests executed (0 marked as todo, 0 failures), 0 skipped.
ws2_32:recv                     19 tests executed (0 marked as todo, 0 failures), 0 skipped.
ws2_32:sock             570181 tests executed (0 marked as todo, 179 failures), 11 skipped.
ws2_32:WSAStartup       395 tests executed (0 marked as todo, 0 failures), 0 skipped.
Here is the description of the patches:
database.patch - adds protocol and network files, adds alias for mail protocol
msafd.patch      - small fixes to msafd that should be applicable even without ws2_32_new
mswsock.patch  - a copy of the patch that I attached to CORE-10024
ws2_32_new.patch - my patch
ws2_32_new_registry.patch - adds needed registry entries on tcpip install. should be applicable even now
Please note that only small fixes are my work.
Most of the work was already done by andy-123 and Alex.
I hope for a good review.
Attachments
Issue Links
- blocks
 - 
                    
CORE-9680 Cant start GOG galaxy beta
-         
 - Resolved
 
 -         
 - 
                    
CORE-10491 DrugVokrug (friendsAround) messenger fails to show interface
-         
 - Resolved
 
 -         
 - 
                    
CORE-11993 [PATCH] Fix all testIcmpSendEcho tests in iphlpapi
-         
 - Resolved
 
 -         
 - 
                    
CORE-10573 Rewrite of ping
-         
 - Resolved
 
 -         
 
- is blocked by
 - 
                    
CORE-12008 ping: setsockopt error since r72746
-         
 - Resolved
 
 -         
 - 
                    
CORE-10533 PATCH: Fix local network resolving
-         
 - Resolved
 
 -         
 
- is duplicated by
 - 
                    
CORE-10305 [PATCH] [MSAFD] Enable WSAVERNOTSUPPORTED
-         
 - Resolved
 
 -         
 
- relates to
 - 
                    
CORE-10024 PATCH: Implement nsplookup-functioncs at mswsock
-         
 - Resolved
 
 -         
 - 
                    
CORE-12000 Disable ws2_32:sock test_address_list_query()
-         
 - Resolved
 
 -         
 - 
                    
ROSTESTS-243 [PATCH] Add tests for kernel32 GetComputerNameEx return values
-         
 - Resolved
 
 -         
 - 
                    
ROSTESTS-244 [PATCH] Add tests for iphlpapi GetNetworkParams
-         
 - Resolved
 
 -