Hey, The latest version of Apache::ASP v.18 is up in your local CPAN, or http://www.perl.com/CPAN-local/modules/by-module/Apache/ The biggest deal in this release is cookieless session support, which might become more of an issue for sites with the likes of DoubleClick scaring off users from using cookies. Cookieless session support is tricky business, and you can read on a couple of implementations at: http://www.nodeworks.com/asp/cookies.html http://www.nodeworks.com/asp/config.html#Cookieless%20Sessions and see them in action at: http://www.nodeworks.com/asp/eg/session.asp http://www.nodeworks.com/asp/eg/session_query_parse.asp Below is a list of changes for this module, or if you want a historical look, check out: http://www.nodeworks.com/asp/changes.html Major new config settings include UseStrict, StatScripts, FileUploadMax, FileUploadTemp, SessionQuery*, and StateSerializer which you can view at: http://www.nodeworks.com/asp/config.html ENJOY! -- Joshua _________________________________________________________________ Joshua Chamas Chamas Enterprises Inc. NodeWorks >> free web link monitoring Huntington Beach, CA USA http://www.nodeworks.com 1-714-625-4051 +Documented SessionQuery* & $Server->URL() and cleaned up formatting some, as well as redoing some of the sections ordering for better readability. Document the cookieless session functionality more in a new COOKIES section. Also documented new FileUpload configs and $Request->FileUpload collection. Documented StatScripts. +StatScripts setting which if set to 0 will not reload includes, global.asa, or scripts when changed. +FileUpload filehandles cleanup at garbage collection time so developer does not have to worry about lazy coding and undeffing filehandles used in code. Also set uploaded filehandles to binmode automatically on Win32 platforms, saving the developer yet more typing. +FileUploadTemp setting, default 0, if set will leave a temp file on disk during the request, which may be helpful for processing by other programs, but is also a security risk in that others could potentially read this file while the script is running. The path to the temp file will be available at $Request->{FileUpload}{$form_field}{TempFile}. The regular use of file uploads remains the same with the <$filehandle> to the upload at $Request->{Form}{$form_field}. +FileUploadMax setting, default 0, currently an alias for $CGI::POST_MAX, which determines the max size for a file upload in bytes. +SessionQueryParse only auto parses session-ids into links when a session-id COOKIE is NOT found. This feature is only enabled then when a user has disabled cookies, so the runtime penalty of this feature won't drag down the whole site, since most users will have cookies turned on. -StatINC & StatINCMatch will not undef Fnctl.pm flock functions constants like O_RDWR, because the code references are not well trackable. This would result in sporadic 500 server errors when a changed module was reloaded that imported O_* flock functions from Fnctl. +SessionQueryParse & SessionQueryParseMatch settings that enable auto parsing session ids into URLs for cookieless sessions. Will pick up URLs in <a href>, <area href>, <form action>, <frame src>, <iframe src>, <img src>, <input src>, <link href> $Response->Redirect($URL) and the first URL in script tags like <script>*.location.href=$URL</script> These settings require that buffering be enabled, as Apache::ASP will parse through the buffer to parse the URLs. With SessionQueryParse on, it will just parse non-absolute URLs, but with SessionQueryParseMatch set to some server url regexp, like http://www.mysite.com, will also parse in the session id for URLs that match that. When testing, the performance hit from this parsing a script dropped from 12.5 hits/sec on my WinNT box to 11.7 hits per second for 1K of buffered output. The difference is .007 of my PII300's processing power per second. For 10K of output then, my guess is that this speed of script, would be slowed to 6.8 hits per second. This kind of performance hit would also slow a script running at 40 hits per second on a UNIX box to 31 hits/sec for 1K, and to 11 hits/sec for 10K parsed. Your mileage may vary and you will have to test the difference yourself. Get yourself a valid URL with a session-id in it, and run it through ab, or socrates, with SessionQuery turned on, and then with SessionQueryParse set to see the difference. SessionQuery just enables of session id setting from the query string but will not auto parse urls. -If buffering, Content-Length will again be set. It broke, probably while I was tuning in the past couple versions. +UseStrict setting compiles all scripts including global.asa with "use strict" turned on for catching more coding errors. With this setting enableb, use strict errors die during compilation forcing Apache::ASP to try to recompile the script until successful. -Object use in includes like $Response->Write() no longer error with "use strict" programming. +SessionQuery config setting with $Server->URL($url, { %params } ) alpha API extensions to enable cookieless sessions. +Debugging not longer produces internal debugging by default. Set to -1,-2 for internal debugging for Debug settings 1 & 2. +Both StateSerializer & StateDB can be changed without affecting a live web site, by storing the configurations for $Application & $Session in an internal database, so that if $Session was created with SDBM_File for the StateDB (default), it will keep this StateDB setting until it ends. +StateSerializer config setting. Default Data::Dumper, can also be set to Storable. Controls how data is serialized before writing to $Application & $Session. +Beefed up the make test suite. +Improved the locking, streamlining a bit of the $Application / $Session setup process. Bench is up to 22 from 21 hits / sec on dev NT box. +Cut more fat for faster startup, now on my dev box I get 44 hits per sec Apache::ASP vs 48 Embperl vs 52 CGI via Apache::Registry for the HelloWorld Scripts. -Improved linking for the online site documentation, where a few links before were bad.