| For some time, the mod_perl ToDo was a list of things that never was |
| updated. Meanwhile, Doug maintained his own checklist of things todo, |
| didn't seem to make much sense. This file is now Doug's messy little |
| checklist, notes that might not make much sense to you, or you might |
| misunderstand. I'll try to change things so you can understand, you |
| can help by asking about an item listed of interest or supply a new |
| one to be added. |
| Or, I might just add: |
| |
| - make the ToDo file understandable |
| |
| to the ToDo file and never remove it ;-) |
| |
| --------------------------------------------------------------------------- |
| SHORT TERM STUFF (this section should always be empty in a release version!) |
| (well, close to it anyhow) |
| --------------------------------------------------------------------------- |
| |
| - Gerald's report of Embperl/sub-request/print breakage |
| |
| - perl-status?mod_perl_hooks broken under win32? |
| |
| - rand() broken under win32! |
| Jeff Baker <jeff@godzilla.tamu.edu> |
| |
| --------------------------------------------------------------------------- |
| DOCUMENTATION (areas that *really* need some more or don't have any) |
| --------------------------------------------------------------------------- |
| |
| - misc: |
| + DONE |
| + SUID access http://www.courtesan.com/sudo/ |
| + $ENV{PATH}/PerlSetEnv and PerlTaintCheck |
| + IO.so and -Xlinker -E "Salvador Fandiño" <fandino@usa.net> |
| |
| - PerlRun::handler in cgi_to_mod_perl.pod |
| |
| - HTTP Headers!!!! |
| |
| - Apache::exit/child_terminate |
| |
| - push_handlers/set_handlers |
| |
| --------------------------------------------------------------------------- |
| KNOWN BUGS |
| --------------------------------------------------------------------------- |
| - $r cannot use many api methods during ChildInit/ChildExit -> SEGV |
| |
| - bytes_sent are not logged if header don't go through send_http_header(), |
| e.g CGI->header(-nph => 1, ...) |
| Eric Cholet <cholet@logilune.com> |
| |
| - SIGALRM/flock, Lincoln Stein <lstein@cshl.org> |
| I often use this type of code to handle possibly blocked flocks(): |
| |
| local($timed_out) = 0; |
| local($SIG{ALRM}) = sub { $timed_out++; die "timed out"; } |
| alarm(5); |
| eval { |
| flock(FH,LOCK_EX); |
| } |
| alarm(0); |
| if ($timed_out) { |
| print "We timed out. Sorry."; |
| } |
| |
| This has been working in standalone CGI scripts, but no longer works |
| in mod_perl. The signal handler gets called, but then the flock() |
| call seems to be restarted. It never exit the eval. So this is no big |
| deal, I just replace the blocking flock() with a poll. |
| |
| - find a way to prevent "httpd spinning" (bug in Perl, not mod_perl) |
| |
| - linkage problem w/ mod_auth_dbm (-ldbm) |
| Config.pm New: libs='-lsocket -lnsl -ldl -lm -lc -lcrypt -ldb' |
| Was: libs='-lsocket -lnsl -ldb -ldl -lm -lc -lcrypt' |
| SunOS mailhost.cmc.net 5.5 Generic_103093-17 sun4m sparc sun4m |
| brian moore <bem@cmc.net> |
| |
| - sometimes w/ <Perl> we get: [warning] PerlSetVar->nelts = 1111992, e.g.: |
| $User = "www"; |
| $ServerType = "standalone"; |
| @ScriptAlias = [('/cgi-bin','/the/path')]; |
| @Alias = [('/web/','/usr/home/web')]; |
| |
| - perl_config should not av_shift ARRAY refs from |
| %Apache::ReadConfig:: |
| |
| - die and AUTOLOADed DESTROY == empty $@ (Perl or mod_perl bug?) |
| |
| |
| - ExtUtils::Embed/ExtUtils::Liblist clash sometime w/ |
| PERL_STATIC_EXTS, like so: |
| Unrecognized argument in LIBS ignored: |
| '/opt/oracle/product/7.3.3/lib/libclient.a' |
| |
| Note (probably harmless): No library found for -l:libcma.sl |
| |
| -Wl,-E -Wl,-B,deferred -L/usr/local/lib |
| /home/web/perl5/lib/site_perl/portable/auto/DBD/Oracle/Oracle.a |
| /home/ etc etc ... |
| mark rostron <useny036@IMATION.COM> |
| Brian Slesinsky <bslesins@best.com> |
| |
| - From: brian moore <bem@CMC.NET> |
| As Apacheweek reported a couple weeks ago, 'some' modules on Solaris have |
| problems with the mutex locking method used by 1.3b5. One of which is |
| mod_perl. To make it work I had to -DUSE_FCNTL_SERIALIZED_ACCEPT or |
| the server would never answer a request. |
| |
| |
| --------------------------------------------------------------------------- |
| NEW STUFF |
| --------------------------------------------------------------------------- |
| - Apache::read_client_block should use safemalloc/safefree, rather |
| than palloc, so memory is released after each read(), rather than at |
| the end of a request. (e.g. so file uploads don't cause too much growth) |
| |
| --- Apache.xs 1998/06/05 02:08:17 1.30 |
| +++ Apache.xs 1998/06/12 14:18:22 |
| @@ -911,11 +911,12 @@ |
| long nrd = 0; |
| |
| PPCODE: |
| - buffer = (char*)palloc(r->pool, bufsiz); |
| + buffer = (char*)safemalloc(bufsiz); |
| PERL_READ_FROM_CLIENT; |
| if ( nrd > 0 ) { |
| XPUSHs(sv_2mortal(newSViv((long)nrd))); |
| sv_setpvn((SV*)ST(1), buffer, nrd); |
| + safefree(buffer); |
| SvTAINTED_on((SV*)ST(1)); |
| } |
| else { |
| |
| - mod_perl C code symbols, should look at cleaning up names with a |
| common prefix, e.g. mp_, mod_perl_, mperl_ ? |
| also static-ize those functions we can |
| |
| - remove Apache::Symbol::undef cruft, now that the mandatory const sub |
| redefined warning is downgraded in 5.004_05-tobe |
| |
| - perl_clear_env() should skip those found in PerlPassEnv? |
| |
| - File::copy($file,*STDOUT) doesn't work (pp_syswrite needs tie support) |
| Bill Coffman <coffman@value.net> |
| |
| - option to set uid/gid before running any Perl code (copy-n-paste |
| from http_main.c) |
| Doug Bagley <doug@dejanews.com> |
| |
| - Apache::URI interface to uri_components structure |
| |
| - provide namespace protection when 'use Foo' might be two different modules |
| i.e. re-visit Apache::Safe |
| |
| - move away from read_client_block to {setup,should,get}_client_block |
| see Apache.pm/Apache::new_read |
| |
| - PerlOptions directive? |
| Jason Riedy <ejr@cise.ufl.edu> |
| |
| - some mod_perlIO type methods for xs modules? (e.g. Apache::Peek) |
| |
| - method to fetch current value of <Location ...>? |
| "Simon Matthews" <sam@peritas.com> |
| |
| - make 'PerlSetVar $Foo value' work like 'local $Foo = value' |
| for the given location |
| |
| - PerlInitHandler - alias to first available |
| PerlCleanupHandler - register_cleanup |
| |
| - <Perl> in .htaccess (could also call known bug) |
| |
| - provide namespace protection for mod_include #perl's |
| |
| - change configuration during runtime? |
| |
| - have log_error/log_reason give file/line info of caller |
| |
| - 'make html'? |
| |
| - $Apache::ServerStarting in <Perl> |
| |
| - something with exec()? |
| |
| - Apache->http_message(501); #rc code returns a string |
| |
| - PerlFreshRestart, restarts on startup, should we stop that? |
| |
| - special treatment for nph- scripts? |
| |
| - fix Thread->new == linux<-SIGUSR1->Apache signal clash |
| |
| - win32: |
| + integrate with Perl 5.005's threading |
| + mod_include #perl support |
| + ability to nmake w/o going into VC++ |
| + ability to disable Perl*Handler callback hooks |
| + look at providing ASP (Active Server Plugin) support for NT users |
| + get rid of dup between t/conf/httpd.conf-dist/httpd.conf-win32 |
| |
| - @ARGV magic, tie to query string |
| |
| - overload %ENV magic: |
| + call subprocess_env when a value is set |
| Doug Bagley <doug@dejanews.com> |
| + so it's not setup unless asked for |
| |
| - "save stack" mechanism so we can go back to caching CV lookups |
| |
| - cleanup Makefile.PL!!! |
| |
| - loose dup code in Apache::Registry, use Apache::PerlRun functions |
| |
| - improve the "stacked handlers" implementation, including: |
| + config merging of AV*'s |
| |
| + allow push_handlers to have an additional argument, an array ref, |
| which will be passed to the handler as arguments, e.g. |
| $r->push_handlers("PerlHandler", \&some_sub, ['one', 'two', 'etc']); |
| |
| - allow Perl*Handler's to have arguments in config files, e.g.: |
| |
| (calls &FooPackage::handler($r, "One", "Two", "Three"); |
| |
| - allow <Perl></Perl> configuration sections to have read access to internal |
| configuration structures (would be nice if we could tie a %namespace::) |
| |
| --------------------------------------------------------------------------- |
| KNOWN MODULE BUGS |
| --------------------------------------------------------------------------- |
| |
| - can't multiple Apache::Include->virtual in a single request |
| |
| - (the bug in Apache::fork is that we shouldn't need the damn thing) |
| Apache::fork is an ugly work around for what looks like might be |
| fixed in 1.3b6: |
| |
| *) After a SIGHUP the listening sockets in the parent weren't |
| properly marked for closure on fork(). |
| [Jürgen Keil <jk@tools.de>] PR#2000 |
| |
| If anyone can confirm, please let me know! |
| |
| --------------------------------------------------------------------------- |
| NEW MODULE STUFF |
| --------------------------------------------------------------------------- |
| |
| - integrate Apache::Log |
| |
| - should Apache::Registry use filename instead of vhost_name+uri? |
| Ben Laurie <ben@algroup.co.uk> |
| |
| - Apache::Util: functions from apache's util*.c files |
| |
| - apache.pm: use apache '1.3b3'; |
| |
| - have Apache::Status hunt for AUTOLOADing |
| |
| - Apache::SawAmpersand |
| |
| - Apache::Status should list number of things |
| |
| - Apache::Constant's import should compile the constant sub |
| |
| - Apache::DProf as a Fixup |
| |
| - Apache::Include->virtual should update %ENV? |
| |
| - Apache->request vs. $_[0] |
| |
| - Apache::Registry should honor __END__ and __DATA__, |
| but how to get it right? |
| |
| --------------------------------------------------------------------------- |
| CLEANUPS - "if it ain't broke, don't muck with it", but we should tidy |
| these things at some point |
| --------------------------------------------------------------------------- |
| |