http://bugs.winehq.org/show_bug.cgi?id=60488 Bug ID: 60488 Summary: httpapi: only one URL per URL group, HttpWaitForDisconnectEx() unimplemented (HTTP Server API 2.0 servers fail) Product: Wine Version: 11.19 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: httpapi Assignee: wine-bugs@list.winehq.org Reporter: mailtomendoza@gmail.com Target Milestone: --- Distribution: --- Self-hosted HTTP servers built on HTTP Server API 2.0 (for example ASP.NET Core 1.x WebListener on .NET Framework 4.8) do not work: 1. A second HttpAddUrlToUrlGroup() on the same URL group returns ERROR_CALL_NOT_IMPLEMENTED, so a server listening on more than one prefix refuses to start. 2. HttpSetUrlGroupProperty(HttpServerTimeoutsProperty) returns ERROR_CALL_NOT_IMPLEMENTED (bug 49819); other tuning properties likewise. 3. HttpWaitForDisconnectEx() is only a spec-file stub; the server calls it for every request to build its "request aborted" token, the stub raises, and every request answers HTTP 500. HttpCancelHttpRequest(), HttpShutdownRequestQueue() and the Http*Query*Property() functions are missing as well. Suggested patch attached (tested on Wine 11.19, applies to master): - URL groups keep an array of (URL, context) and add/remove/bind all of them; - HttpSetUrlGroupProperty / HttpSetServerSessionProperty / HttpSetRequestQueueProperty: FIXME and succeed for properties that only tune behaviour; - HttpWaitForDisconnect(Ex): semi-stub - with OVERLAPPED return ERROR_IO_PENDING and never complete, otherwise ERROR_NOT_SUPPORTED; - HttpCancelHttpRequest / HttpShutdownRequestQueue: stubs returning success; Http*Query*Property: stubs returning ERROR_CALL_NOT_IMPLEMENTED; - removes 7 todo_wine in tests/httpapi.c that now pass (additional invalid/duplicate URLs in a group return the same errors as on Windows). httpapi tests: 0 todo, 0 failures on i386 and x86_64. This is a suggestion, not upstream-ready: a real HttpWaitForDisconnectEx() needs an http.sys IOCTL that completes when the connection closes (the semi-stub leaves one pending operation per connection until the queue closes); silently accepting properties may hide differences; the 32-URL array is arbitrary. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.