wininet: Support setting username and password through options.
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 00dfa0f..7cb3961 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -3484,11 +3484,32 @@
return INET_QueryOption(option, buffer, size, unicode);
}
+static DWORD HTTPSESSION_SetOption(WININETHANDLEHEADER *hdr, DWORD option, void *buffer, DWORD size)
+{
+ WININETHTTPSESSIONW *ses = (WININETHTTPSESSIONW*)hdr;
+
+ switch(option) {
+ case INTERNET_OPTION_USERNAME:
+ {
+ if (!(ses->lpszUserName = WININET_strdupW(buffer))) break;
+ return ERROR_SUCCESS;
+ }
+ case INTERNET_OPTION_PASSWORD:
+ {
+ if (!(ses->lpszPassword = WININET_strdupW(buffer))) break;
+ return ERROR_SUCCESS;
+ }
+ default: break;
+ }
+
+ return ERROR_INTERNET_INVALID_OPTION;
+}
+
static const HANDLEHEADERVtbl HTTPSESSIONVtbl = {
HTTPSESSION_Destroy,
NULL,
HTTPSESSION_QueryOption,
- NULL,
+ HTTPSESSION_SetOption,
NULL,
NULL,
NULL,