• exec/load/http.js

    From rswindell@VERT to CVS commit on Sun Apr 5 16:35:01 2020
    exec/load http.js 1.44 1.45
    Update of /cvsroot/sbbs/exec/load
    In directory cvs:/tmp/cvs-serv20352

    Modified Files:
    http.js
    Log Message:
    Add a status definition with the most common request status codes since a caller of HTTPRequest.Get() needs to compare against these constants
    to know if the request was successful (e.g. ok = 200).


    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From echicken@VERT to CVS commit on Wed Jul 22 04:26:28 2020
    exec/load http.js 1.45 1.46
    Update of /cvsroot/sbbs/exec/load
    In directory cvs:/tmp/cvs-serv23764

    Modified Files:
    http.js
    Log Message:
    For GET requests, follow 301, 302, 307, and 308 redirects to the first
    Location given in the response header, if present. Not enabled by
    default, so turn it on like so:

    var h = new HTTPRequest();
    h.follow_redirects = true;

    Should probably add "too many redirects" protection, since this could
    turn into an eternal game of HTTP ping-pong.



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From echicken@VERT to CVS commit on Wed Jul 22 04:31:48 2020
    exec/load http.js 1.46 1.47
    Update of /cvsroot/sbbs/exec/load
    In directory cvs:/tmp/cvs-serv24583

    Modified Files:
    http.js
    Log Message:
    Shitty hack on previous commit.
    Amended HTTPRequest.follow_redirects to be a number instead of boolean.

    var h = new HTTPRequest();
    h.follow_redirects = 1; // We'll follow this many redirects



    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Thu Aug 27 03:36:37 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/39f15ed27aaa1d54a06dd5a6
    Modified Files:
    exec/load/http.js
    Log Message:
    Better error reporting to help root-caues Nelgin's problem using bccnews.js

    <nelgin> !JavaScript : uncaught exception: Unknown scheme! 'undefined'
    <nelgin> (error with no line number) is the worst.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From echicken@VERT to Git commit to main/sbbs/master on Fri Jan 22 18:50:35 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/d802a7c951555b1dc7135a3c
    Modified Files:
    exec/load/http.js
    Log Message:
    Sub in original scheme://host[:port] if absent from Location on redirect.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Feb 15 23:51:05 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/aeb26cba8747e3adeca26d39
    Modified Files:
    exec/load/http.js
    Log Message:
    Parse redirects the easy way.

    I'm not sure what echicken was trying here, but apparently it doesn't
    work for nelgin.

    Likely fixes #220.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Feb 15 23:54:07 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/5379321a722821aab964b2ab
    Modified Files:
    exec/load/http.js
    Log Message:
    Less tired.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Feb 16 03:01:21 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/69dc58973f60f0caf9added6
    Modified Files:
    exec/load/http.js
    Log Message:
    Parse redirects the easy way.

    I'm not sure what echicken was trying here, but apparently it doesn't
    work for nelgin.

    Likely fixes #220.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Feb 16 03:01:21 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/b9c69894964b2c6ec7d6a4a5
    Modified Files:
    exec/load/http.js
    Log Message:
    Less tired.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Feb 16 03:14:16 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/21a3882f8c03fc4426088db4
    Modified Files:
    exec/load/http.js
    Log Message:
    Parse redirects the easy way.

    I'm not sure what echicken was trying here, but apparently it doesn't
    work for nelgin.

    Likely fixes #220.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Feb 16 03:14:16 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/8311170c1b66bdda0adfe71f
    Modified Files:
    exec/load/http.js
    Log Message:
    Less tired.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Feb 16 03:31:37 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/dfd7e11c58b1fd3b53c2c0dc
    Modified Files:
    exec/load/http.js
    Log Message:
    Parse redirects the easy way.

    I'm not sure what echicken was trying here, but apparently it doesn't
    work for nelgin.

    Likely fixes #220.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Feb 16 03:31:37 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/2cbf30304429df5ebee5cf09
    Modified Files:
    exec/load/http.js
    Log Message:
    Less tired.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon May 8 01:11:16 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/088b87a4b8c8e2e43a88af2d
    Modified Files:
    exec/load/http.js
    Log Message:
    Support recv_timeout argument to HTTPRequest constructor, default: 60 (seconds)

    Use this time-out value for calls to recv() and recvline() rather than a mix of default and hard-coded values. If unspecified, uses a default of 60 seconds.

    This fixes issue #562

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From echicken@VERT to Git commit to main/sbbs/master on Fri Nov 24 06:15:20 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/02bc1bb84255e04f94849fb1
    Modified Files:
    exec/load/http.js
    Log Message:
    Normalize parsed_headers keys to lowercase.

    Fixes #675 (probably).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From echicken@VERT to Git commit to main/sbbs/master on Fri Nov 24 07:28:39 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/b41d1226f147cb93842af56d
    Modified Files:
    exec/load/http.js
    Log Message:
    Keep original header name alongside normalized for now. We should probably switch to using a method to read these values and do normalization there.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From echicken@VERT to Git commit to main/sbbs/master on Fri Nov 24 07:32:22 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/f25e8e59f6b1bf4bc5f635f7
    Modified Files:
    exec/load/http.js
    Log Message:
    Normalized header name may already match what we received.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Thu May 28 01:25:55 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/25b5c0296eab69d9c1f4141b
    Modified Files:
    exec/load/http.js
    Log Message:
    http.js: add PostStreaming() for HTTP/1.1 chunked-transfer responses

    Adds three methods to HTTPRequest:
    - SetupPostStreaming() -- like Post()'s setup but HTTP/1.1 and no
    automatic body collection
    - ReadChunkedBody(on_chunk) -- reads chunked-transfer-encoded body,
    invokes on_chunk(text) per chunk
    - PostStreaming(url, data, on_chunk, ...) -- POST + streamed read;
    returns the full accumulated body after the stream completes.

    Falls back gracefully if the server returns non-chunked Content-Length
    (single on_chunk call with the whole body).

    Needed by exec/chat_llm.js for streaming Ollama responses (SSE / chunked transfer) in the LLM-chat module. Purely additive -- existing Post() /
    Get() behavior unchanged.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sat Jun 20 14:58:46 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/764e12d1a3056f0146b08e83
    Modified Files:
    exec/load/http.js
    Log Message:
    http.js: add Download() and output_file for streaming a response body to disk

    HTTPRequest buffered the entire response body in a (SpiderMonkey 1.8.5) string, which is costly and risky for large downloads. Add an output_file property and a
    Download(url, filename) convenience method that stream the body straight to a file in bounded 16 KB chunks instead.

    Backward compatible: output_file defaults to undefined, so existing Get()/Post()
    callers are unchanged. Only a final 2xx response streams to the file -- a redirect (3xx) body is still read into this.body so Get()'s redirect-follow re-requests, and a 4xx/5xx error body stays in this.body for the caller to inspect. Also exposes body_length (bytes received) on every request.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net