The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 4.29_1

  • Special Thanks to Ron Savage who did the bulk of the work to put this release together.
  • FIX: Patch CGI::Session to fix RT#29138 (Patch by Barry Friedman)
  • NEW: Add a note to CGI::Session's POD referring to utf8 problems, and include references to RT#21981 (Reported by erwan) and RT#28516 (Reported by jasoncrowther)
  • NEW: Add t/bug21981.t to help make uses aware that "use encoding 'utf8';" in a program, or "$dbh->do(qq|set names 'utf8'|);", when also using CGI::Session, can lead to error messages such as (respectively):
    • Can't locate object method "renewed" via package "Encode::utf8" or
    • Can't locate object method "errstr" via package "CGI::Session::Serialize::storable" (Patch by Ron Savage)
  • FIX: Patch CGI::Session::Driver::DBI.pm to fix RT#24601 (Patch by latypoff)
  • FIX: Patch CGI::Session::Driver::DBI.pm to fix RT#24355 (Reported by fenlisesi, patch by Ron Savage)
    • NEW: Add t/bug24285.t to ensure session data files are created properly when the user specifies a directory other than /tmp (Reported by William Pearson RT#24285, patch by Ron Savage)
  • FIX: Patch t/ip_matches.t and t/bug21592.t to remove test files left in /tmp, to fix RT#29969 (Reported by ANDK, patch by Ron Savage)
  • FIX: Patch POD for CGI::Session::Driver::file to clarify how to use the option to change the file name pattern used to created session files (Report by appleaday RT#33635, patch by Ron Savage)
  • FIX: Patch CGI::Session::Driver::sqlite to add sub DESTROY to fix RT#32932 (Patch by Alexander Batyrshin, corrected by Ron Savage)
  • FIX: Remove CGI::Session::Seralize::json and t/g4_dbfile_json.t until such time as this code can be made to work reliably. Both JSON::Syck and JSON::XS have been tried, and in both cases t/g4_dbfile_json.t dies horribly (but differently). Patch POD for CGI::Session to remove references to JSON. RT#25325 (Reported by bkw, patch by Ron Savage)
  • NEW: Patch CGI::Session's POD and load() to allow the session/cookie name default of CGISESSID to be overridden. (Patch by Lee Carmichael RT#33437, reformatted by Ron Savage). Lee has also patched t/name.t to test the new functionality
  • NEW: Split CGI::Session::Serialize::yaml out into its own distro. Get it hot from CPAN!
  • NEW: Add Build.PL for Module::Build users
  • NEW: Support specification of both the id column name and the a_session column name in the sessions table, by extending the options acceptable in CGI::Session->new(..,..,{here}). Allow: {TableName => 'session', IdColName => 'my_id', DataColName => 'my_data'}. Default: {TableName => 'sessions', IdColName => 'id', DataColName => 'a_session'}. Allow any 1, 2 or 3 of these options. Missing keys default as specified. (Patch by Chris RT#2224. Implemented differently by Ron Savage). Supported drivers: o MySQL (native to CGI::Session) o ODBC (separate distro, CGI::Session::Driver::odbc V 1.01) o Oracle (separate distro, CGI::Session::Driver::oracle V 1.01) o Postgres (native) o SQLite (native)

Changes for version 4.20_1

  • FIX: -ip_match now works even when it's not the last import item. (RT#21779)
  • FIX: In the PostgreSQL driver, a race condition is when storing is now worked around. (Mark Stosberg)
  • FIX: Added important clarification and example to MySQL driver docs that the session column needs to be defined as a primary key to avoid duplicate sessions. (Justin Simoni, Mark Stosberg)
  • FIX: The default serializer now works correctly with certain data structures. (RT#?) (Matt LeBlanc)
  • FIX: A documentation bug in find() was fixed (Matt LeBlanc)
  • FIX: Documented how to declare a database handle to be used on demand, which was introduced in 4.04. (Mark Stosberg)
  • FIX: Connections made with SQLite now disconnect only when appropriate, instead of always. This addresses a symptom seen as "attempt to prepare on inactive database handle" (Jaldhar Vyas, Sherzod, Mark Stosberg)
  • FIX: Args to the constructor for CGI::Session and the drivers are now always shallow copied rather than used directly, to prevent modification. (RT#21952, Franck Porcher, Sherzod, Mark Stosberg)
  • FIX: The documentation for expire($param, $time) was made more explicit (pjf, Mark Stosberg)
  • NEW: Added recommended use of flush() to the Synopsis (Michael Renner, RT#22333)
  • NEW: Added links to Japanese translations of the documentation (Makio Tsukamoto) http://digit.que.ne.jp/work/index.cgi?Perldoc/ja
  • INTERNAL: Update test to workaround YAML versions less than 0.58. (Matt LeBlanc)
  • INTERNAL: param() code was refactored for clarity (Mark Stosberg, Ali ISIK, RT#21782)
  • INTERNAL: new() and load() were refactored (Ali Isik)
  • INTERNAL: renamed some environment variables used for testing (Ron Savage)
  • INTERNAL: Multi key-value syntax of param() now always returns number of keys successfully processed, 0 if no key/values were processed.

Modules

persistent session data in CGI applications
CGI::Session driver specifications
Base class for native DBI-related CGI::Session drivers
CGI::Session driver for BerkeleyDB using DB_File
Default CGI::Session driver
CGI::Session driver for MySQL database
PostgreSQL driver for CGI::Session
CGI::Session driver for SQLite
error handling routines for CGI::Session
CGI::Session ID driver
default CGI::Session ID generator
CGI::Session ID Driver for generating static IDs
Default CGI::Session serializer
serializer for CGI::Session
Serializer for CGI::Session
Extended CGI::Session manual

Provides

in lib/CGI/Session/Test/Default.pm
in lib/CGI/Session/Test/Default.pm
in lib/CGI/Session/Test/Default.pm