Skip to content

Commit 2b3094c

Browse files
Fix bug with content misalignment due to UTF8
Sometimes data.length != content-length due to UTF8. This can cause the following request to contain extra bytes already fetched by the first request.
1 parent f90f69a commit 2b3094c

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

logtail.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ function get_log() {
4444
loading = false;
4545

4646
var size;
47+
var content_size;
4748

4849
if (xhr.status === 206) {
4950
if (data.length > load)
@@ -54,20 +55,23 @@ function get_log() {
5455
throw "Server did not respond with a Content-Range";
5556

5657
size = parseInt(c_r.split("/")[1]);
58+
content_size = xhr.getResponseHeader("Content-Length");
59+
5760
if (isNaN(size))
5861
throw "Invalid Content-Range size";
5962
} else if (xhr.status === 200) {
6063
if (log_size > 1)
6164
throw "Expected 206 Partial Content";
6265

63-
size = data.length;
66+
size = xhr.getResponseHeader("Content-Length");
67+
content_size = size;
6468
}
6569

6670
var added = false;
6771

6872
if (log_size === 0) {
6973
/* Clip leading part-line if not the whole file */
70-
if (data.length < size) {
74+
if (content_size < size) {
7175
var start = data.indexOf("\n");
7276
log_data = data.substring(start + 1);
7377
} else {

0 commit comments

Comments
 (0)