Tcl Library Source Code
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2018 Conference, Houston/TX, US, Oct 15-19
Send your abstracts to
or submit via the online form by Aug 20.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

Added a thread spinning stub to the httpd plugin template ::cron::run should now trigger periodic processes Leaf check-in: aafd17983a user: hypnotoad tags: hypnotoad
oauth / oauth <B> Ticket [8fd2561785] Fixed missing escape-quoting of an opening brace in a quote-quoted regexp pattern in a proc. The outer {...} of the proc body governs. Fixed bogus variable name in oauth::QuoteValues. Added an empty test file with a no-op placeholder test. This will catch at least the file not loading properly. Version bumped to 1.0.2 Leaf check-in: aec286d43d user: aku tags: trunk
mime / smtp <EF> Ticket [83d674b2dd] New option -tlsimport to support native TLS for smtp. Updated documentation. Version bumped to 1.5 Leaf check-in: 657782a889 user: aku tags: smtp-tlsimport-tkt-83d674b2dd
json / json <D> Ticket [868b8ebe79] json / json::write <D> Extended the documentation of both packages to refer to the other. No version changes. Regenerated the online documentation. check-in: e2d7b04944 user: aku tags: trunk
mime / smtp <B> Ticket [d9be31a488] Simplify how `smtp::initialize` iterates over -servers and -ports. Updated the documentation. Version bumped to 1.4.6. Thanks to boegge for the report of the problem with the old code. Leaf check-in: 9c0c77acf0 user: aku tags: smtp-init-tkt-d9be31a488
log / log <EF> Ticket [19607f927b] Merged new `logsubst` command to prevent execution of expensive message construction until actually needed. Version bumped to 1.4. Thanks to Harald for idea and implementation. check-in: ea802e332b user: aku tags: trunk
Regenerated web docs. check-in: 2d4eba9c29 user: aku tags: trunk
Tkt [e72cf5e815] - Merged feature branch check-in: f14ecf1992 user: aku tags: trunk
httpd: Fixed a typo (well really an api shift) if the file dispatcher's index page generator. check-in: 3d23a339f7 user: hypnotoad tags: hypnotoad
Updated the windows platform bodge to compile kits with --enable-symbols check-in: aa12283388 user: hypnotoad tags: hypnotoad
HTTPD minor tweaks Adding more debugging to header overrun messages. Update the metaclass for httpd to use the proper methods for html templating. HttpdHeaders now uses the variable LIMIT instead of a hard coded constant check-in: 4bb6b80d44 user: hypnotoad tags: hypnotoad
Fixed leakage of tls_package between tests. Added setup of twapi for twapi tests. Works for me now. Closed-Leaf check-in: e172652ba4 user: aku tags: autoproxy-twapi-support
Merged multi-setup of tests into single clause. Does not fix the failures. check-in: 2309be1887 user: aku tags: autoproxy-twapi-support
http / autoproxy <EF> Ticket [e72cf5e815] Fixes before merge - Tweaked the documentation setup, placed the custom tls notes into the section instead of before it. - Using the in/ni operators means that the package and tests require Tcl 8.5+ Note, still seeing test failures on linux, where tests use twapi commands and are guarded only with have-tls. Still, tests are also described as using tls, so it is likely an issue in the package, not the test itself. This need some more investigation. check-in: e9af4d885f user: aku tags: autoproxy-twapi-support
Removing specific hack from the core implementation check-in: d9110868ee user: hypnotoad tags: hypnotoad
Redesigned the "not found" message inside of the httpd dispatcher to spawn off a reply object to handle the template processing for the error message. Added handling for the special case of a browser communicating with localhost. Modern browsers will not send a cookie for localhost, and in that case the session id is marked as a constant string "localhost" to allow the rest of the security system to operate properly. check-in: 1db0d3ebb8 user: hypnotoad tags: hypnotoad
Added a new method Headers_Process to allow plugins to do their own manipulation of incoming requests prior to dispatch check-in: d8a1dbbf62 user: hypnotoad tags: hypnotoad
Added a plugin architecture to the httpd core, to allow multiple extensions their own chance to claim and service requests from the httpd dispatch engine. Added a private class Log_Dispatch to be shorthand for writing out to the server object's log with all of the pro-forma data that the developer could care about. check-in: 0188cf4306 user: hypnotoad tags: hypnotoad
For twapi TLS, connection does not block until negotiation complete so check for that before updating tls_status element in state array. Note that this element is undocumented anyway. check-in: 56704965b8 user: apnadkarni tags: autoproxy-twapi-support
Updated version info in pkgConfig.tcl and Ticket for this branch: [e72cf5e815] check-in: 0c15f14f78 user: oehhar tags: autoproxy-twapi-support
Added support for twapi::tls_socket as an alternative to the TLS extension Updated documentation accordingly for the -tls_package option. Added simple tests for autoproxy::tls_socket check-in: 7ba53ac6e9 user: apnadkarni tags: autoproxy-twapi-support
Create new branch named "autoproxy-twapi-support" check-in: c732c4cffa user: apnadkarni tags: autoproxy-twapi-support
Added rudimentary support for html templating (To be overridden by mixins later, of course) check-in: f49e8110c9 user: hypnotoad tags: hypnotoad
httpd: Maintainability and debugging tweaks based on experience developing toadhttpd check-in: a338f3ab7e user: hypnotoad tags: hypnotoad
Modifications to httpd: Removing shims added to support toadhttpd's cacheing mechanism. Fixed some logging cases. check-in: db5fbcec3c user: hypnotoad tags: hypnotoad
Modifications to httpd to support toadhttpd. Sessionid (if given) is now passed to logging. The format of the information sent to logging now conforms to the information available from the http_info method. check-in: bfb33bfa4c user: hypnotoad tags: hypnotoad
httpd improvments for toadhttpd. Added a catch around 408 error handling. Added an optional configuration file which is sourced internally by the object on startup. Moved coroutines and httpd reply objects to dedicated global namespaces. check-in: 76a705a2ec user: hypnotoad tags: hypnotoad
Removing the tool-ui and tool::datatype modules. They are a bit of a niche effort, better suited to taolib check-in: 420323e576 user: hypnotoad tags: hypnotoad
Fixed the unicode escaper check-in: 0e3839c9b6 user: hypnotoad tags: hypnotoad
Typo fix check-in: 7e96757fb8 user: hypnotoad tags: hypnotoad
Enhanced the html::html_entities command with a means for character by character escaping arbitrary unicode that doesn't have a canonical html code. check-in: 08eeb5ca21 user: hypnotoad tags: hypnotoad
Fixed a bug in the httpd module FormData method. Added a facility to sak style tools/subprojects to install individual modules to a specified location check-in: 05e97ce4b4 user: hypnotoad tags: hypnotoad
Updated practcl's VFS package indexer to understand not to try to index meta-source code in tcllib and tcllib-a-like libraries. check-in: 8cd2ebf514 user: hypnotoad tags: hypnotoad
Repair the example - replacing the square brackets by [lb] and [rb] to prevent evaluation check-in: ec7b5576d0 user: arjenmarkus tags: trunk
Restructuring tool style modules to place their source code in a path that the sak installer will ignore on install check-in: 4bef92af87 user: hypnotoad tags: hypnotoad
More improvements to httpd based on field testing. Refactored error handling. Introduced a MIME header size limit (currently hardcoded at 8192). Logs now record the UUID of the http reply as the primary index. File transfers and channel copies now consistently terminated the responding coroutine and schedule and event to close the channels and destroy the reply object. For testing added a simplified reply template check-in: 9291c03a44 user: hypnotoad tags: hypnotoad
Removing the tool_db module, formalizing development in taolib check-in: 9c923546c5 user: hypnotoad tags: hypnotoad
Modification to keep practcl from indexing the src folders of tool modules check-in: ff7e8c2af2 user: hypnotoad tags: hypnotoad
Adding files missing from httpd. Adding a new module: tool::db check-in: 5c03450590 user: hypnotoad tags: hypnotoad
Updating proxy coroutines for httpd check-in: 9dc811f430 user: hypnotoad tags: hypnotoad
Added a new method to servers "DocDefault" so that derivative implementations can replace their own "no virtual host/dynamic url" match behavior with their own (and not have to swap out the entire dispatch method.) Removed comments and debugging entries in the log check-in: 4cdb83224e user: hypnotoad tags: hypnotoad
Httpd improvements All httpd replies are now given a guuid, and an object and coroutine name in the global namespace. Simplified error handling and detangled a web of try { ... } that was confounding error reporting. Added an "html" ensemble to server an reply object which take care of generating pro-forma blocks of Html code, as well as provide shims for sitewide templating. Reply dispatch methods no longer attempt their own error handling. Going all-in with having coroutines monitor the entire lifecycle of a request check-in: c322bd4d9e user: hypnotoad tags: hypnotoad
Replaced the array error_codes with a method call Added a new method "wait" which will do the write event wrappers around "chan event" to ensure the event fires off, and the script clears Eliminated the "output" method from reply Added handling for 3xx style redirects Added hooks for servers to cache results. They are blank for the tcllib implementation. Added the concept of TTL (time to live) as a property that can be populated for URLS to indicate caches both internal to the webserver and proxies along the way to the client how fresh a page needs to be. Corrected several HTTP codes that were copied from tclhttpd, but were in fact wrong. Added sizes to every call to chan copy Reimplemented proxies, SCGI, and CGI. They now follow a common template. SCGI and CGI are both forms of proxy. Added the ability to turn on or off debuggining in the test script. check-in: dcab6eb2d2 user: hypnotoad tags: hypnotoad
For bulk transfers, switching from having the coroutine poll to having the chan copy wake the object back up. The polling coroutine is locking up under field conditions on check-in: e6cd91662e user: hypnotoad tags: hypnotoad
Reworked content.scgi to be the same sort of "never leave dispatch" style of responder as content.proxy. Removed some misplaced error handling in scgi and proxy. For now in really exotic errors they just log and clean up instead of trying to report an error across a socket that may no longer exist check-in: 33ced87845 user: hypnotoad tags: hypnotoad
Cleaning up logging and error reporting check-in: 10dce1fd67 user: hypnotoad tags: hypnotoad
Tweaks to ensure socket events are cleared on error check-in: fa4332082b user: hypnotoad tags: hypnotoad
Modifications to httpd. Renamed the "add_uri" to uri::add. Uri is a new method ensemble. Added uri::patterns to output a chain of search patterns for urls. Uri patterns can now include a hostname Added logic to detect all patterns that web clients may be requesting an index. check-in: 349c14ea42 user: hypnotoad tags: hypnotoad
Modifications to httpd and httpd example. Fleshed out how to stream content from proxies. Reimplemented the fossil hosting example to use the "fossil http" command instead of running a persistant server. Fixed several points in the code where we were leaving the coroutine and firing off random method calls in the event loop. Now, wherever practical, events wake the coroutine back up. This helps ensure we follow proper order of operations. Added a replaceable "debug" method for server processes. The default is an empty call, but developers can inject puts statements or log entries to nap stack traces of errors. Added tests for proxied content check-in: 0ee04291d4 user: hypnotoad tags: hypnotoad
Added a preliminary CGI implementation to the httpd module. More testing to follow check-in: eb759a27ea user: hypnotoad tags: hypnotoad