it works!!!!
[org.ibex.core.git] / src / org / ibex / HTTP.java
index cdaca9d..2aed806 100644 (file)
@@ -88,7 +88,7 @@ public class HTTP {
             // previous call wrecked the socket connection, but we already sent our request, so we can't just retry --
             // this could cause the server to receive the request twice, which could be bad (think of the case where the
             // server call causes Amazon.com to ship you an item with one-click purchasing).
-            if (sock == null)
+            if (in == null)
                 throw new HTTPException("a previous pipelined call messed up the socket");
             
             Hashtable h = in == null ? null : parseHeaders(in);
@@ -356,7 +356,7 @@ public class HTTP {
         PrintWriter pw = new PrintWriter(new OutputStreamWriter(originalUrl.equals("stdio:") ?
                                                                 System.out : sock.getOutputStream()));
         if (content != null) {
-            pw.print("POST " + path + " HTTP/1.1\r\n");
+            pw.print("POST " + path + " HTTP/1.0\r\n"); // FIXME chunked encoding
             int contentLength = content.substring(0, 2).equals("\r\n") ?
                 content.length() - 2 :
                 (content.length() - content.indexOf("\r\n\r\n") - 4);
@@ -581,6 +581,8 @@ public class HTTP {
             if (buflen >= 4 && buf[buflen - 4] == '\r' && buf[buflen - 3] == '\n' &&
                 buf[buflen - 2] == '\r' && buf[buflen - 1] == '\n')
                 break;
+            if (buflen >=2 && buf[buflen - 1] == '\n' && buf[buflen - 2] == '\n')
+                break;  // nice for people using stdio
             if (buflen == buf.length) {
                 byte[] newbuf = new byte[buf.length * 2];
                 System.arraycopy(buf, 0, newbuf, 0, buflen);
@@ -780,7 +782,9 @@ public class HTTP {
                 Scheduler.add(new Scheduler.Task() {
                         public void perform() throws IOException, JSExn {
                             Box b = new Box();
-                            Template t = Template.buildTemplate("org/ibex/builtin/proxy_authorization.ibex", Stream.getInputStream((JS)Main.builtin.get("org/ibex/builtin/proxy_authorization.ibex")), new Ibex(null));
+                            Template t = null;
+                            // 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);