avoid crashing ie

This commit is contained in:
ed 2020-04-20 10:09:13 +00:00
parent 5283837e6d
commit c2016ba037
3 changed files with 20 additions and 15 deletions

View file

@ -144,7 +144,7 @@ class HttpCli(object):
try: try:
self.s.sendall(response_str + b"\r\n\r\n" + body) self.s.sendall(response_str + b"\r\n\r\n" + body)
except: except:
raise Pebkac(400, "client disconnected before http response") raise Pebkac(400, "client d/c before http response")
return body return body
@ -200,7 +200,10 @@ class HttpCli(object):
self.log("POST " + self.req) self.log("POST " + self.req)
if self.headers.get("expect", "").lower() == "100-continue": if self.headers.get("expect", "").lower() == "100-continue":
try:
self.s.sendall(b"HTTP/1.1 100 Continue\r\n\r\n") self.s.sendall(b"HTTP/1.1 100 Continue\r\n\r\n")
except:
raise Pebkac(400, "client d/c before 100 continue")
ctype = self.headers.get("content-type", "").lower() ctype = self.headers.get("content-type", "").lower()
if not ctype: if not ctype:
@ -621,7 +624,10 @@ class HttpCli(object):
headers.extend(extra_headers) headers.extend(extra_headers)
headers = "\r\n".join(headers).encode("utf-8") + b"\r\n\r\n" headers = "\r\n".join(headers).encode("utf-8") + b"\r\n\r\n"
try:
self.s.sendall(headers) self.s.sendall(headers)
except:
raise Pebkac(400, "client d/c before http response")
if self.mode == "HEAD" or not do_send: if self.mode == "HEAD" or not do_send:
self.log(logmsg) self.log(logmsg)

View file

@ -190,7 +190,7 @@ class MultipartParser(object):
buf = self.sr.recv(bufsz) buf = self.sr.recv(bufsz)
if not buf: if not buf:
# abort: client disconnected # abort: client disconnected
raise Pebkac(400, "client disconnected during multipart post") raise Pebkac(400, "client d/c during multipart post")
while True: while True:
ofs = buf.find(self.boundary) ofs = buf.find(self.boundary)
@ -224,7 +224,7 @@ class MultipartParser(object):
buf2 = self.sr.recv(bufsz) buf2 = self.sr.recv(bufsz)
if not buf2: if not buf2:
# abort: client disconnected # abort: client disconnected
raise Pebkac(400, "client disconnected during multipart post") raise Pebkac(400, "client d/c during multipart post")
buf += buf2 buf += buf2
@ -421,7 +421,7 @@ def read_socket(sr, total_size):
buf = sr.recv(bufsz) buf = sr.recv(bufsz)
if not buf: if not buf:
raise Pebkac(400, "client disconnected during binary post") raise Pebkac(400, "client d/c during binary post")
remains -= len(buf) remains -= len(buf)
yield buf yield buf

View file

@ -72,10 +72,9 @@ function opclick(ev) {
var dest = this.getAttribute('data-dest'); var dest = this.getAttribute('data-dest');
goto(dest); goto(dest);
try { // writing a blank value makes ie8 segfault w
localStorage.opmode = dest; if (window['localStorage'])
} localStorage.setItem('opmode', dest || '.');
catch { }
} }
@ -108,11 +107,11 @@ function goto_up2k() {
goto(); goto();
try { if (window['localStorage']) {
var op = localStorage.opmode; var op = localStorage.getItem('opmode');
if (op !== null && op !== '.')
goto(op); goto(op);
} }
catch { }
// chrome requires https to use crypto.subtle, // chrome requires https to use crypto.subtle,
@ -217,7 +216,7 @@ function up2k_init(have_crypto) {
if (val === null) if (val === null)
return parseInt(o(name).value); return parseInt(o(name).value);
o(name).value = val o(name).value = val;
return val; return val;
} }