=pod
=head1 1.3b6_dev -- That's what currently under developement
Last Update: <$localtime$> (MET)
NOTE: This version is only available via L<"CVS"|CVS/"INTRO">
- Embperl now runs on ActiveState Perl. 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
- Added Test for pnotes ('EMBPERL_ERRORS')
- 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.
- Added access to Embperl session handling for modules and
calling scripts (see SetupSession and GetSession)
- Added method for deleting session data and cookie
- Added method for triggering resend of session cookie.
- 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
=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