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) --------------------------------------------------------------------------- - /perl/perl-status?sig dumps core under hpux 10.20 [David-Michael.Lincke@unisg.ch] - Gerald's report of Embperl/sub-request/print breakage - perl-status?mod_perl_hooks broken under win32? - rand() broken under win32! Jeff Baker --------------------------------------------------------------------------- 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 - 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 - SIGALRM/flock, Lincoln Stein 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 - sometimes w/ 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 Brian Slesinsky - From: brian moore 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 --------------------------------------------------------------------------- - 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 - option to set uid/gid before running any Perl code (copy-n-paste from http_main.c) Doug Bagley - 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 - some mod_perlIO type methods for xs modules? (e.g. Apache::Peek) - method to fetch current value of ? "Simon Matthews" - make 'PerlSetVar $Foo value' work like 'local $Foo = value' for the given location - PerlInitHandler - alias to first available PerlCleanupHandler - register_cleanup - 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 - 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 + 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 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 ] PR#2000 If anyone can confirm, please let me know! --------------------------------------------------------------------------- NEW MODULE STUFF --------------------------------------------------------------------------- - should Apache::Registry use filename instead of vhost_name+uri? Ben Laurie - 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 ---------------------------------------------------------------------------