Apache-ASP

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

             PerlSetVar (aaa|bbb):\w+ 

           should now work.  Thanks for bug report from David Kulp.

         + Added an early srand() for better $ServerID creation

         + Work around for DSO problems where $r is not always correctly 
           defined in Apache::ASP::handler().  Thanks to Tom Lear for patch.

    $VERSION = 2.31; $DATE="01/22/2002";
         + $Server->MapInclude() API extension created to wrap up Apache::ASP::SearchDirs 
           functionality so one may do an conditional check for an include existence befor 
           executing $Response->Include().  Added API test to server.t

         + $Server->Transfer() now allows arguments like $Response->Include(), and now acts just
           as a wrapper for:

             $Response->Include($file, @args);
             $Response->End();

           added test case at t/server_transfer.t

         + Removed dependency of StatINC functionality on Apache::Symbol.  Apache::Symbol 
           is no longer required.  Added test of t/stat_inc.t for correct StatINC initialization
           for platforms where Devel::Symdump is present.

         + Better error message when $Request->Params has not been defined with RequestParams
           config & it gets used in script.  Added test case as t/request_params_none.t

         + Directories cannot now be included as scripts via $Response->Include(), added
           test case to t/include.t

         - No longer make $Response->Flush dependent on $Response->IsClientConnected() to 
           be true to write output to client.  There have been spurious errors reported
           about the new ( >= 2.25 ) IsClientConnected code, and this will limit the impact 
           of that functionality possibly not working still to those users explicitly using 
           that API.

         + $Response->AddHeader($header_name, $value) now will set $Response members
           for these headers: Content-Type, Cache-Control, Expires.  This is to avoid
           both the application & Apache::ASP sending out duplicate headers.  Added
           test cases for this to t/response.t

         + split up Bundle::Apache::ASP into that, and Bundle::Apache::ASP::Extra
           the former with just the required modules to run, and the latter 
           for extra functionality in Apache::ASP

         + new $Request->{Method} member to return $r->method of GET or POST that 
           client browser is requesting, added t/request.t sub test to cover this member.

    $VERSION = 2.29; $DATE="11/19/2001";
         +Added some extra help text to the ./cgi/asp --help message
          to clarify how to pass arguments to a script from the command line.

         +When using $Server->Mail() API, if Content-Type header is set,
          and MIME-Version is not, then a "MIME-Version: 1.0" header will be sent
          for the email.  This is correct according to RFC 1521 which specifies
          for the first time the Content-Type: header for email documents.
          Thanks to Philip Mak for pointing out this correct behavior.

         +Made dependent on MLDBM::Sync version .25 to pass the taint_check.t test

         +Improved server_mail.t test to work with mail servers were relaying is denied

         +Added <html><body> tags to MailErrorsTo email

         --Fixed SessionCount / Session_OnEnd bug, where these things were not
          working for $Sessions that never had anything written to them.
          This bug was introduced in 2.23/2.25 release.

          There was an optimization in 2.23/2.25 where a $Session that was never
          used does not write its state lock file & dbm files to disk, only if
          it gets written too like $Session->{MARK}++.  Tracking of these NULL $Sessions 
          then is handled solely in the internal database.  For $Session garbage 
          collection though which would fire Session_OnEnd events and update 
          SessionCount, the Apache::ASP::State->GroupMembers() function was just 
          looking for state files on disk ... now it looks in the internal database 
          too for SessionID records for garbage collection.

          Added a test at ./t/session_events.t for these things.

         +Some optimizations for $Session API use.

         +Added support for XSLT via XML::LibXSLT, patch courtesy of Michael Buschauer

         -Got rid of an warning when recompiling changing includes under perl 5.6.1...
          undef($code) method did not work for this perl version, rather undef(&$code) does.
          Stopped using using Apache::Symbol for this when available.

         -Make Apache::ASP script run under perl taint checking -T for perl 5.6.1...
          $code =~ tr///; does not work to untaint here, so much use the slower:
          $code =~ /^(.*)$/s; $code = $1; method to untaint.

         -Check for inline includes changing, included in a dynamic included
          loaded at runtime via $Response->Include().  Added test case for
          this at t/include_change.t.  If an inline include of a dynamic include
          changes, the dynamic include should get recompiled now.

         -Make OK to use again with PerlTaintCheck On, with MLDBM::Sync 2.25.
          Fixed in ASP.pm, t/global.asa, and created new t/taint_check.t test script

         +Load more modules when Apache::ASP is loaded so parent will share more
          with children httpd: 
           Apache::Symbol 
           Devel::Symdump 
           Config 
           lib 
           MLDBM::Sync::SDBM_File

         +When FileUploadMax bytes is exceeded for a file upload, there will not
          be an odd error anymore resulting from $CGI::POST_MAX being triggered,
          instead the file upload input will simply be ignored via $CGI::DISABLE_UPLOADS.
          This gives the developer the opportunity to tell the user the the file upload
          was too big, as demonstrated by the ./site/eg/file_upload.asp example.

          To not let the web client POST a lot of data to your scripts as a form
          of a denial of service attack use the apache config LimitRequestBody for the 
          max limits.  You can think of PerlSetVar FileUploadMax as a soft limit, and 
          apache's LimitRequestBody as a hard limit.

         --Under certain circumstances with file upload, it seems that IsClientConnected() 
          would return an aborted client value from $r->connection->aborted, so
          the buffer output data would not be flushed to the client, and 
          the HTML page would return to the browser empty.  This would be under
          normal file upload use.  One work-around was to make sure to initialize
          the $Request object before $Response->IsClientConnected is called,
          then $r->connection->aborted returns the right value.
  
          This problem was probably introduced with IsClientConnected() code changes
          starting in the 2.25 release.

    $VERSION = 2.27; $DATE="10/31/2001";
         + Wrapped call to $r->connection->fileno in eval {} so to 
           preserve backwards compatibility with older mod_perl versions
           that do not have this method defined.  Thanks to Helmut Zeilinger
           for catching this.

         + removed ./dev directory from distribution, useless clutter

         + Removed dependency on HTTP::Date by taking code into
           Apache::ASP as Apache::ASP::Date.  This relieves
           the dependency of Apache::ASP on libwww LWP libraries.
           If you were using HTTP::Date functions before without loading
           "use HTTP::Date;" on your own, you will have to do this now.

         + Streamlined code execution.  Especially worked on 
           $Response->IsClientConnected which gets called during
           a normal request execution, and got rid of IO::Select
           dependency. Some function style calls instead of OO style 
           calls where private functions were being invokes that one 
           would not need to override.

         - Fixed possible bug when flushing a data buffer where there
           is just a '0' in it.

         + Updated docs to note that StateCache config was deprecated
           as of 2.23.  Removed remaining code that referenced the config.

         + Removed references to unused OrderCollections code.

