|
|
| version 1.239, 2026/07/13 02:05:15 | version 1.248, 2026/11/02 02:05:14 |
|---|---|
| Line 1 | Line 1 |
| 2026-11-02 moko | |
| * tests/: 207.html, results/207.processed: min/max tests added | |
| (related to feature #1316) | |
| * src/classes/math.C: ^math:min(n1;n2;...) and ^math:max(n1;n2;...) | |
| added (implements feature #1316) | |
| 2026-11-01 moko | |
| * tests/: 185.html, 477.html, results/185.processed, | |
| results/477.processed: rpos UTF-8 and pos/rpos Windows-1251 tests | |
| added (related to feature #1180) | |
| * src/: classes/string.C, include/pa_string.h, main/pa_string.C: | |
| ^string.rpos[substing] added (implements feature #1180) | |
| 2026-10-31 moko | |
| * src/classes/op.C: fix_line_breaks called for process code if | |
| requied as compiler treats \r as part of the name (implements | |
| feature #850) | |
| 2026-10-30 moko | |
| * tests/: 475.html, httpd/response-timeout/site/config.p: tests | |
| tuned a bit (reduce memory requirements) | |
| * src/: main/pa_http.C, targets/cgi/parser3.C: non-blocking reading | |
| for the request on 503 error to avoid connection reset (related | |
| to feature #1312) | |
| * tests/httpd/code-cache/run_tests.sh: FreeBSD tune | |
| * tests/httpd/code-cache/run_tests.sh: tuned for FreeBSD | |
| * tests/httpd/max-connections/run_tests.sh: FreeBSD fixes | |
| * tests/httpd/max-connections/run_tests.sh: adopted for FreeBSD | |
| * tests/httpd/response-timeout/run_tests.sh: fixed in parser3 | |
| * src/main/pa_globals.C: libxml errors for threads fixed | |
| * tests/httpd/response-timeout/run_tests.sh: test tune for FreeBSD | |
| * src/main/pa_http.C: option if no cloexit | |
| * tests/httpd/response-timeout/: run_tests.sh, site/hang.sh: minor | |
| updates | |
| * tests/httpd/response-timeout/: ok.log, run_tests.sh, | |
| site/config.p, site/detach.sh, site/hang.sh: $response:timeout | |
| httpd tests (related to feature #1312) | |
| 2026-10-29 moko | |
| * src/main/pa_threads.C: FreeBSD fix | |
| * src/: include/pa_socks.h, main/pa_http.C, main/pa_socks.C: | |
| connect also can be interrupted - pa_sock_connect added (related | |
| to feature #1312) | |
| * tests/httpd/max-connections/: ok.log, run_tests.sh, | |
| site/config.p: $HTTPD.max-connections test added (related to | |
| feature #1312) | |
| * tests/: 475.html, results/475.processed: $response:timeout test | |
| added (related to feature #1312) | |
| * configure.ac, src/include/pa_config_auto.h.in, | |
| src/include/pa_config_includes.h, src/main/pa_threads.C: more | |
| FreeBSD fixes | |
| * src/main/pa_os.C: FreeBSD fixes | |
| * src/: include/pa_config_includes.h, include/pa_os.h, | |
| include/pa_version.h, main/pa_os.C, main/pa_threads.C: FreeBSD | |
| timers support | |
| * configure.ac: +FreeBSD timers support | |
| * src/include/pa_version.h: response-timeout added to parser | |
| features list | |
| * configure.ac: rt required for timer_create on older linux | |
| * src/: classes/op.C, include/pa_os.h, main/pa_os.C, | |
| main/pa_xml_io.C: interruption tuned (related to feature #1312) | |
| * buildall: avoid aclocal | |
| 2026-10-28 moko | |
| * configure.ac: gettid check fixed | |
| * src/: include/pa_exec.h, main/pa_exec.C, main/pa_http.C, | |
| targets/cgi/parser3.C: exec children are now also kill on | |
| response timeout (related to feature #1312) | |
| * src/: classes/op.C, include/pa_exception.h, main/pa_request.C: | |
| Interrupted exception should be uncatchable, as recoursion | |
| (related to feature #1312) | |
| * src/: include/pa_request.h, main/execute.C, main/pa_request.C, | |
| targets/cgi/parser3.C, types/pa_vmethod_frame.C: request: | |
| finterrupted added, if fskip was overwritten, the next set_skip() | |
| restores SKIP_INTERRUPTED from it (related to feature #1213) | |
| * src/: include/pa_globals.h, main/pa_globals.C, main/pa_request.C, | |
| targets/cgi/pa_sapi_info.h, targets/cgi/parser3.C: | |
| RequestController optmized out (related to feature #1312) | |
| * src/: classes/op.C, classes/websocket.C, include/pa_os.h, | |
| include/pa_sapi.h, main/execute.C, main/pa_os.C, | |
| main/pa_sql_driver_manager.C, main/pa_stylesheet_manager.C, | |
| targets/apache/mod_parser3_core.C, targets/cgi/pa_sapi_info.h, | |
| targets/cgi/parser3.C, targets/isapi/parser3isapi.C, | |
| types/pa_vresponse.C, types/pa_vresponse.h: $response:timeout | |
| implemented, Linux only (related to feature #1312) | |
| 2026-10-27 moko | |
| * operators.ru.txt, operators.txt, src/targets/cgi/parser3.C: | |
| sigpipe handler now empty and $MAIN:SIGPIPE(1) ignored: it was | |
| not called in cgi mode anyway, as parser does not write anything | |
| until all code is executed, but it was called in ^exec if called | |
| program ignore stdin. Not SIG_IGN, as the ignored signal is | |
| inherited by the executed programs (related to feature #1312) | |
| * src/targets/cgi/parser3.C: pa_log now uses open/single | |
| write/close insead of fopen/fwrite/fclose (as they async signal | |
| safe) (related to feature #1312) | |
| 2026-10-26 moko | |
| * src/targets/cgi/parser3.C: logging for 503 errors added (related | |
| to feature #1312) | |
| * src/: include/pa_http.h, main/pa_http.C, main/pa_request.C, | |
| targets/cgi/pa_sapi_info.h, targets/cgi/parser3.C, | |
| types/pa_vstatus.C: $HTTPD.max-connections added (implements | |
| feature #1312) | |
| 2026-10-25 moko | |
| * tests/: 474.html, results/474.processed: more tests for json | |
| $.distinct[all] | |
| * src/classes/json.C: replaced linar free key search with binary | |
| search for $.distinct[all] | |
| * src/classes/image.C: Measure_budget added to limit the work a | |
| measured file can require | |
| 2026-10-23 moko | |
| * etc/auto.p.in: $LIMITS commented to allow their specification | |
| from outside when using default auto.p | |
| * src/: include/pa_os.h, include/pa_request.h, main/pa_request.C, | |
| types/pa_vclass.C, types/pa_vclass.h, | |
| types/pa_vstateless_class.C, types/pa_vstateless_class.h, | |
| types/pa_vvoid.h: thread safety for @conf: THREAD_LOCAL specified | |
| where should be, CONF_OPTION used for bool values, | |
| SYMBOLS_CACHING used only for native methods names to aboid | |
| Symbols modifications in threads. | |
| * buildall: avoid autotools calls when checked from git (related to | |
| feature #1268) | |
| * src/lib/gd/: gif.h, gifio.C: multithreading support, upstream | |
| changes (related to feature #1268) | |
| * etc/auto.p.in, src/include/pa_request.h, src/main/pa_request.C, | |
| src/types/pa_vclass.C, src/types/pa_vclass.h: @mime-types[] | |
| replaced with @GET_MIME-TYPES[] for better compatibility (related | |
| to feature #1311) | |
| * tests/473.html: @mime-types[] -> @GET_MIME-TYPES[] (related to | |
| feature #1311) | |
| * tests/: 464.html, 465.html, results/464.processed, | |
| results/465.processed: $response:started tested (related to | |
| feature #1306) | |
| * tests/: 473.html, results/473.processed: test for @mime-types[] | |
| added (related to feature #1311) | |
| * etc/auto.p.in, src/include/pa_request.h, src/main/pa_request.C: | |
| optimization: $MAIN:MIME-TYPES is replaced with @mime-types[], | |
| which is called only if needed (implements feature #1311) | |
| * src/main/pa_http.C: recycle headers buffer if nothing left | |
| 2026-10-22 moko | |
| * src/: classes/op.C, types/pa_vclass.h: MAIN native methods are | |
| cached in a singleton | |
| * src/types/pa_vregex.C: minor tuning | |
| * src/types/: pa_vregex.C, pa_vregex.h: compiled regexe patterns | |
| are now cached and can be reused: in a loop, by the other threads | |
| and by the next httpd requests | |
| * buildall: cmake check added | |
| * configure.ac: cmake builds .a, not .la | |
| * buildall: avoid extra 16Kb stack memory clear (increases memory | |
| consumption when many threads) | |
| 2026-10-19 moko | |
| * src/: include/pa_exception.h, include/pa_memory.h, | |
| main/pa_exception.C, main/pa_memory.C, main/pa_xml_exception.C, | |
| targets/apache/mod_parser3_core.C, targets/cgi/parser3.C, | |
| targets/isapi/parser3isapi.C: Temp_gc_references added and used | |
| * src/main/pa_http.C: increase listen queue as websocket support | |
| was added | |
| * src/targets/cgi/parser3.C: minor logging fixes | |
| * src/: classes/inet.C, classes/reflection.C, include/pa_common.h, | |
| lib/smtp/smtp.C, main/execute.C, main/pa_common.C, main/pa_dir.C, | |
| main/pa_exception.C, main/pa_globals.C, main/pa_int.C, | |
| main/pa_random.C, main/pa_request.C, main/pa_string.C, | |
| main/pa_xml_exception.C, targets/apache/mod_parser3_core.C, | |
| targets/cgi/pa_sapi_info.h, targets/cgi/parser3.C, | |
| targets/isapi/parser3isapi.C, types/pa_vdate.C, | |
| types/pa_vdouble.h, types/pa_vmail.C: pa_snprintf and | |
| pa_vsnprintf are now called explicitly, snprintf/vsnprintf macros | |
| removed only Windows _vsnprintf needs size-1, thus "+1 for faulty | |
| snprintfs" removed. | |
| 2026-10-18 moko | |
| * src/: include/pa_socks.h, main/pa_socks.C: hopefully final turing | |
| for EINTR handling | |
| * src/: include/pa_socks.h, main/pa_http.C, main/pa_socks.C, | |
| main/pa_websocket.C: EINTR handling tuned once again | |
| * src/: include/pa_socks.h, main/pa_http.C, main/pa_os.C, | |
| main/pa_socks.C, main/pa_websocket.C: pa_sock_recv / pa_sock_send | |
| added to continue if interruped (usually by GC) | |
| 2026-10-17 moko | |
| * tests/httpd/websocket-app/: config.p, index.html, run_server.sh: | |
| websocket demo added (related to feature #1310) | |
| * tests/httpd/site/config.p: comment tuned | |
| * tests/httpd/: 044.txt, ok.log, site/config.p, site/form.html: | |
| testing the $form is refilled after the POST is read | |
| * src/types/: pa_vform.C, pa_vform.h: the POST content should be | |
| checked in refill confition, as is read after @conf, where $form | |
| can be accessed (for query string only) | |
| 2026-10-16 moko | |
| * src/classes/amqp.C: repair channel tuned: the new channel gets a | |
| new number as the deliveries the broker has sent on the dead one | |
| may still be in the library's buffers (related to feature #1288) | |
| * tests/results/: 323.processed, 421.processed: tests results | |
| updated after websocket class was added (related to feature | |
| #1310) | |
| * src/: classes/form.C, classes/websocket.C, include/pa_request.h, | |
| main/pa_request.C, main/pa_websocket.C: post_max_size moved to | |
| request:configure_admin and used in websocket as well, warnings | |
| war (related to feature #1310) | |
| * src/: classes/Makefile.am, classes/classes.vcproj, | |
| include/Makefile.am, lib/md5/Makefile.am, lib/md5/md5.vcproj, | |
| main/Makefile.am, main/main.vcproj: project files updates for | |
| websocket (RFC 6455) support (related to feature #1310) | |
| * src/: classes/classes.C, classes/math.C, classes/websocket.C, | |
| include/pa_http.h, include/pa_request.h, include/pa_socks.h, | |
| include/pa_websocket.h, lib/md5/pa_sha1.C, lib/md5/pa_sha1.h, | |
| lib/md5/pa_sha2.c, lib/md5/pa_sha2.h, main/pa_http.C, | |
| main/pa_request.C, main/pa_socks.C, main/pa_websocket.C, | |
| targets/cgi/pa_sapi_info.h, targets/cgi/parser3.C, | |
| types/pa_vresponse.C, types/pa_vresponse.h: websocket (RFC 6455) | |
| support added (implements feature #1310) sha1 code moved to | |
| lib/md5. | |
| 2026-10-15 moko | |
| * src/classes/response.C, src/include/pa_request.h, | |
| src/main/pa_request.C, tests/464.html, tests/465.html, | |
| tests/466.html, tests/467.html, tests/468.html, | |
| tests/results/468.processed: ^response:send[] -> | |
| response:stream[] (related to feature #1306) | |
| 2026-10-14 moko | |
| * src/: include/pa_http.h, include/pa_socks.h, main/pa_http.C, | |
| main/pa_socks.C: select -> poll | |
| * tests/results/: 175.processed, 180.processed, 195.processed, | |
| 298.processed, 380.processed: try-catch-comment whitespace tuned | |
| * tests/memcached/: 001.html, ok.log: tests for array support in | |
| memcached:mget added (related to feature #1309) | |
| * src/classes/memcached.C: memcached:mget - array support added | |
| (implements feature #1309) | |
| * tests/: 468.html, results/468.processed, results/auto.p: many | |
| more tests for get_element/get_element4call added (related to | |
| feature #1307) | |
| 2026-10-13 moko | |
| * src/: classes/json.C, classes/op.C, classes/reflection.C, | |
| include/pa_request.h, include/pa_string.h, main/pa_request.C, | |
| main/untaint.C, types/pa_vresponse.C, types/pa_vresponse.h: | |
| $response:untaint added, it allows to change response data | |
| untainting lang (implements feature #1308) get_untaint_lang | |
| renamed to String::name2lang, String::lang2name added | |
| * src/: include/pa_request.h, main/pa_request.C: cleanup: response | |
| untainting lang can't be changed since Temp_lang removal (#1091), | |
| thus save/restore no longer required | |
| * src/types/pa_vresponse.C: VResponse joins "open key class list" | |
| (related to feature #1307) | |
| * tests/: memcached/003.html, memcached/ok.log, redis/006.html, | |
| redis/ok.log: more tests for key/method priority added | |
| * src/types/: pa_varray.h, pa_vconsole.h, pa_vcookie.C, pa_venv.C, | |
| pa_vform.C, pa_vhash.h, pa_vhashfile.h, pa_vmemcached.C, | |
| pa_vredis.h, pa_vrequest.C, pa_vstateless_class.h, pa_vstatus.C, | |
| pa_vstring.h, pa_vtable.C, pa_vtable.h: | |
| MAYBE_GET_SPECIAL_OR_METHOD and MAYBE_GET_SPECIAL added ans used | |
| to avoid OPTIMIZE_BYTECODE_GET_ELEMENT__SPECIAL defines; used in | |
| memcached and hashfile to allow keys with method names | |
| 2026-10-11 moko | |
| * tests/: 467.html, results/467.processed: ^sse[] demo for | |
| ^response:send[] added (related to feature #1306) | |
| * tests/httpd/: run_tests.cmd, run_tests.ps1: | |
| run_tests.cmd/run_tests.ps1 added to test httpd under Windows | |
| * src/main/: pa_common.C, pa_dir.C, pa_file.C: pa_utf16_encode no | |
| longer throws exception on bad UTF-8 to avoid undesired file | |
| functions exceptions under Windows (errno is set instead) | |
| * tests/httpd/: ok.log, run_tests.sh, site/config.p, | |
| site/run_server.sh: httpd run_tests.sh now runs/stops parser | |
| webserver, default auto.p used | |
| * etc/auto.p.in: $CHARSETS fully commented to allow redefinition in | |
| tests | |
| * src/main/pa_http.C: socket timeout used not only under windows, | |
| but also in linux threaded mode, where alarm is not available | |
| 2026-10-10 moko | |
| * tests/: memcached/001.html, memcached/config.p, memcached/ok.log, | |
| redis/config.p, redis/ok.log: minor code cleanup in tests | |
| * tests/: 464.html, 465.html, 466.html, results/464.processed, | |
| results/465.processed, results/466.processed: tests for | |
| ^response:send[part] added (related to feature #1306) | |
| * src/: classes/response.C, include/pa_request.h, | |
| main/pa_request.C: ^response:send[part] added (implements feature | |
| #1306) | |
| * src/: include/pa_request.h, main/pa_request.C, | |
| targets/apache/mod_parser3_core.C, targets/cgi/parser3.C, | |
| targets/isapi/parser3isapi.C: header_only param optimized out | |
| * src/classes/amqp.C: more correct amqp exception handling | |
| * tests/memcached/: 001.html, 002.html, config.p, ok.log, | |
| run_tests.sh: memcached tests commited | |
| * src/: classes/amqp.C, lib/memcached/pa_memcached.C, | |
| lib/memcached/pa_memcached.h, types/pa_vmemcached.C: minor memory | |
| licks fixed, memcached get uses mget to avoid memory leak | |
| * src/targets/cgi/parser3.C: pooled fix for memcached | |
| * src/: classes/amqp.C, classes/memcached.C, classes/redis.C, | |
| types/pa_vamqp.h, types/pa_vmemcached.h, types/pa_vredis.h: amqp, | |
| redis, memcached are now Pooled - to close connection if no | |
| release was called | |
| 2026-10-09 moko | |
| * tests/: 463.html, results/463.processed: tests for a constructor | |
| called as a method of a created object | |
| * src/: classes/hashfile.C, types/pa_vhashfile.C, | |
| types/pa_vhashfile.h, types/pa_vimage.h, types/pa_vmemcached.C, | |
| types/pa_vregex.C: more checks for a constructor called as a | |
| method of a created object | |
| * operators.ru.txt, operators.txt: amqp and redis documented | |
| (related to feature #1288 and #1304) | |
| * src/: classes/amqp.C, types/pa_vamqp.h: warning war: | |
| librabbitmq>0.12 by default, PA_AMQP_COMPAT added for older | |
| versions (related to feature #1288) | |
| * src/: classes/classes.vcproj, include/pa_config_fixed.h, | |
| lib/pcre/pcre_internal.vcproj, main/main.vcproj, | |
| main/pa_globals.C, targets/apache/ApacheModuleParser3.vcproj, | |
| targets/apache/ApacheModuleParser3Core.vcproj, | |
| targets/cgi/parser3.vcproj, targets/isapi/parser3isapi.vcproj, | |
| types/types.vcproj: msvc: hiredis added, pcre2 added under | |
| windows (related to feature #1304) | |
| * buildall: pcre jit is not used anyway | |
| * tests/redis/: 001.html, 002.html, 003.html, 004.html, 005.html, | |
| config.p, ok.log, run_tests.sh: tests for redis integration added | |
| (related to feature #1304) | |
| * src/: classes/redis.C, types/pa_vredis.h: redis SSL support | |
| added, similar to AMQP (related to feature #1304) | |
| 2026-10-08 moko | |
| * configure.ac: WITH_AMQP_SSL check tuned | |
| * src/classes/amqp.C, src/include/pa_config_auto.h.in, | |
| src/include/pa_config_fixed.h, src/include/pa_version.h, | |
| configure.ac: +WITH_REDIS_SSL, WITHOUT_AMQP_SSL -> WITH_AMQP_SSL | |
| * buildall: use gmake under FreeBSD | |
| * configure.ac: configure: Checks for libraries moved before | |
| features as redis require -lm on FreeBSD | |
| 2026-10-07 moko | |
| * tests/460.html: sort added | |
| * tests/results/425.processed: PCRE2 10.44 -> PCRE2 10.49 | |
| * src/: classes/file.C, include/pa_version.h, | |
| targets/cgi/parser3.C, targets/isapi/parser3isapi.C, | |
| types/pa_venv.C: PARSER_VERSION_WITH_FEATURES added and used | |
| (implements feature #1305) | |
| * buildall: --with-amqp, --with-redis added, --with-pic now by | |
| default, gc: libatomic_ops-7.6.2 -> libatomic_ops-7.10.0, | |
| gc-8.0.4 -> gc-8.2.12, pcre2-10.44 -> pcre2-10.49 gc, pcre, | |
| rabbitmq-c, hiredis - now all in lib folder (related to feature | |
| #1268) | |
| * src/classes/redis.C: redis file commands prefix changed to f- | |
| (related to feature #1304) | |
| * configure.ac: hiredis is build without libtool (related to | |
| feature #1304) | |
| * configure.ac: amqp_ssl_socket.h check added to defune | |
| WITHOUT_AMQP_SSL (related to feature #1288) | |
| * src/classes/redis.C: file- prefix implemented to get file result | |
| from any redis command (related to feature #1304) | |
| * src/classes/: amqp.C, file.C, redis.C: more headers reoder and | |
| cleanup | |
| * src/classes/redis.C: headers cleanup and reorder (related to | |
| feature #1304) | |
| * configure: autoreconf after redis was added (related to feature | |
| #1304) | |
| * tests/results/: 323.processed, 421.processed: tests results | |
| updated after redis class was added (related to feature #1304) | |
| * buildall, configure.ac: --with-redis option added to enable redis | |
| support using hiredis (related to feature #1304) | |
| * src/: classes/Makefile.am, classes/classes.C, | |
| classes/classes.vcproj, classes/redis.C, | |
| include/pa_config_auto.h.in, targets/apache/Makefile.am, | |
| targets/cgi/Makefile.am, types/Makefile.am, types/pa_vredis.h: | |
| class with redis support added (implements feature #1304) | |
| 2026-10-06 moko | |
| * src/types/pa_vtable.C: compile fix with FEATURE_GET_ELEMENT4CALL | |
| undefined | |
| * tests/httpd/code-cache/: ok.log, run_tests.sh, site/cached.p, | |
| site/config.p, site/extend.p, site/late.p, site/tests.p: tests | |
| for code caching in httpd mode (related to feature #1302) | |
| * tests/: 182.html, results/182.processed: test for | |
| ^reflection:used[] added (related to feature #1303) | |
| * tests/results/415.processed: actualized after Bison upgrade | |
| 2026-10-05 moko | |
| * src/classes/reflection.C: ^reflection:used[] added, list of | |
| @USE-d files (implements feature #1303) | |
| * src/: include/Makefile.am, include/pa_code_cache.h, | |
| include/pa_request.h, main/Makefile.am, main/compile.C, | |
| main/compile.y, main/compile_tools.h, main/main.vcproj, | |
| main/pa_code_cache.C, main/pa_request.C, targets/cgi/parser3.C, | |
| types/pa_vstateless_class.C: code caching implemented for httpd | |
| mode: it records and then replays the compilation using the | |
| cached methods (implements feature #1302), pa_code_cache.h/.C | |
| added | |
| * src/main/compile.tab.C: updated with Bison 3.8.2 from Debian 13 | |
| * src/main/compile.y: define parse.error verbose used for newer | |
| Bison | |
| 2026-10-03 moko | |
| * tests/: 436.html, 462.html, results/436.processed, | |
| results/462.processed: ", actual filename" tested (related to | |
| feature #1299) | |
| * src/: classes/file.C, include/pa_file.h, main/pa_exec.C, | |
| main/pa_file.C: avoid the duplicated <name> ", actual filename | |
| <name>" when untainting did not change the original <name> | |
| (related to feature #1299) | |
| * tests/results/293.processed: test result updated after js | |
| tainting tuning (related to feature #1301) | |
| * tests/: 462.html, results/462.processed: test for tuned json | |
| tainting added (related to feature #1301) | |
| * src/main/untaint.C: json tainting tuned (implements feature | |
| #1301) | |
| 2026-10-02 moko | |
| * tests/: 461.html, results/461.processed: test for ^file:list[ | |
| $.exception(true) ] feature added (related to feature #1084) | |
| * src/: classes/file.C, include/pa_dir.h, main/pa_dir.C: | |
| ^file:list[no-such-directory] throws exception if | |
| $.exception(true) is passed (implements feature #1084) | |
| * src/: include/pa_os.h, main/pa_os.C: pa_set_errno added which | |
| sets errno as CRT functions for unix compatibility (related to | |
| feature #1084) | |
| * src/: classes/file.C, include/pa_file.h, main/pa_file.C, | |
| main/pa_request.C: path_cmp added with strncasecmp under Windows | |
| (related to feature #1300) | |
| 2026-10-01 moko | |
| * src/classes/file.C, tests/460.html, tests/results/460.processed: | |
| ^file:diskpath[] added, returns full disk for web or relative | |
| path; file:// and C:\ resolved as well, tests updated | |
| (implemented feature #58) | |
| * tests/: 460.html, results/460.processed: tests for filenames | |
| tainting and that path scheme should not be tainted (related to | |
| feature #1299) | |
| * src/: include/pa_file.h, include/pa_request.h, main/pa_file.C, | |
| main/pa_request.C: tainting check in file:// added for -f and | |
| similar as well (related to feature #1299) | |
| * src/: include/pa_common.h, include/pa_file.h, | |
| include/pa_string.h, main/pa_common.C, main/pa_file.C, | |
| main/pa_string.C: file:// and others schemes should not be from | |
| external sources aka tainted (related to feature #1299) | |
| * src/main/untaint.C: '\' is a path separator everywhere, tainting | |
| updated (related to feature #1300) | |
| * tests/console/: ok.log, run_tests.sh, 001/config.p, 001/lib.p, | |
| 001/page.html, 002/auto.p, 002/page.html: tests for args handling | |
| in console mode (related to feature #1300) | |
| * src/targets/cgi/parser3.C: '\' as a path separator for config and | |
| log options (related to feature #1300) | |
| 2026-09-30 moko | |
| * tests/: 459.html, results/459.processed: tests added for '\' is a | |
| path separator on all platforms (related to feature #1300) | |
| * src/main/: pa_file.C, pa_request.C: file://server/share/path | |
| support under windows added (related to feature #1299) | |
| * src/include/: pa_file.h, pa_request.h, pa_request_info.h: | |
| '/'-normalization documented (related to feature #1300) | |
| * src/: classes/file.C, include/pa_common.h, | |
| include/pa_request_info.h, main/pa_common.C, main/pa_file.C, | |
| main/pa_request.C, targets/apache/mod_parser3_core.C, | |
| targets/cgi/parser3.C, targets/isapi/parser3isapi.C, | |
| types/pa_vrequest.C: '\' was a path separator on Linux for file | |
| path functions only, now for file operations as well; file names | |
| are '/' separated internally, document root is also kept without | |
| the trailing '/' (implements feature #1300) | |
| * src/include/pa_string.h: strrchr added | |
| 2026-09-29 moko | |
| * tests/: 459.html, results/459.processed: tests for file functions | |
| prefix checks added; file:// prefix tests (related to feature | |
| #1299) | |
| * src/: classes/file.C, classes/table.C, classes/xdoc.C, | |
| include/pa_file.h, include/pa_request.h, main/execute.C, | |
| main/pa_file.C, main/pa_request.C, targets/cgi/parser3.C: all | |
| file functions now check prefix, http:// and parser:// is | |
| accepted only where allowed; file:// prefix added to specify OS | |
| disk path (implements feature #1299) | |
| 2026-09-28 moko | |
| * src/lib/ltdl/: configure.ac, ltdl.vcproj: ltdl: assertions now | |
| disabled in a release build, NDEBUG added to MSVC release build | |
| * src/main/: pa_request.C, pa_xml_io.C: http:// and file:// must be | |
| tested as prefixes, last rsplit(hpath, '/') documented as OK. | |
| * src/main/: pa_file.C, pa_request.C: regression: / should be | |
| checked first (related to feature #941) | |
| * src/main/pa_file.C: whitespace | |
| * src/main/pa_request.C, tests/458.html, | |
| tests/results/458.processed: comments and test for MSVC win64 | |
| exception handling added | |
| * src/targets/cgi/parser3.vcproj: StackReserveSize changed to 40Mb | |
| for MSVC, to allow full 3 levels of win64 Exception Handling | |
| * tests/450-curl.html: windows support | |
| * src/: main/pa_request.C, targets/cgi/parser3.vcproj: | |
| StackReserveSize changed to 32Mb for MSVC, stack usage | |
| calculations documented (inluding ~10Kb for win64 Exception | |
| Handling) | |
| 2026-09-27 moko | |
| * src/targets/: apache/mod_parser3_core.C, cgi/parser3.C, | |
| isapi/parser3isapi.C: fixed ExceptionAddress output for Windows | |
| x64 | |
| * src/lib/ltdl/ltdl.c: restored local libltdl patch "fixes for | |
| Win32 and broken FreeBSD (issue #45)" which was list during ltdl | |
| update | |
| * src/lib/ltdl/: lt__argz.h, ltdl.vcproj: Windows build fix | |
| * src/: classes/image.C, main/pa_file.C, main/pa_request.C: minor: | |
| %.15g + double replaced with %s + pa_(u)itoa. | |
| * src/main/pa_dir.C: file related functions moved to pa_file | |
| (related to feature #941) | |
| * src/main/pa_dir.C: file related functions moved to pa_file | |
| (related to feature #941) | |
| * src/: include/Makefile.am, main/Makefile.am, include/pa_common.h, | |
| include/pa_dir.h, include/pa_exec.h, include/pa_request.h, | |
| main/main.vcproj, main/pa_charset.C, main/pa_common.C, | |
| main/pa_dir.C, main/pa_http.C, main/pa_request.C, | |
| targets/cgi/parser3.C, types/pa_vhashfile.C, include/pa_file.h, | |
| main/pa_file.C: file related functions moved to pa_file (related | |
| to feature #941) | |
| * src/lib/ltdl/m4/argz.m4: no longer used | |
| * aclocal.m4, compile, config.guess, config.sub, configure, | |
| depcomp, install-sh, ltmain.sh, missing, | |
| src/include/pa_config_auto.h.in, src/lib/ltdl/COPYING.LIB, | |
| src/lib/ltdl/Makefile.am, src/lib/ltdl/README, | |
| src/lib/ltdl/aclocal.m4, src/lib/ltdl/argz.c, | |
| src/lib/ltdl/argz_.h, src/lib/ltdl/config-h.in, | |
| src/lib/ltdl/configure, src/lib/ltdl/configure.ac, | |
| src/lib/ltdl/lt__alloc.c, src/lib/ltdl/lt__argz.c, | |
| src/lib/ltdl/lt__dirent.c, src/lib/ltdl/lt__strl.c, | |
| src/lib/ltdl/lt_dlloader.c, src/lib/ltdl/lt_error.c, | |
| src/lib/ltdl/ltdl.c, src/lib/ltdl/ltdl.h, src/lib/ltdl/slist.c, | |
| src/lib/ltdl/libltdl/lt__alloc.h, | |
| src/lib/ltdl/libltdl/lt__argz_.h, | |
| src/lib/ltdl/libltdl/lt__dirent.h, | |
| src/lib/ltdl/libltdl/lt__glibc.h, | |
| src/lib/ltdl/libltdl/lt__private.h, | |
| src/lib/ltdl/libltdl/lt__strl.h, | |
| src/lib/ltdl/libltdl/lt_dlloader.h, | |
| src/lib/ltdl/libltdl/lt_error.h, | |
| src/lib/ltdl/libltdl/lt_system.h, src/lib/ltdl/libltdl/slist.h, | |
| src/lib/ltdl/loaders/dld_link.c, src/lib/ltdl/loaders/dlopen.c, | |
| src/lib/ltdl/loaders/dyld.c, src/lib/ltdl/loaders/load_add_on.c, | |
| src/lib/ltdl/loaders/loadlibrary.c, | |
| src/lib/ltdl/loaders/preopen.c, src/lib/ltdl/loaders/shl_load.c, | |
| src/lib/ltdl/m4/libtool.m4, src/lib/ltdl/m4/ltargz.m4, | |
| src/lib/ltdl/m4/ltdl.m4, src/lib/ltdl/m4/ltoptions.m4, | |
| src/lib/ltdl/m4/ltsugar.m4, src/lib/ltdl/m4/ltversion.m4, | |
| src/lib/ltdl/m4/lt~obsolete.m4: autotools regenerated with | |
| autoconf 2.72 and automake 1.17, bundled libltdl updated to the | |
| one from libtool 2.5.4 (autoreconf -fi under Debian 13) | |
| * tests/results/457.processed: test results updated after | |
| recursion_limit_try_restore added (related to feature #1298) | |
| * src/main/pa_request.C: const uint changed to more correct int | |
| * src/: main/execute.C, types/pa_vmethod_frame.h: | |
| SINGLE_METHOD_FRAME implemented to reduce execute() stack frame. | |
| Without it, compiler reserves stack frame for each ot 8 parser | |
| frame variants (related to feature #1293) | |
| 2026-09-26 moko | |
| * tests/: 457.html, results/457.processed: test and it's results | |
| updated after recursion_limit_try_restore added (related to | |
| feature #1298) | |
| * src/: classes/op.C, include/pa_request.h, types/pa_vxdoc.C: | |
| recursion_limit_try_restore added to even more improve endless | |
| recursion handling (related to feature #1298) | |
| * tests/: 456.html, 457.html, results/456.processed, | |
| results/457.processed: tests for EXECUTE_RECURSION_RESERVE added | |
| (related to feature #1298) | |
| * src/: classes/op.C, include/pa_exception.h, include/pa_request.h, | |
| main/pa_request.C: to improve endless recursion handling | |
| EXECUTE_RECURSION_RESERVE was added and used (implements feature | |
| #1298) | |
| 2026-09-25 moko | |
| * tests/: 455.html, results/455.processed: test for | |
| ^reflection:stack[$exception] added (related to feature #1145) | |
| * src/: classes/op.C, classes/reflection.C, include/pa_request.h, | |
| main/pa_request.C: ^reflection:stack[$exception] now supported | |
| within catch code (implements feature #1145) | |
| * src/main/pa_common.C: writing big files using chunks to bypass | |
| Windows 2Gb limit (fixes bug #1297) | |
| * tests/: 453.html, 454.html, results/453.processed, | |
| results/454.processed: tests for bug #1082 added: preserving the | |
| original stack trace after handling a nested exception in catch; | |
| reporting the correct stack trace for a new exception thrown from | |
| finally. | |
| * tests/run_parser.sh: Moscow timezone is set by default (not | |
| required to be set on test server) | |
| * src/: classes/op.C, include/pa_request.h, main/pa_request.C: work | |
| with exception_trace redesigned, Request_context_save no longer | |
| touches exception_trace (fixes bug #1082) | |
| 2026-09-24 moko | |
| * tests/: 452.html, results/452.processed: checks for exception is | |
| still hash compatible added (related to feature #1145) | |
| * src/: classes/op.C, include/pa_request.h, main/pa_request.C: | |
| Exception_details is replaced with efficient VException, hash is | |
| created only on demand (related to feature #1145) | |
| * src/: include/pa_symbols.h, main/pa_symbols.C: exceptions symbols | |
| added (related to feature #1145) | |
| * src/types/pa_vhash.h: fhash-> hash() - a bit slower, but | |
| simplifies inherihance (related to feature #1145) | |
| 2026-09-20 moko | |
| * src/include/pa_config_fixed.h: Windows: librabbitmq TLS support | |
| how-to added (related to feature #1288) | |
| * src/: classes/amqp.C, classes/classes.vcproj, main/pa_globals.C, | |
| types/types.vcproj: precompiled rabbitmq added to win32 | |
| * src/: classes/amqp.C, types/pa_vamqp.h: warnings war (related to | |
| feature #1288) | |
| * src/: classes/amqp.C, include/pa_config_fixed.h: WITHOUT_AMQP_SSL | |
| feature added to avoid dependency on OpenSSL DLLs when TLS is not | |
| required (related to feature #1288) | |
| * src/lib/ltdl/ltdl.vcproj: vs2026 warning war | |
| * src/lib/sdbm/sdbm.vcproj: vs 2026 warning war | |
| * src/: classes/xnode.C, lib/json/pa_json.C: vs 2026 warning war | |
| * src/include/pa_config_includes.h: vs warning war | |
| * src/main/compile.tab.C: vs2026 compilation fixes | |
| * src/: classes/amqp.C, classes/curl.C, classes/inet.C, | |
| include/pa_config_includes.h, main/compile.tab.C: vs2026 | |
| compilation fixes | |
| * src/main/compile.y: vs2026 build fixes | |
| 2026-09-18 moko | |
| * src/main/pa_common.C: strrpbrk used once more | |
| * src/main/pa_dir.C: new code moved to the end | |
| * src/: include/pa_common.h, include/pa_dir.h, main/pa_common.C, | |
| main/pa_dir.C, main/pa_exec.C, main/pa_request.C, | |
| targets/cgi/parser3.C, targets/isapi/parser3isapi.C: strrpbrk, | |
| rsplit for delims, is_os_absolute_path added and used (related to | |
| feature #941) | |
| * src/: classes/amqp.C, include/pa_config_fixed.h: Add AMQP support | |
| for Windows builds (related to feature #1288) | |
| 2026-09-16 moko | |
| * src/classes/amqp.C: Bugfix: leftover unacked messages got stuck | |
| after a listen-mode consume[] (related to feature #1288) | |
| ---------------------------------------------------------------- | |
| 2026-09-15 moko | |
| * src/: classes/amqp.C, classes/math.C, include/pa_int.h, | |
| main/pa_int.C: Temp_amqp_consumer added for exceptions handling, | |
| ulp_distance used and moved to pa_int (related to feature #1288) | |
| * src/classes/amqp.C: headers/arguments now processed in both | |
| directions, no_ack -> ack as default changed (related to feature | |
| #1288) | |
| * src/: classes/amqp.C, types/pa_vamqp.h: error handling and | |
| $.auto_reconnect(N) option implemented (related to feature #1288) | |
| * src/classes/amqp.C: allow both [] and () delivery tag (related to | |
| feature #1288) | |
| * src/classes/amqp.C: _consume - pull and listen more more clearly | |
| separated; both have timeout(N) count(N) options (related to | |
| feature #1288) | |
| 2026-09-07 moko | |
| * tests/: 346-curl.html, 451-curl.html, results/346-curl.processed, | |
| results/451-curl.processed: test for curl and file::load accept a | |
| hash or array as a form field value (related to feature #1296) | |
| * src/: classes/curl.C, main/pa_http.C: curl and file::load accept | |
| a hash or array as a form field value (implements multiple files | |
| per field support, feature #1296) | |
| 2026-07-19 moko | |
| * src/classes/curl.C: win32 compatibility (related to feature | |
| #1295) | |
| * tests/: 450-curl.html, results/450-curl.processed: | |
| $.resolve[^hash::create[]] test added (related to feature #1295) | |
| * tests/results/379-curl.processed: curl test results actualized | |
| after ERRORBUFFER was used | |
| * src/classes/curl.C: check for empty hash added (related to | |
| feature #1295) | |
| * src/lib/curl/curl.h: curl_slist + CURLOPT_RESOLVE added (related | |
| to feature #1295) | |
| * tests/: 450-curl.html, results/450-curl.processed: tests for curl | |
| $.resolve option added (related to feature #1295) | |
| * src/classes/curl.C: curl $.resolve[curl|parser] parser option | |
| added to avoid getaddrinfo() curl thread creation; $.resolve[ | |
| $.[domain.name][ip] or $.[domain.name:port][ip] ] curl option | |
| also added (implements feature #1295) | |
| * src/classes/inet.C: pa_name2ip extracted to be used in curl.C | |
| (related to feature #1295) | |
| 2026-07-14 moko | |
| * src/: classes/curl.C, lib/curl/curl.h: CURLOPT_ERRORBUFFER used | |
| to get more detailed error description (related to feature #1295) | |
| 2026-07-11 moko | 2026-07-11 moko |
| * tests/: 030.html, results/030.processed: cookie $.expires(0) test | * tests/: 030.html, results/030.processed: cookie $.expires(0) test |