I'm looking for comments/criticism for the above patch set. It is actually not complete yet (glaring FIXME on #6), but it is relatively close.
Some notes: Patch 1: - needed to handle deferred sockets. We need to destroy the actual deferred socket without closing the handle. Patch 2: - ntdll seems to keep a cache of fd's and since the accept_socket change in patch 4 switches the underlying fd object for a socket handle, we need to flush the cache (is there a better approach?). Patch 3: - needed for patch 4 so accept() can create a socket. Patch 3+4+5: - is a tools/make_requests run required before submitting this? Patch 5: - I don't like it, but can't figure out a better way to do it. Anyone have better ideas? - just realized as I was sending this that there is a problem if acceptex is called twice on the same socket (the async from before is not released). Patch 6: - is pretty much the same as the patch by Scott Lindeneau. Just expanded it and added support for data_len. data_len won't work with completion ports yet.
Sorry for the continuous spam regarding AcceptEx; I just want to make sure that this isn't going nowhere.
Mike.