README  view on Meta::CPAN

          couple versions.

         +UseStrict setting compiles all scripts including
          global.asa with "use strict" turned on for catching
          more coding errors.  With this setting enabled,
          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.

    $VERSION = 0.17; $DATE="11/15/99";
         ++20%+ faster startup script execution, as measured by the 
          HelloWorld bench.  I cut a lot of the fat out of 
          the code, and is now at least 20% faster on startup 
          both with and without state.

          On my dev (NT, apache 1.3.6+mod_perl) machine, I now get:

                42 hits per sec on Apache::ASP HelloWorld bench
                46 hits per sec on Embperl (1.2b10) and
                51 hits per sec for CGI Apache::Registry scripts  

          Before Apache::ASP was clocking some 31 hits per sec.
          Apache::ASP also went from 75 to 102 hits per second 
          on Solaris.

         +PerlTaintCheck On friendly.  This is mod_perl's way 
          of providing -T taint checking.  When Apache::ASP
          is used with state objects like $Session or $Application,
          MLDBM must also be made taint friendly with:

            $MLDBM::RemoveTaint = 1;

          which could be put in the global.asa.  Documented.

         +Added $Response->ErrorDocument($error_code, $uri_or_string) 
          API extension which allows for setting of Apache's error
          document at runtime.  This is really just a wrapper 
          for Apache->custom_response() renamed so it syncs with
          the Apache ErrorDocument config setting.  Updated
          documentation, and added error_document.htm example.

         =OrderCollections setting was added, but then REMOVED
          because it was not going to be used.  It bound 
          $Request->* collections/hashes to Tie::IxHash, so that data
          in those collections would be read in the order the 
          browser sent it, when eaching through or with keys.

         -global.asa will be reloaded when changed.  This broke
          when I optimized the modification times with (stat($file))[9]
          rather than "use File::stat; stat($file)->mtime"

         -Make Apache::ASP->Loader() PerlRestartHandler safe,
          had some unstrict code that was doing the wrong thing.

         -IncludesDir config now works with DynamicIncludes.

         +DebugBufferLength feature added, giving control to 
          how much buffered output gets shown when debugging errors.

         ++Tuning of $Response->Write(), which processes all
          static html internally, to be almost 50% faster for
          its typical use, when BufferingOn is enabled, and 
          CgiHeaders are disabled, both being defaults.

          This can show significant speed improvements for tight
          loops that render ASP output.

         +Auto linking of ./site/eg/ text to example scripts
          at web site.

         +$Application->GetSession($session_id) API extension, useful
          for managing active user sessions when storing session ids
          in $Application.  Documented.

         -disable use of flock() on Win95/98 where it is unimplemented

         -@array context of $Request->Form('name') returns
          undef when value for 'name' is undefined.  Put extra
          logic in there to make sure this happens.

    $VERSION = 0.16; $DATE="09/22/99";
         -$Response->{Buffer} and PerlSetVar BufferingOn
          configs now work when set to 0, to unbuffer output,
          and send it out to the web client as the script generates it.

          Buffering is enabled by default, as it is faster, and
          allows a script to error cleanly in the middle of execution.  

         +more bullet proof loading of Apache::Symbol, changed the 



( run in 1.836 second using v1.01-cache-2.11-cpan-39bf76dae61 )