yoy.be "Why-o-Why"
xxm v1.2.5.450
2018-05-03 22:43
xxm450
[permalink]
For a while I thought there's not enough there to have a full release, but with the switch from XML to JSON, and NTLM and WebSocket support in xxmHttp and xxmHSys2, plus all the minor changes and tweaks that improve performance and security, it turns out to be quite a formidable release. Regretfully, by finally deciding to have all string arguments const
anyway, any project's xxmp.pas will have to change. A long time I was hesitant about this because I feared binary incompatibilities, but I've tested all permutations between caller/called with/without const
, and it all works. Except when building old code with the new xxm.pas will serve you with this minor one-time inconvenience of having to add const
yourself to the arguments... I've thought about trying to create something automatic — like the XML to JSON converters — but since you're quite free to modify xxmp.pas
to your liking, it may be more complex than it seems. (If you would like to see this anyway, let me know and I'll put some time into that.)
It's advised to do an extensive test-run with this new version before you update the live environment. If anything unexpected turns up, let me know!
→ xxm v1.2.5.450 (→gh) (→sf)
- project registry "xxm.json" (auto-conversion of "xxm.xml")
- project file "Web.xxmp" JSON (auto-conversion from XML)
### ATTENTION ### ATTENTION ### ATTENTION ###
xxmProject and xxm handlers are fitted with a transitional
automatic conversion procedure that will convert XML project files (Web.xxmp)
and the project registry (xxm.xml) into JSON files. (Web.xxmp in place,
storing a Web_xxmp.bak copy; xxm.json)
This may cause incompatibilities if different xxm versions are required to
coexist on the same installation(s).
This procedure (and all code using XML) is scheduled to be removed at a
later, currently undetermined, version.
- fixed issue with custom parserValues spilling into next file processed
- IXxm* interfaces: all string arguments now with 'const'
### ATTENTION ### ATTENTION ### ATTENTION ###
This may cause errors on generated xxmp.pas:
xxmp.pas() Error: Declaration of 'LoadPage' differs from previous declaration
xxmp.pas() Error: Declaration of 'LoadFragment' differs from previous declaration
Please update both methods by adding 'const' to the arguments with a string type.
- xxmIsapi*: Redirect: set 'Cache-control' to 'nocache' unless it was set already
- xxmHttpAU: added manifest to avoid default UAC elevation request
- xxmHttp,xxmHSys: Transfer-Encoding chunked (set Context.BufferSize to something >0 !!!)
- xxmHttp,xxmHSys: NTLM authentication (using SSPI, add "ntlm":true to the project in xxm.json)
- xxmHSys2: WebSocket support (see demo's: 13 WebSockets)
- DispositionAttach: replace unacceptable characters (\/:*?"<>|) with '_'
- SendFile, SendStream before header sent, will by default have ContentType
application/octet-stream instead of text/html, unless already set before
(with Context.ContentType!)