update core for recent js changes
[org.ibex.core.git] / src / org / ibex / net / HTTP.java
index 0142a9e..da94713 100644 (file)
@@ -180,8 +180,8 @@ public class HTTP {
     /** Attempts a direct connection */
     private Socket attemptDirect() {
         try {
-            if (Log.verbose) Log.info(this, "attempting to create unproxied socket to " +
-                                     host + ":" + port + (ssl ? " [ssl]" : ""));
+            Log.info(this, "attempting to create unproxied socket to " +
+                     host + ":" + port + (ssl ? " [ssl]" : ""));
             return getSocket(host, port, ssl, true);
         } catch (IOException e) {
             if (Log.on) Log.info(this, "exception in attemptDirect(): " + e);
@@ -271,9 +271,9 @@ public class HTTP {
         if (Log.verbose) Log.info(this, "evaluating PAC script");
         String pac = null;
         try {
-            Object obj = pacFunc.call(url, host, null, null, 2);
-            if (Log.verbose) Log.info(this, "  PAC script returned \"" + obj + "\"");
-            pac = obj.toString();
+            JS obj = pacFunc.call(JS.S(url), JS.S(host), null, null, 2);
+            if (Log.verbose) Log.info(this, "  PAC script returned \"" + JS.debugToString(obj) + "\"");
+            pac = JS.toString(obj);
         } catch (Throwable e) {
             if (Log.on) Log.info(this, "PAC script threw exception " + e);
             return null;
@@ -328,7 +328,7 @@ public class HTTP {
             throw new IOException("HTTP only supports http/https urls");
         }
         if (url.indexOf("://") == -1) throw new IOException("URLs must contain a ://");
-        String temphost = url.substring(url.indexOf("://") + 1);
+        String temphost = url.substring(url.indexOf("://") + 3);
         path = temphost.substring(temphost.indexOf('/'));
         temphost = temphost.substring(0, temphost.indexOf('/'));
         if (temphost.indexOf(':') != -1) {
@@ -380,7 +380,6 @@ public class HTTP {
         if (authCache.get(originalUrl) != null) pw.print("Authorization: " + authCache.get(originalUrl) + "\r\n");
 
         pw.print(content == null ? "\r\n" : content);
-        pw.print("\r\n");
         pw.flush();
     }
 
@@ -719,7 +718,7 @@ public class HTTP {
             return ret;
         }
     
-        public static JSScope proxyAutoConfigRootScope = new ProxyAutoConfigRootScope();
+        public static JS proxyAutoConfigRootScope = /*new ProxyAutoConfigRootScope();*/ null; // JS:FIXME: New api
         public static JS getProxyAutoConfigFunction(String url) {
             try { 
                 BufferedReader br = new BufferedReader(new InputStreamReader(new HTTP(url, true).GET()));
@@ -747,20 +746,21 @@ public class HTTP {
                 }
 
                 JS scr = JS.fromReader("PAC script at " + url, 0, new StringReader(script));
-                JS.cloneWithNewParentScope(scr, proxyAutoConfigRootScope).call(null, null, null, null, 0);
-                return (JS)proxyAutoConfigRootScope.get("FindProxyForURL");
+                JS.cloneWithNewGlobalScope(scr, proxyAutoConfigRootScope).call(null, null, null, null, 0);
+                return (JS)proxyAutoConfigRootScope.get(JS.S("FindProxyForURL"));
             } catch (Exception e) {
                 if (Log.on) {
                     Log.info(Platform.class, "WPAD detection failed due to:");
-                    if (e instanceof JSExn) {
+                    // I have no idea what this was supposed to do
+                    /*if (e instanceof JSExn) {
                         try {
                             org.ibex.js.JSArray arr = new org.ibex.js.JSArray();
                             arr.addElement(((JSExn)e).getObject());
                         } catch (Exception e2) {
                             Log.info(Platform.class, e);
                         }
-                    }
-                    else Log.info(Platform.class, e);
+                    }*/
+                    Log.info(Platform.class, e);
                 }
                 return null;
             }
@@ -791,8 +791,8 @@ public class HTTP {
                             // FIXME
                             //Template.buildTemplate("org/ibex/builtin/proxy_authorization.ibex", Stream.getInputStream((JS)Main.builtin.get("org/ibex/builtin/proxy_authorization.ibex")), new Ibex(null));
                             t.apply(b);
-                            b.put("realm", realm);
-                            b.put("proxyIP", proxyIP);
+                            b.put(JS.S("realm"), JS.S(realm));
+                            b.put(JS.S("proxyIP"), JS.S(proxyIP));
                         }
                     });
 
@@ -804,7 +804,8 @@ public class HTTP {
 
         // ProxyAutoConfigRootJSScope ////////////////////////////////////////////////////////////////////
 
-        public static class ProxyAutoConfigRootScope extends JSScope.Global {
+        // FIXME: JS Update for new API
+        /*public static class ProxyAutoConfigRootScope extends JSScope.Global {
 
             public ProxyAutoConfigRootScope() { super(); }
         
@@ -827,7 +828,7 @@ public class HTTP {
                 return super.get(name);
             }
         
-            private static final JS proxyConfigBindings = new JS();
+            private static final JS proxyConfigBindings = new JS.O();
             private static final JS ProxyConfig = new JS() {
                     public Object get(Object name) {
                         if (name.equals("bindings")) return proxyConfigBindings;
@@ -916,7 +917,7 @@ public class HTTP {
                 return false;
             }
             public static String[] days = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" };
-        }
+        }*/
 
 
         /**