[Xcb] [PATCH 3/3] Use WSAStartup()/WSACleanup() on WIN32

Josh Triplett josh at joshtriplett.org
Thu Jan 5 19:36:32 PST 2012

On Thu, Jan 05, 2012 at 11:55:30PM +0200, Rémi Denis-Courmont wrote:
> Le jeudi 5 janvier 2012 23:28:06 Josh Triplett, vous avez écrit :
> > What happens if the application using XCB has already called WSAStartup,
> > and passes a lower version number than 2.2?
> If the sockets library does not support version 2.2, WSAStartup() will fail. 
> Then XCB should either fail, or try to negotiate another usable version with 
> the library.

I meant the case where the sockets library supports 2.2 but the
application using libxcb calls WSAStartup with a version number lower
than 2.2.

> > Will XCB's call to WSAStartup cause Winsock to start assuming 2.2
> > semantics instead of whatever older semantics the application requested?
> The new semantics would be new functions or parameters that a Winsock 1.1 
> should not be using in the first place. Unless the application is buggy, this 
> cannot be a problem.

That sounds plausible.

> > Or will Winsock just tell XCB to use the older version?
> If the version requested by XCB is not supported, WSAStartup() will fail. Note 
> that there is a bug in the patch: XCB should never call WSACleanup() if 
> WSAStartup() did not succeed.

I don't see how that case could happen in the patch you provided.

> > In the latter case, can XCB live with that?
> Someone could check if XCB can live with Winsock 1.1. However, support for 
> versions of Windows without Winsock 1.x has ceased many years ago. So most 
> probably nobody cares.

Again, I meant the case with Winsock 2.2 but an application which
requests the semantics of an older version.

- Josh Triplett

More information about the Xcb mailing list