Hi Thomas,

On 10/6/11 6:42 PM, Thomas Mullaly wrote:
---
  dlls/urlmon/sec_mgr.c       |   41 +++++++++++++++++++++++++++++++++++++++--
  dlls/urlmon/tests/sec_mgr.c |   30 +++++++++++++++++++++++++++++-
  2 files changed, 68 insertions(+), 3 deletions(-)

+        if(hres == S_FALSE){
+            DWORD scheme_type;
+            BOOL has_host;
+
+            hres = IUri_GetScheme(uri,&scheme_type);
+            if(FAILED(hres)) {
+                SysFreeString(scheme);
+                return hres;
+            }
+
+            hres = IUri_HasProperty(uri, Uri_PROPERTY_HOST,&has_host);
+            if(FAILED(hres)) {
+                SysFreeString(scheme);
+                return hres;
+            }
+
+            /* Known hierarchical scheme types must have a host. If they don't 
Windows
+             * assigns URLZONE_INVALID to the zone.
+             */
+            if((scheme_type != URL_SCHEME_UNKNOWN&&  scheme_type != 
URL_SCHEME_FILE)
+&&  is_hierarchical_scheme(scheme_type)&&  !has_host) {
+                *zone = URLZONE_INVALID;


It looks like get_zone_from_domains would be more logical place for this. It already does GetScheme call and you could just handle differently GetHost returning empty host.

     if(FAILED(hres))
         return hres == 0x80041001 ? E_INVALIDARG : hres;
+    else if(zone == URLZONE_INVALID)
+        return E_INVALIDARG;

You don't need 'else' here since if the previous if expression is true, we 
return anyways.

Jacek




Reply via email to