Commit Graph
74 Commits
Author SHA1 Message Date
Brad ArantandClaude Sonnet 5 f33c041ae5 Fix posttest.sh: missing boundary= made CGIFormData silently parse zero fields
CONTENT_TYPE was "multipart/form-data" with no boundary= parameter - a
real browser/curl request always includes one. Without it,
__jet.cpp's contentType.find("boundary=") returns -1, so boundary stays
a default-constructed empty ZString. CGIFormData's opening-marker search
then becomes just "--" (boundary appended to it), which matches
trivially at the very start of the body text, so the parser immediately
reports Status::COMPLETE having consumed only those two bytes and parsed
zero fields - no error, no exception, just silently empty. Every
$[:name] lookup returned blank as a result, not just $[:name3] (verified
- all six of post.example.formdata's fields were affected identically).

Fixed CONTENT_TYPE to carry the real boundary value used in
post.example.formdata ("----WebKitFormBoundaryA1LWIjMAIsdFW9XA", matching
each part's "--" + boundary delimiter line), and corrected
CONTENT_LENGTH (619 -> 623, the fixture's real current byte count - it
had grown since 619 was set, from prior edits giving each form field a
distinct name instead of several duplicate "name" fields).

Also includes the already-in-progress edits to post.example.formdata
(distinct field names name/name2.../name6, replacing several duplicate
"name" entries), post.example.urlencoded (matching field names), and
testpost.jet (added a $[:name3] line) that were sitting uncommitted -
these are what surfaced the bug in the first place, not a new change
made alongside this fix.

Verified live: all six $[:name]..$[:name6] now resolve to their exact
raw multipart values (1 test / 2&test / 3+test / 4 test / 5 / 6 - no
CGI-decoding applied, correct for multipart bodies, unlike the
urlencoded-body path which does decode).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 21:12:40 -07:00
Brad ArantandClaude Sonnet 5 6f2f3d7339 Fix testpost.jet: cgi="true" doesn't match __jet.cpp's cgi=="yes" check
$[^session] (a cookie lookup, global.cookies.data[name]) was always
empty because __jet.cpp's cgi keyword check compares against "yes" (a
deliberate choice from an earlier session, not the codebase-wide
true/false convention used by filterblanklines/trimlines/eval etc.) -
testpost.jet had cgi="true", a stale mismatch that predates that
decision, so the entire cgi block (including reading HTTP_COOKIE into
global.cookies) never ran at all. Fixed the test fixture to say
cgi="yes" to match.

Verified live via tests/posttest.sh against the current build:
$[^session] now correctly prints 18fd56a83f (posttest.sh's simulated
HTTP_COOKIE session id), and dump.txt's *** COOKIES *** section shows
session=[18fd56a83f] instead of empty. dump.txt committed with this
fresh, correct output.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 17:44:45 -07:00
Brad Arant db59e9e87c fixed output of numeric output from expr(). 2025-12-02 15:56:31 -08:00
Brad Arant 3f14b28435 New test for expression priorities. 2025-11-25 13:58:23 -08:00
Brad Arant a91d78f524 Fixed * and / operators to prioritize over + and -. 2025-11-25 13:16:26 -08:00
Brad Arant 5e0523619d Added new tests for MIN and MAX. 2025-11-24 12:19:25 -08:00
Brad Arant 3314a410e0 Added MIN and MAX functions for operand. 2025-11-24 12:15:56 -08:00
brad Arant c4f0fab8c7 Added a bunch of functions. 2025-11-08 20:04:45 -08:00
brad Arant 96302e1d27 Added ability for call tag to use container as input stream. 2025-11-07 19:35:07 -08:00
brad Arant 078a73664c Added CGI stuff and unixtime function. 2025-11-07 10:22:20 -08:00
Brad Arant fd5069f69f Moving session id out of jet tag. 2025-05-01 15:01:16 -07:00
Brad Arant 078ba7f81c significant work on cookies and cgi formdata variables. 2025-03-18 16:46:39 -07:00
Brad Arant 050b5f2b87 more formdata work. 2025-03-17 16:46:50 -07:00
brad Arant d3cd5f3c9a More session work. 2025-03-17 07:44:36 -07:00
brad Arant 60affa288e Merge branch 'master' of ssh://barant.com/git/JetCore 2025-03-09 14:59:24 -07:00
brad Arant d74093b48a moe testing work. 2025-03-09 14:58:22 -07:00
Brad Arant 167ee75658 add upper and lower to operand functions. 2025-02-13 10:27:44 -08:00
Brad Arant 6e097d8433 some small testvar updates. 2025-02-06 16:06:41 -08:00
Brad Arant 10db0e9c70 created INTEGER function on operand. 2025-02-04 09:28:28 -08:00
Brad Arant c11d5abcd0 Fixed some bugs in include and jet tags for cgi handling. 2025-01-16 15:45:15 -08:00
Brad Arant 5cefb0974b added trim operand function. 2025-01-16 13:39:09 -08:00
Brad Arant edebae34b1 allow cookie, header and stream only in cgi mode. 2025-01-15 14:51:15 -08:00
root 8b49bf39a9 Rudimentary tag restoral seems to work. Need throurough testing and subtag logic. 2025-01-13 17:09:56 -08:00
brad Arant b0e3cd85c7 reversion of tag work to ordered tag process. 2025-01-12 20:30:48 -08:00
brad Arant 779c6b0148 merge 2025-01-10 17:09:58 -08:00
barant 6516aee6cc Some operand work for right. Needs work. 2025-01-09 17:11:15 -08:00
barant 3f4ca13f3f fixed call tag completely. Should be done for now. 2025-01-09 13:57:12 -08:00
brad Arant 6959bd8f85 Fixed scope problem on ResolveKeyword. 2025-01-03 11:24:48 -08:00
brad Arant f6dda8496c Made $[%name] to retrieve keyword values in a tag. Has bugs. 2025-01-03 10:50:31 -08:00
brad Arant 907f449ecc Started the cookie tag. Still needs work. 2025-01-02 09:48:31 -08:00
barant de55071aad bug fix on operand operation for left(). 2024-12-23 09:51:50 -08:00
brad Arant e86633f506 minor test updates.;
;
2024-12-21 21:16:57 -08:00
brad Arant af7080e011 fixed local scoping on call tag. 2024-12-21 21:03:17 -08:00
brad Arant 9a9abab92d fixed scoping for local on for tag. 2024-12-21 20:26:46 -08:00
barant f3b66d9770 make uninitialized global and local variables cause exception. 2024-12-09 16:24:19 -08:00
Brad Arant 90540d3c44 cleanup 2024-12-02 15:46:49 -08:00
brad Arant ae57e06778 fixed mysql tag to give values for ?# # and field name using #n. 2024-11-27 15:37:58 -08:00
brad Arant 6d2da98024 major scope work completed. Works well!!! 2024-11-27 09:47:17 -08:00
Brad Arant 90d7d07e7e more work on scoping. 2024-11-26 17:02:59 -08:00
Brad Arant ca7aabd73f more sever scoping work. 2024-11-26 16:57:03 -08:00
Brad Arant 07e43d3f5a serious scoping work unfinished. 2024-11-26 15:25:30 -08:00
Brad Arant bd8aa1c089 fixed some bugs. Added resolveContainerParent flag to resolve set container issue not reading local variables appropriately. 2024-11-26 13:32:15 -08:00
Brad Arant e3d788bc92 error reporting now reports accurately to the line. 2024-11-26 11:17:22 -08:00
Brad Arant 79d68d6c34 minor changes on testtag.jet 2024-11-25 17:00:07 -08:00
Brad Arant 4d6b1e80b3 fixed tag to process containers in appropriate order instead of inline. 2024-11-25 13:57:35 -08:00
brad Arant 1c7edf3118 added dump tag. 2024-11-24 14:25:39 -08:00
brad Arant a9ce087939 urlencoded forms data is now workng as well. 2024-11-24 13:21:44 -08:00
brad Arant c90c7353c7 multipart/formdata now works for cgi variables. Created base for dump tag. 2024-11-24 11:20:30 -08:00
brad Arant c21dea1411 some cgi variable work. 2024-11-23 19:25:14 -08:00
brad Arant 64fd81d6ed merge 2024-11-20 08:51:29 -08:00