Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
webdav: fix range header formatting in relay request
An open-ended range like `bytes=0-` produced an invalid header
like "bytes=0-null", resulting in no data being transferred. This
patch implements support for open-ended ranges (`bytes=0-`) and
suffix ranges (`bytes=-500`).

References #7971

Signed-off-by: Martin Zurowietz <[email protected]>
  • Loading branch information
mzur committed Dec 19, 2025
commit 28b4ad28870c5a9682ec66792751a61b75163d13
Original file line number Diff line number Diff line change
Expand Up @@ -1793,8 +1793,19 @@ public void relayData(OutputStream outputStream, io.milton.http.Range range)
try {
connection.setRequestProperty("Connection", "Close");
if (range != null) {
connection.addRequestProperty("Range",
String.format("bytes=%d-%d", range.getStart(), range.getFinish()));
String rangeHeader;
Long start = range.getStart();
Long finish = range.getFinish();

if (start == null && finish != null) {
rangeHeader = String.format("bytes=-%d", finish);
} else if (start != null && finish == null) {
rangeHeader = String.format("bytes=%d-", start);
} else {
rangeHeader = String.format("bytes=%d-%d", start, finish);
}

connection.addRequestProperty("Range", rangeHeader);
}

connection.connect();
Expand Down