Jacek Caban : wininet: Added INTERNET_OPTION_MAX_CONNS_PER_SERVER and INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER options setting implementation .

Alexandre Julliard julliard at winehq.org
Thu Mar 8 14:26:23 CST 2012


Module: wine
Branch: master
Commit: 35587e5608322630fd9c2f2e27959a61d515f1a2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=35587e5608322630fd9c2f2e27959a61d515f1a2

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Mar  8 12:20:53 2012 +0100

wininet: Added INTERNET_OPTION_MAX_CONNS_PER_SERVER and INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER options setting implementation.

---

 dlls/wininet/internet.c |   44 ++++++++++++++++++++++++++++++--------------
 1 files changed, 30 insertions(+), 14 deletions(-)

diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index a360835..a40d566 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -108,6 +108,8 @@ typedef struct
     LPWSTR proxyBypass;
 } proxyinfo_t;
 
+static ULONG max_conns = 2, max_1_0_conns = 4;
+
 static const WCHAR szInternetSettings[] =
     { 'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
       'W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
@@ -2336,7 +2338,7 @@ DWORD INET_QueryOption(object_header_t *hdr, DWORD option, void *buffer, DWORD *
         if (*size < sizeof(ULONG))
             return ERROR_INSUFFICIENT_BUFFER;
 
-        *(ULONG*)buffer = 2;
+        *(ULONG*)buffer = max_conns;
         *size = sizeof(ULONG);
 
         return ERROR_SUCCESS;
@@ -2347,7 +2349,7 @@ DWORD INET_QueryOption(object_header_t *hdr, DWORD option, void *buffer, DWORD *
             if (*size < sizeof(ULONG))
                 return ERROR_INSUFFICIENT_BUFFER;
 
-            *(ULONG*)buffer = 4;
+            *(ULONG*)buffer = max_1_0_conns;
             *size = sizeof(ULONG);
 
             return ERROR_SUCCESS;
@@ -2535,6 +2537,10 @@ DWORD INET_SetOption(object_header_t *hdr, DWORD option, void *buf, DWORD size)
     case INTERNET_OPTION_CALLBACK:
         WARN("Not settable option %u\n", option);
         return ERROR_INTERNET_OPTION_NOT_SETTABLE;
+    case INTERNET_OPTION_MAX_CONNS_PER_SERVER:
+    case INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER:
+        WARN("Called on global option %u\n", option);
+        return ERROR_INTERNET_INVALID_OPERATION;
     }
 
     return ERROR_INTERNET_INVALID_OPTION;
@@ -2546,6 +2552,28 @@ static DWORD set_global_option(DWORD option, void *buf, DWORD size)
     case INTERNET_OPTION_CALLBACK:
         WARN("Not global option %u\n", option);
         return ERROR_INTERNET_INCORRECT_HANDLE_TYPE;
+
+    case INTERNET_OPTION_MAX_CONNS_PER_SERVER:
+        TRACE("INTERNET_OPTION_MAX_CONNS_PER_SERVER\n");
+
+        if(size != sizeof(max_conns))
+            return ERROR_INTERNET_BAD_OPTION_LENGTH;
+        if(!*(ULONG*)buf)
+            return ERROR_BAD_ARGUMENTS;
+
+        max_conns = *(ULONG*)buf;
+        return ERROR_SUCCESS;
+
+    case INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER:
+        TRACE("INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER\n");
+
+        if(size != sizeof(max_1_0_conns))
+            return ERROR_INTERNET_BAD_OPTION_LENGTH;
+        if(!*(ULONG*)buf)
+            return ERROR_BAD_ARGUMENTS;
+
+        max_1_0_conns = *(ULONG*)buf;
+        return ERROR_SUCCESS;
     }
 
     return ERROR_INTERNET_INVALID_OPTION;
@@ -2677,18 +2705,6 @@ BOOL WINAPI InternetSetOptionW(HINTERNET hInternet, DWORD dwOption,
         FIXME("Option INTERNET_OPTION_DATA_RECEIVE_TIMEOUT (%d): STUB\n", receivetimeout);
       }
       break;
-    case INTERNET_OPTION_MAX_CONNS_PER_SERVER:
-      {
-        ULONG conns = *(ULONG *)lpBuffer;
-        FIXME("Option INTERNET_OPTION_MAX_CONNS_PER_SERVER (%d): STUB\n", conns);
-      }
-      break;
-    case INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER:
-      {
-        ULONG conns = *(ULONG *)lpBuffer;
-        FIXME("Option INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER (%d): STUB\n", conns);
-      }
-      break;
     case INTERNET_OPTION_RESET_URLCACHE_SESSION:
         FIXME("Option INTERNET_OPTION_RESET_URLCACHE_SESSION: STUB\n");
         break;




More information about the wine-cvs mailing list