diff --git a/copyparty/httpcli.py b/copyparty/httpcli.py index 312404aa..eea1873d 100644 --- a/copyparty/httpcli.py +++ b/copyparty/httpcli.py @@ -284,10 +284,11 @@ class HttpCli(object): msg = str(ex) if pex == ex else min_ex() self.log("{}\033[0m, {}".format(msg, self.vpath), 3) - msg = "
{}\r\nURL: {}\r\n".format(str(ex), self.vpath)
+ msg = "{}\r\nURL: {}\r\n".format(str(ex), self.vpath)
if self.hint:
msg += "hint: {}\r\n".format(self.hint)
+ msg = "" + html_escape(msg)
self.reply(msg.encode("utf-8", "replace"), status=pex.code, volsan=True)
return self.keepalive
except Pebkac:
@@ -1879,7 +1880,7 @@ class HttpCli(object):
if self.args.no_stack:
raise Pebkac(403, "the stackdump feature is disabled in server config")
- ret = "{}\n{}".format(time.time(), alltrace())
+ ret = "{}\n{}".format(time.time(), html_escape(alltrace()))
self.reply(ret.encode("utf-8"))
def tx_tree(self):
diff --git a/copyparty/web/up2k.js b/copyparty/web/up2k.js
index 185422a5..31851a79 100644
--- a/copyparty/web/up2k.js
+++ b/copyparty/web/up2k.js
@@ -1811,11 +1811,8 @@ function up2k_init(subtle) {
tasker();
return;
}
- toast.err(0, "server broke; hs-err {0} on file [{1}]:\n".format(
- xhr.status, t.name) + (
- (xhr.response && xhr.response.err) ||
- (xhr.responseText && xhr.responseText) ||
- "no further information"));
+ err = t.t_uploading ? "finalize upload" : t.srch ? "perform search" : "initiate upload";
+ xhrchk(xhr, "server rejected the request to " + err + ";\n\nfile: " + t.name + "\n\nerror ", "404, target folder not found");
}
}
xhr.onload = function (e) {
@@ -1874,8 +1871,7 @@ function up2k_init(subtle) {
console.log("ignoring dupe-segment error", t);
}
else {
- toast.err(0, "server broke; cu-err {0} on file [{1}]:\n".format(
- xhr.status, t.name) + (txt || "no further information"));
+ xhrchk(xhr, "server rejected upload (chunk {0} of {1});\n\nfile: {2}\n\nerror ".format(npart, Math.ceil(t.size / chunksize), t.name), "404, target folder not found (???)");
chill(t);
}
@@ -1904,7 +1900,7 @@ function up2k_init(subtle) {
return;
if (!toast.visible)
- toast.warn(9.98, "failed to upload a chunk;\nprobably harmless, continuing\n\n" + t.name);
+ toast.warn(9.98, "failed to upload chunk {0} of {1};\nprobably harmless, continuing\n\nfile: {2}".format(npart, Math.ceil(t.size / chunksize), t.name));
console.log('chunkpit onerror,', ++tries, t);
orz2(xhr);
diff --git a/copyparty/web/util.js b/copyparty/web/util.js
index 19f758e9..799f7ffc 100644
--- a/copyparty/web/util.js
+++ b/copyparty/web/util.js
@@ -1402,5 +1402,6 @@ function xhrchk(xhr, prefix, e404) {
if (xhr.status == 404)
return toast.err(0, prefix + e404);
- return toast.err(0, prefix + xhr.status + ": " + xhr.responseText);
+ return toast.err(0, prefix + xhr.status + ": " + (
+ (xhr.response && xhr.response.err) || xhr.responseText));
}