// 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);
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);
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);
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);