[PATCH 1/5] httpapi: Partially implement HttpSetUrlGroupProperty().
Zebediah Figura
z.figura12 at gmail.com
Thu Aug 29 19:58:04 CDT 2019
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/httpapi/httpapi.spec | 1 +
dlls/httpapi/httpapi_main.c | 25 +++++++++++++++++++++++++
include/http.h | 28 ++++++++++++++++++++++++++++
3 files changed, 54 insertions(+)
diff --git a/dlls/httpapi/httpapi.spec b/dlls/httpapi/httpapi.spec
index aad5d58437c..b3f3148acbc 100644
--- a/dlls/httpapi/httpapi.spec
+++ b/dlls/httpapi/httpapi.spec
@@ -49,6 +49,7 @@
@ stub HttpSetControlChannelInformation
@ stub HttpSetServerContextInformation
@ stdcall HttpSetServiceConfiguration(ptr long ptr long ptr)
+@ stdcall HttpSetUrlGroupProperty(int64 long ptr long)
@ stub HttpShutdownAppPool
@ stub HttpShutdownFilter
@ stdcall HttpTerminate(long ptr)
diff --git a/dlls/httpapi/httpapi_main.c b/dlls/httpapi/httpapi_main.c
index c7d95c9fbad..29a8e70301f 100644
--- a/dlls/httpapi/httpapi_main.c
+++ b/dlls/httpapi/httpapi_main.c
@@ -474,6 +474,7 @@ ULONG WINAPI HttpSendHttpResponse(HANDLE queue, HTTP_REQUEST_ID id, ULONG flags,
struct url_group
{
struct list entry, session_entry;
+ HANDLE queue;
};
static struct list url_groups = LIST_INIT(url_groups);
@@ -598,3 +599,27 @@ ULONG WINAPI HttpCloseUrlGroup(HTTP_URL_GROUP_ID id)
return ERROR_SUCCESS;
}
+
+/***********************************************************************
+ * HttpSetUrlGroupProperty (HTTPAPI.@)
+ */
+ULONG WINAPI HttpSetUrlGroupProperty(HTTP_URL_GROUP_ID id, HTTP_SERVER_PROPERTY property, void *value, ULONG length)
+{
+ struct url_group *group = get_url_group(id);
+ const HTTP_BINDING_INFO *info = value;
+
+ TRACE("id %s, property %u, value %p, length %u.\n",
+ wine_dbgstr_longlong(id), property, value, length);
+
+ if (property != HttpServerBindingProperty)
+ {
+ FIXME("Unhandled property %u.\n", property);
+ return ERROR_CALL_NOT_IMPLEMENTED;
+ }
+
+ TRACE("Binding to queue %p.\n", info->RequestQueueHandle);
+
+ group->queue = info->RequestQueueHandle;
+
+ return ERROR_SUCCESS;
+}
diff --git a/include/http.h b/include/http.h
index b07c3b03f93..60494a130f9 100644
--- a/include/http.h
+++ b/include/http.h
@@ -397,6 +397,33 @@ typedef struct _HTTP_LOG_DATA
HTTP_LOG_DATA_TYPE Type;
} HTTP_LOG_DATA, *PHTTP_LOG_DATA;
+typedef enum _HTTP_SERVER_PROPERTY
+{
+ HttpServerAuthenticationProperty,
+ HttpServerLoggingProperty,
+ HttpServerQosProperty,
+ HttpServerTimeoutsProperty,
+ HttpServerQueueLengthProperty,
+ HttpServerStateProperty,
+ HttpServer503VerbosityProperty,
+ HttpServerBindingProperty,
+ HttpServerExtendedAuthenticationProperty,
+ HttpServerListenEndpointProperty,
+ HttpServerChannelBindProperty,
+ HttpServerProtectionLevelProperty,
+} HTTP_SERVER_PROPERTY, *PHTTP_SERVER_PROPERTY;
+
+typedef struct _HTTP_PROPERTY_FLAGS
+{
+ ULONG Present : 1;
+} HTTP_PROPERTY_FLAGS, *PHTTP_PROPERTY_FLAGS;
+
+typedef struct _HTTP_BINDING_INFO
+{
+ HTTP_PROPERTY_FLAGS Flags;
+ HANDLE RequestQueueHandle;
+} HTTP_BINDING_INFO, *PHTTP_BINDING_INFO;
+
ULONG WINAPI HttpAddUrl(HANDLE,PCWSTR,PVOID);
ULONG WINAPI HttpCloseServerSession(HTTP_SERVER_SESSION_ID id);
ULONG WINAPI HttpCloseUrlGroup(HTTP_URL_GROUP_ID id);
@@ -411,6 +438,7 @@ ULONG WINAPI HttpReceiveHttpRequest(HANDLE queue, HTTP_REQUEST_ID id, ULONG flag
ULONG WINAPI HttpRemoveUrl(HANDLE queue, const WCHAR *url);
ULONG WINAPI HttpSendHttpResponse(HANDLE queue, HTTP_REQUEST_ID id, ULONG flags, HTTP_RESPONSE *response, HTTP_CACHE_POLICY *cache_policy, ULONG *ret_size, void *reserved1, ULONG reserved2, OVERLAPPED *ovl, HTTP_LOG_DATA *log_data);
ULONG WINAPI HttpSetServiceConfiguration(HANDLE,HTTP_SERVICE_CONFIG_ID,PVOID,ULONG,LPOVERLAPPED);
+ULONG WINAPI HttpSetUrlGroupProperty(HTTP_URL_GROUP_ID id, HTTP_SERVER_PROPERTY property, void *value, ULONG length);
#ifdef __cplusplus
}
--
2.22.0
More information about the wine-devel
mailing list