=pod
=head1 1.3.6 (RELEASE) 22. Jan 2003
- Fixed unicode problems in make test with Perl 5.8.0. With
support from Robert.
- Fixed warning about missing CLOSE method with Perl 5.8.0
Reported by Rajesh Kumar Mallah.
=head1 1.3.5 (RELEASE) 23. Dec 2002
- Runs now with Perl 5.8.0. Thanks to Angus Lees who
backported the 5.8.0 patches from 2.0.
- Fixed Path search problem. Reported by Gavin Carr.
=head1 1.3.4 (RELEASE) 5. Dec 2001
- Added method $r -> Espace for html & url escaping
- URL escpage # to %23
- use Content-Length HTTP Header instead of $ENV{CONTENT_LENGTH}
when running under mod_perl and win32. This fixes a bug
with POSTed data reported by Lukas Zapletal.
- Display correct Apache module name in Makefile.PL when
requesting path for Apache module. Patch from James Lee.
- New session handling using Apache::SessionX. (This also
fixes problem with MD5 and Perl 5.6.1)
- Fixed a bug that cause file-uploads to fail for the first
request to a file when running under EmbperlObject. Reported
by Thoren Johne.
- Added possibilities to add the session id as argument to any URL,
instead of using cookies.
- Added new hash %sdat which holds temporary sessins data.
- Added options optAddUserSessionToLinks, optAddStatusSessionToLinks
and optNoSessionCookies to control how the session id is passed.
- Make sure the HTML::Embperl::Mail generates correct line endings
- If Perl's STDOUT and/or STDIN are tied to any package, Embperl now
calls the Perl methods PRINT and READ for doing I/O. This currently
only works when not running under mod_perl.
- Embperl can now run under FastCGI. Use embpfastcgi.pl instead of
embpcgi.pl.
- Delete unnecessary PerlFixupHandler from httpd.conf.src for make test.
Reported by David Merberg.
- Add undef to %idat for select tag with nothing selected if
optAllFormdata is set.
- Cleanup of DBIx::Recordset objects now honors the setting in %CLEANUP.
Problem reported by Kee Hinckley.
- Embperl can now use encrypted sourcefiles. See crypto/README for
details.
- Embperl can now be installed as Apache and non Apache version on the
same system. This is neccessary to work on Windows in- and outside of
Apache.
- Fixed a linkage problem with symbol embperl_module, first reported
by GustavKristoffer Ek.
- error message now always contain a filename.
- Added optShowBacktrace to enable backtrace of filename in error messages
- Removed obsolete debug flags dbgDisableCache, dbgWatchScalar,
dbgEarlyHttpHeader
- Fixed problem with changing to page directory on win32. Reported by
Hans de Groot.
- Fixed problems with mod_perl environement handling with ActiveState Perl
on win32.
=head1 1.3.3 (RELEASE) 6. Juni 2001
- fixes problem with cleanup and Perl 5.6.0+ which broke
session management. Spotted by Lukas Zapletal and Andy Lim.
- Improved Makefile.PL to catche more setup situation on
Win 32.
- Make $r -> Error settable to be able to reset Embperl's
internal error flag.
- workaround for $r -> chdir_file not working correctly inside
of Apache::Registry with ActiveState Perl, which caused
make test to fail.
- fixed SIGSEGVs that could occur on rare situations when
multiple file not found errors are reported.
- fixed problem with wrong setup of Content-Length header
when running in CGI mode, with escmode = 0. Spotted by
Edwin Ramirez.
- fixed problem with nested dynamic tables and Execute.
- added correct errror message for rcNotCompiledForModPerl.
Spotted by Scott Chapman.
=head1 1.3.2 (RELEASE) 16 May. 2001
- Emulate the syntax => Text parameter of Embperl 2.0, which allows
to include pure text files any without interpretation. Requested
by Kee Hinckley.
- Fixed problem with corrupted @ISA, that had occured when a page was
first requested without EmbperlObject and then with EmbperlObject.
- Catch exceptions inside of Embperl.pm and correctly cleanup the
request. This avoids problems in further request in case anything
was really going wrong.
- If the base template in an EmbperlObject request is requested
directly the Execute ('*') does nothing, to avoid
endless recursion.
- Fixed bug in SetSessionCookie which had called undefined method
getinitalid. Spotted by Sun Choi.
- Removed wrong expire setting from SetSessionCookie, spotted
by Michael Stevens.
- Additions to IntroEmbperlObject.pod by Neil Gunton.
- ';' is now accepcted as separator for query strings addtionaly
to the '&' character. Patch from Brent A. Ellingson.
- ';' is now escaped to %3B when outputed inside a URL.
- Embperl is now added to the Serversoftware identification when
preloaded under mod_perl.
- adapted make test to Perl 5.6.1 and 5.7.1 so now it passes sucessfully.
- fixed problem with cleanup in threaded Perl 5.6.1 and higher
- added pod documentation to embperl.pl. Patch from Angus Lees.
- %http_headers_out can take now array refs as elements to set multiple
headers of the same value. Patch from Maxwell Krohn.
- Non module-documenations (like Intro.pod Faq.pod etc) now gets copied under
the correct directory and man pages are generated with the correct name
(e.g. perldoc HTML::Embperl::Intro works now after installation). Based
on an idea from Angus Lees.
- Makefile.PL enhancements for Apache/ActiveState binary distribution
- quote pathnames in Makefile to allow directories like "Program Files".
Spotted by Lukas Zapletal.
- Added epocgi.pl which allow use of EmbperlObject as CGI script.
- Added a dTHR to function CmdVar to make Embperl compile with threaded
Perl 5.005. Patch from Michael George III.
- EMBPERL_SESSION_ARGS can now accept pathes with spaces inside by quoteing
an argument e.g. PerlSetEnv EMBPERL_SESSION_ARGS "'Directory=/Session Files/'".
Spotted by Lukas Zapletal.
- Perl search path (@INC) in make test is set to abosulte paths to be independend
of directory changes that Apache might issue. Spotted by Randy Korbes.
=head1 1.3.1 (RELEASE) 13 Feb. 2001
- Added new Introduction to EmbperlObject written by
Neil Gunton. See perldoc IntroEmbperlObject
- Added new Tips and Tricks pod written by
Neil Gunton. See perldoc TipsAndTricks. Anybody is invited
to send me their own Tips and Tricks!
- Added object and isa parameters to Execute, which allows to get an
object reference for a certain file and set the Perl inherence
hierachive. Ideas from Neil Gunton and Angus Lees.
- Corrected a problem that leads to very strange errors when an
Embperl sub is called from an in memory source (that is passed
via the Execute input parameter). Spotted by Neil Gunton.
- Make EmbperlObject work better with relative paths and drive letters
on Windows. Based on a patch from Freddy Vulto.
- Fixed a problem with the cache key, which could cause that the same
file is compiled within different packages.
- Fixed a problem that Embperl are in a wired state after an file upload
has been interrupted. Spotted by Dirk Lutzebaeck.
- Fixed a problem set @ISA is not correctly setup in case a file is
compiled in the same package as the base file of EmbperlObject.
Spotted by Neil Gunton.
- Fixed problem with including ../foo.html in EmbperlObject. Spotted
by Neil Gunton.
- Added warning if @ISA is not correctly setup/corrupted.
- Fixed a SIGSEGV that occurs when an reference to undef is returned
from a [+ +] inside a URL.
- Added warning to Makefile.PL, if File::Spec 0.82 isn't installed, which is
required by EmbperlObject.
- Fixed "use of undefined value" warning in make test
=head1 1.3.0 (RELEASE) 4 Dec. 2000
- Corrected a wrong test, that let make test fail. Spotted by Eddie Lau.
- Added a Line Feed at the end of epnames.h, which has caused some problems
with on old SunOS compiler. Spotted by Roman Maeder.
- Fixed a problem that Perl generated an error when $req_rec and [$ var $] was
used. Spotted by Michael Stevens.
=head1 1.3b7 (BETA) 15. Nov 2000
- Fixed problem that the call to close triggers error in Session.pm when using
Store::File. Spotted by Alvar Freude.
- Fixed problem that GetSession doesn't return a value for new session.
Spotted by Angus Lees.
- Added new function SetSessionCookie, which can be used to set the session cookie
header in case you use Embperl session management, but don't use a
Embperl page in that request. Suggested by Alex Schmelkin.
- Fixed problem that DeleteSession does not work outside the base template, when
used with EmbperlObject. Spotted by Angus Lees.
- Fixed problem when use multiple nested ../foo.htm inside EmbperlObject.
Spotted by Neil Gunton.
- Included patch from Angus Lees to ease building on debian.
- make test now works again with BEN-SSL httpsd. With help from Neil Gunton.
- Included grammaticaly updated Embperl.pod. Many thanks to Ilia Lobsanov
for doing the proof reading.
- removed dbgDisableCache to avoid problems with this "feature" that isn't working
anymore for a long time.
- Added validaten for session cookie. If Apache::Session 1.53+ is installed
it uses the validate method from Apache::Session::Generate::xxx. If a invalid
session id is found a new one is generated. Spotted by Angus Lees.
- If a not existing session id is received, Embperl generates now a new one.
- Enhancements of Cookie resending logic. To make sure cookies are send when
neccessary, but not more often. (Handles now write to session data, after
a delete in the same request correctly).
- Added more tests for Sessionhandling.
- Fixed a bug that Content-Lenght was 2 to much, when escmode was set to zero.
Spotted by Michael Smith.
- Added patches from Randy Korbes for ActiveState Support. Most tests with
Embperl under mod_perl nows passes. The few remaining ones that doesn't pass
seems to be due to problems of mod_perl's enironment handling.
- Droped support for Apache::Session 0.17. Embperl now support only
Apache::Session 1.00 and higher.
- Added new option: optDisableSelectScan, to allow processing of SELECT tags,
while processing of TABLE tags is disabled. Suggested by Robert.
- Carridge Returns are only removed for Perl 5.004. This makes using of
HERE documents possible on Perl 5.005+, even if the documents has CRLF
as lineendings.
=head1 1.3b6 (BETA) 18. Oct 2000
- Embperl now runs on ActiveState Perl. (At least in offline mode,
mod_perl mode seems to still have some problems). With a lot of help
from Randy Korbes.
- Changed EmbperlObject search order:
* If EMBPERL_OBJECT_STOPDIR is set, this directory is taken as
the last directory in the normal search path, instead of the
directory where the base template (EMBPERL_OBJECT_BASE) is found.
* EMBPERL_OBJECT_ADDPATH is _always_ added to the search path
* Now Embperl also searches the path for files like
../foo.html, or bar/foo.html, which includes a relative path.
- ../* is now a shortcut for the requested file, but in the
parent directory (or upper depending on the search path)
- Added access to Embperl session handling for modules and
calling scripts (see SetupSession and GetSession)
- Embperl is now able to output binary data if EMBPERL_ESCMODE
and/or $escmode is zero. This also include that no CRLF is
added at the end of the file, if escmode is zero.
- Added method for deleting session data and cookie
- Added method for triggering resend of session cookie.
- Added Test for pnotes ('EMBPERL_ERRORS')
- Added hash %CLEANUPFILE. All variables defined into the files given
in this hash, are also cleanup at the end of the request.
Patch from Todd Eigenschink.
- Changed the way the C Requestobject is attached to the Perlobject,
so it should now also work on 64Bit Processor like Alpha.
Spotted by Andre Landwehr.
- Fixed a problem with importing files that contains foreach and
do until loops, which may caused a syntax error or endless
loop. Spotted by Steffen Geschke.
- embpcgi* and embpexec* are now geratated out of *.templ instead
of editied in place to avoid problems with cvs conflicts
and lower/uppercase on Win32. Suggest by Jens-Uwe Mager.
- make test works with Apache that has mod_jserv compiled in
- Embperl now cache same files with relative path, which are located
in different directories correctly.
=head1 1.3b5 (BETA) 20. Aug 2000
- Embperl now supports Apache::Session 1.52. See "Session handling"
in the docs, how the setup has changed.
- Fixed a problem with POSTed data, which had got lost for the first,
request when using EmbperlObject handler. Spotted by
Kaare Rasmussen.
- Fixed a typo in HTML::Embperl::Mail, spotted by Robert.
- changed require to use HTML::Embperl in EmbperlObject to avoid problems
with dynamic loading. Spotted by Robert.
- Embperl takes the cookie for session handling from the Apache
request record to make it available in earlier phases then the
content handler. Suggested by Jack Cushman.
- added entity decoding for value attribute of radio/checkboxes.
Spotted by Chris Thorman.
- %fdat is not resetup when already done and formtype is
multipart/formdata. Spotted by Michael Slade.
- Embperl inserts & instead of a signle & inside query strings
when expaned from array or hash refs.
- Embperl now also accepts hashref inside a url and expand it
to a query_string i.e. will become
.
- EMBPERL_COOKIE_EXPIRES now also supports relativ times like:
+30s +10m +1h -1d +3M +10y
- $req_rec -> pnotes ('EMBPERL_ERRORS') could be used to retrieve
error message inside a error document
- make Embperl compile and run with threaded Perl 5.6. With help
from Jason Bodnar. NOTE: That doesn't mean that Embperl is
threadsafe!
=head1 1.3b4 (BETA) 17.07.2000
- New $escmode (or EMBPERL_ESCMODE) to disable the possiblilty
to turn off escaping with a leading backslash. Adding 4 to
any escmode will cause Embperl to do no special processing
on the backslash. This is mainly to avoid problems with
cross site scripting issuse, where people are able to enter
aribtary HTML. Spotted by Dirk Lutzebaeck.
- Characters between 128 and 159 are all HTML escaped now to
avoid problems with buggy browser, which were reported to
treat the chars 139 and 141 as < and >. Spotted by Dirk Lutzebaeck.
- If a requested file is not found when using EmbperlObject as handler,
the file given by C is displayed instead.
If C isn't set a staus 404, NOT_FOUND is
returned as usual.
- "perl Makefile.PL debug" will build debugging information for
gdb/ms-vc++ into Embperl library.
- test.pl can take a bunch of new options for debugging Embperl itself.
See make test TESTARGS="--help".
- Embperl 1.x and 2.x share now the same Makefile.PL and test.pl
- Added new debug flag dbgObjectSerach which logs the EmbperlObjects
work when searching the correct file.
- If import parameter is given to Execute, Perl code is compiled, but
only [! !] blocks are executed (to allow sub definitions on import)
- Space is converted to %20 instead of +, because that is more generic.
Suggested by Michael Blakely.
- EmbperlObject now automaticly defines all subs that are declared
inside the base template and inside the requested page, so it isn't
neccessary anymore to call Execute with import => 0 for them.
- Every Embperl Page now get passed a request object (which can be obtained
from $_[0]). The request object is a hash reference which is blessed
into the package HTML::Embperl::Req. Embperl itself don't uses the hash, so
you are free to populate it and pass data between different pages of one request.
- EmbperlObject now setup the inherence so that
request page -ISA->
base template -ISA->
EMBPERL_OBJECT_HANDLER_CLASS (if defined) -ISA->
HTML::Embperl::Req
and the Embperl request object is blessed into the packages of the
requested page, so you can do methods calls to subs that are defined
inside the requested page.
- correct spelling error and renamed ScanEnvironement to ScanEnvironment.
(ScanEnvironement still works).
- EmbperlObject can now be used also offline (via HTML::EmbperlObject::Execute)
- MailFormTo and HTML::Embperl::Mail::Execute now have a configuration
directive EMBPERL_MAILHELO, can be used to specify the host/domain for the
HELO/EHLO command. Suggested by Remco Brink.
- Fixed a bug that caused the default drive to be incorrectly set on Win 32.
=head1 1.3b3 (BETA) 25.04.2000
- Fixed SIGSEGV which occurs in cleanup with Perl 5.6. Spotted by
Aaron Johnson.
- Changed make test so it works correctly with new error messages of
Perl 5.6.
- Fixed a bug that Execute will always fail when $@ was set before.
Patch from Francis J. Lacoste.
- Changed test so it accpects charset in Content-Type header from
Apache 1.3.12
- The outputfile parameter now also works when running under
mod_perl. Spotted by Ilia Lobsanov.
- Makefile.PL warns if you build with a DSO mod_perl < 1.22
- make test checks that test files are readable by Apache.
- Applied a patch from Jens-Uwe Magner to make Embperl work
with mod_perl 1.22 on AIX. We now require mod_perl 1.22,
but I should now work as DSO and staticly linked.
- Applied a patch from Francis J. Lacoste that makes sure
that when a package name is given the file is always compiled
into this package. Note: This means that if you specify a
packagename and the packagename differs from request to
request, the page is compiled for every package and therfore
consuming memory on every request.
- Added EMBPERL_SESSION_HANDLER_CLASS which allows you to overwrite
Embperl defaults session handling. Idea form Barrie Slaymaker.
- Added EmbperlLogo.gif to the distribution, which contains
"Powered by Embperl".
- Added Patch from Randy Kobes that makes Embperl compile with
Apache 1.3.12 and Perl 5.6 on Win32.
- Removed some -w warnings form EmbperlObject
- Added tests for EmbperlObject
- Fixed a SIGSEGV that occured when Embperl found [*] inside
a page. Spotted by Barrie Slaymaker.
- Added epchar.c.min which contains translation tables which
let's all chars above 128 untouched. This is usefull for
processing two byte charsets. Patch from Sangmook Yi.
- The searchpath (EMBPERL_PATH) now uses semikolons (';') instead
of colons (':') to avoid problems with Windows drive letters.
Colons still work on Unix.
=head1 1.3b2 (BETA) 11. Feb 2000
- added new mod_perl handler EmbperlObject, which helps to build whole
pages out of small objects, which can be overwritten in "derived"
pages.
EmbperlObject allows you to define the standard layout of your site just
once and includes the neccessary components based on the uri. Your HTML
documents just have to contain the unique stuff and not the common stuff
like headers/footers or navigation bars. Also these common elements can
be overwritten in each subdirectory.
- added EMBPERL_PATH (and path parameter to Execute), which can contain
a colon separated search path. Embperl uses it when a file, which does
not contain a path, is executed.
- added new module HTML::Embperl::Mail which sends a file processed via
Embperl by email.
- Fixed a bug, that the logfile if opened also EMBPERL_DEBUG is set
to zero. Now if debug is zero, no logfile will be opened. Spotted
by Jason Bodnar and Christian Gilmore.
=head1 1.2.1 5. Jan 2000
- fdat parameter of Execute function isnīt honoured when
call from CGI script which has received multipart/formdata.
Spotted by NHan H. Trinh.
- @ffld was not correctly setup, when only fdat parameter is
given in calls to Execute.
- if mtime parameter is undef or 0, now the pcode really isn't
cached. Spotted by Neeme Vool.
- EMBPERL_OPTIONS and EMBPERL_DEBUG (debug, options) accepts
now decimal, binary, octal and hex values.
- fix a SIGSEGV that could occur under rare conditions in
cleanup. With help from Todd Eigenschink and Gary Shea.
- fix a problem that $req_rec is not correctly setup inside
imported subs. Reported by Cliff Rayman.
- specify domain/hostname when sending mail via MailFormTo
- add EMBPERL_MAILFROM config, to make sender used by
MailFormTo configurable
- add EMBPERL_MAILDEBUG config, to allow debugging of email
problems in MailFormTo
- ProxyInput now handles posted form data. Spotted by
Neeme Vool.
- EMBPERL_INPUT_FUNC now allows to also give the name
under which the source should cached, to allow correct
cacheing of data read via EMBPERL_INPUT_FUNC. Spotted by
Neeme Vool.
- Fixed a SIGSEGV in OPTION tag which occurs due to
different integer sizes on 64Bit systems. With help
from David Waldo.
=head1 1.2.0 17 Nov 1999
- test script had failed in cgi mode on win32. Spotted by
Randy Korbes.
=head1 1.2b11 (BETA) 4 Nov 1999
- Added the "Status:" header and error message to embpcgi.pl to
let Apache return the correct status line. Patch from Jason Holt.
- Fixed problem that Apache SIGSEGVs when an error message contains
a %x. Spotted by Ed Park.
- Added missing BEGIN block in docs for Session handling.
- Fixed an endless loop that occured when tainting is on and
the same document is called two times via Execute. With help
from Jason Holt.
- Changed access to addtional upload fileinfo. The old syntax
(${${$fdat{}}}) isn't available anymore, because
it doesn't work with filenames that are not a vaild perl
variable name. Now there is a second field which start with a
dash that's holds a hash ref to the file info. Spotted by
Huang-Ming Pan.
- The Embperl specific part of Apache session (former
Apache::Session::Embperl) is now part of the Embperl distribution
(as HTML::Embperl::Session). This makes Embperl independ of
new releases of Apache::Session. Embperl now works with
Apache::Session version 1.00 and higher. Apache::Session 0.17 is still
supported, but the documentation is removed, because it should no
longer be used.
- Apache::Session must not be preloaded prior to Embperl. It's
enought to set EMBPERL_SESSION_CLASSES and Embperl will bring
the right modules in memory for you.
- Removed the call to mod_perl_sent_header, which was an workaround
for an problem with (very) old mod_perl version, because it doesn't
resolve on (every) IRIX. Spotted by Jearanai Vongsaard.
- NOT_FOUND, FORBIDDEN now also logged thru Apache, so the LogLevel is
honoured and log message in Apache error log get a time stamp.
Spotted by Christian Gilmore.
- Removed warings that apears when compiling with -Wall.
- Added URL of better emacs mode for Embperl from Erik Arneson.
- Added new paramter 'errors' to Execute function which takes an
array ref, that returns any error messages. Suggested by
James Elson.
- Fixed that serveral options where not settable inside an Embperl page.
Spotted by Ilya Ketris.
=head1 1.2b10 (BETA) 7 Oct. 1999
- Fixed a great security whole in CGI mode. Because Apache passes
anything after the first '?' to the cgi script as commandline
arguments, embpexec.pl could be tricked into offline mode, where
it returned any file that is readable by the httpd! So if you are
using CGI mode, I strongly recommend to update to 1.2b10.
Now you must use embpcgi.pl instead of embpexec.pl in CGI mode.
Spotted by Jason Holt.
- Added EMBPERL_ALLOW. If the file doesn't EMBPERL_ALLOW Embperl
will return forbidden. This is primarly another security
feature, because dependig on the way you use Embperl in CGI mode,
it will not honour all Apache access restrictions. With
EMBPERL_ALLOW, you can now force it to serve only certain
files. Suggested by Jason Holt.
- Fixed a problem that had occured with magic SVs (tied scalar)
as source for the Execute function. Spotted by Todd Eigenschink.
- Embperl works now with Apache::Session 0.17, 1.02 and 1.04
(1.03 is errornous)
- Fixed a SIGSEGV that occurs when the req_rec parameter of the
Execute functions gets a Apache::Request object instead of a
Apache object, which occured due to the different ways the
Apache internal request_rec is stored inside the object.
Spotted by Francis J. Lacoste.
- Fixed a SIGSEGV that occured when outputting to a scalar and
optReturnError is set. Spotted by Francis J. Lacoste.
- Added a ; after the begin block in startup.pl, which seems had
cause a syntax error in some situations. Spotted by Oyvind Gjerstad.
- exit now works the same in offline, mod_perl and cgi mode, it
ends the execution of the page, but not the programm itself.
- exit inside a sub will now really exit the page. (but exit inside
a file called via Execute will only exit this file, not the whole
request) Spotted by Cliff Rayman.
- Added new hash %http_headers_out which could be used to set arbitary
http header under mod_perl _and_ in cgi mode. "Location" header will
automaticly set status to 301.
- setting http headers and now works also
in cgi mode.
- Session Handling now also works in CGI mode (needs
Apache::Session >= 1.04)
- ACTION attribute of Formtag is now URL en/decoded. Spotted by
Hartmut Palm.
=head1 1.2b9 (BETA) 10. Sept 1999
- Fixed a problem with loading Apache::Session 1.01, when
Apache::Session 0.17 is not installed. Spotted by Volker Hess.
=head1 1.2b8 (BETA) 9. Sept 1999
- Fixed behaviour of . now does not overide
VALUE="" with the value from %fdat. This seems to has been
broken, since a couple of versions and the fix may break
pages that depends on that wrong behaviour. Anyway I have
to fix it before the release version is out!
- Added a patch (and a FAQ) from Jens-Uwe Mager, so Embperl compiles
and links on AIX.
- Fixed error in URL unescaping, spotted by Hartmut Palm.
- _WINSOCK2API_ gets defined on Win32, when compiling with
Apache 1.3.9. Spotted by Randy Korbes.
- Win32 test uses also embpexec.test.pl (instead of .bat),
so cgi test runs also with Apache 1.3.9. Spotted by Randy Korbes.
- Fixed problem with EMBPERL_SESSION_ARGS that splits the arguments
wrong when, for example, the DataSource contains a '='. Spotted by
Vince Galloway.
- Fix a memory leak which eats one SV per