[Bug 60488] New: httpapi: only one URL per URL group, HttpWaitForDisconnectEx() unimplemented (HTTP Server API 2.0 servers fail)
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.
http://bugs.winehq.org/show_bug.cgi?id=60488 --- Comment #1 from mailtomendoza@gmail.com --- Created attachment 82340 --> http://bugs.winehq.org/attachment.cgi?id=82340 Suggested patch (tested on Wine 11.19, not upstream-ready) -- 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.
http://bugs.winehq.org/show_bug.cgi?id=60488 --- Comment #2 from mailtomendoza@gmail.com --- The application is SALTO ProAccess Space 6.14 (.NET Framework 4.8 service; its web UI runs on ASP.NET Core 1.x WebListener over HTTP Server API 2.0). It registers several URL prefixes in one URL group, sets HttpServerTimeoutsProperty at startup, and calls HttpWaitForDisconnectEx() for every request. -- 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.
participants (1)
-
WineHQ Bugzilla