Return-Path: Delivered-To: modperl-cvs-archive@hyperreal.org Received: (qmail 29066 invoked by uid 6000); 7 Jun 1998 17:58:53 -0000 Received: (qmail 29057 invoked by uid 169); 7 Jun 1998 17:58:52 -0000 Date: 7 Jun 1998 17:58:52 -0000 Message-ID: <19980607175852.29056.qmail@hyperreal.org> From: dougm@hyperreal.org To: modperl-cvs@hyperreal.org Subject: cvs commit: modperl/t/net/perl tie_table.pl Sender: modperl-cvs-owner@apache.org Precedence: bulk Reply-To: modperl-cvs@apache.org dougm 98/06/07 10:58:51 Modified: . Changes Makefile.PL ToDo apache-modlist.html Apache typemap Tie Tie.pm typemap src/modules/perl Tie.xs mod_perl.h perl_util.c t/net/perl tie_table.pl Log: add SSLCacheServer{Port,Path} directives for ApacheSSL + 'make test' [Adam Laurie ] make $r->header_in->{get,set,etc} work just like (tied $r->header_in)->{get,set,etc} Revision Changes Path 1.46 +3 -0 modperl/Changes Index: Changes =================================================================== RCS file: /export/home/cvs/modperl/Changes,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- Changes 1998/06/05 02:08:09 1.45 +++ Changes 1998/06/07 17:58:39 1.46 @@ -22,6 +22,9 @@ =item 1.11_01-dev +add SSLCacheServer{Port,Path} directives for ApacheSSL + 'make test' +[Adam Laurie ] + added $r->location method Various fixes and improvements to the APACI support: 1.37 +6 -1 modperl/Makefile.PL Index: Makefile.PL =================================================================== RCS file: /export/home/cvs/modperl/Makefile.PL,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- Makefile.PL 1998/06/04 15:16:07 1.36 +++ Makefile.PL 1998/06/07 17:58:40 1.37 @@ -118,6 +118,7 @@ $PERL_DESTRUCT_LEVEL = ""; $PERL_STATIC_EXTS = ""; $PERL_EXTRA_CFLAGS = ""; +$SSLCacheServerPort = 8539; $Port = 8529; $PORT ||= $Port; $DO_HTTPD = $ENV{DO_HTTPD} || 0; @@ -693,7 +694,11 @@ for (qw(User Group)) { iedit "t/conf/httpd.conf", "s/^$_ .*/$_ $$_/"; } - conf_append("SSLDisable") if $IsBenSSL; + conf_append(< -- add directives for ApacheSSL + 'make test' - SSLCacheServerPort 30123 - SSLCacheServerPath /tmp - Adam Laurie - - Gerald's report of Embperl/sub-request/print breakage - perl-status?mod_perl_hooks broken under win32? @@ -37,11 +32,6 @@ Jeff Baker - APACI stuff: - - o is .xs.c target broken? {Apache,Constants}.c is not being - generated for some folks - - o building w/ threaded Perl o Support for the APXS variant of the new APACI stuff. Best would be a USE_APXS=1 similar to USE_APACI=1. The difference is that instead of 1.18 +6 -2 modperl/apache-modlist.html Index: apache-modlist.html =================================================================== RCS file: /export/home/cvs/modperl/apache-modlist.html,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- apache-modlist.html 1998/06/04 18:55:26 1.17 +++ apache-modlist.html 1998/06/07 17:58:41 1.18 @@ -1,13 +1,13 @@ The Apache/Perl Module List - +

The Apache/Perl Module List

Maintained by Doug MacEachern, -
$Revision: 1.17 $ $Date: 1998/06/04 18:55:26 $ +
$Revision: 1.18 $ $Date: 1998/06/07 17:58:41 $

Contents

Introduction
@@ -79,6 +79,7 @@ OutputChain bmpO Chain output of stacked handlers JANPAZ PassFile bdpf Send file via OutputChain ANDK PerlRun bmpf Run unaltered CGI scripts APML +RandomLocation bdpf Random image display MDARWIN Registry Rmpf Run unaltered CGI scripts APML RobotRules bdpf Enforce robot rules (robots.txt) PARKER Sandwich bmpf Layered document (sandwich) maker DOUGM @@ -137,6 +138,7 @@ Timeit bmpf Benchmark PerlHandlers APML * PerlLogHandler's +DBILogConfig bdpf Custom format logging via DBI JBODNAR DBILogger bdpf Logging via DBI ABH DumpHeaders bdpf Watch HTTP transaction via headers DOUGM Traffic bdpf Logs bytes transferred, per-user basis MAURICE @@ -229,6 +231,7 @@ IKLUFT Ian Kluft <ikluft@cisco.com> JANPAZ Honza Pazdziora <adelton@informatics.muni.cz> JBAKER Jeffrey Baker <jeff@godzilla.tamu.edu> +JBODNAR Jason Bodnar <jcbodnar@mail.utexas.edu> JGROV John D Groenveld <jdg117@elvis.arl.psu.edu> JROWE Jeff Rowe <beowulf@lava.net> KWILLIAM Ken Williams <ken@forum.swarthmore.edu> @@ -237,6 +240,7 @@ MARKIM Mark A. Imbriaco <mark@itribe.net> MARKK Mark Kennedy <mtk@ny.ubs.com> MAURICE Maurice Aubrey <maurice@hevanet.com> +MDARWIN Matthew Darwin <matthew@davin.ottawa.on.ca> MDORMAN Michael Alan Dorman <mdorman@calder.med.miami.edu> MERGL Edmund Mergl <E.Mergl@bawue.de> MJS Michael Smith <mjs@iii.co.uk> 1.6 +7 -1 modperl/Apache/typemap Index: typemap =================================================================== RCS file: /export/home/cvs/modperl/Apache/typemap,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- typemap 1998/05/14 03:06:53 1.5 +++ typemap 1998/06/07 17:58:47 1.6 @@ -6,7 +6,7 @@ Apache::Server T_PTROBJ Apache::ModuleConfig T_PTROBJ Apache::Table T_PTROBJ -Apache::TieHashTable T_PTROBJ +Apache::TieHashTable T_TABLEOBJ pid_t T_IV Apache::Scoreboard O_HvRV @@ -41,6 +41,9 @@ T_APACHEOBJ sv_setref_pv($arg, \"${ntype}\", (void*)$var); +T_TABLEOBJ + sv_setref_pv($arg, \"${ntype}\", (void*)$var); + T_PV_CONST SvREADONLY_on((SV*)$arg); sv_setpv((SV*)$arg, (char *)$var); @@ -77,6 +80,9 @@ T_APACHEOBJ r = sv2request_rec($arg, \"$ntype\", cv) + +T_TABLEOBJ + $var = ($type)hvrv2table($arg) T_PV_CONST $var = ($type)SvPV($arg,na) 1.2 +5 -3 modperl/Tie/Tie.pm Index: Tie.pm =================================================================== RCS file: /export/home/cvs/modperl/Tie/Tie.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Tie.pm 1998/05/14 02:58:23 1.1 +++ Tie.pm 1998/06/07 17:58:49 1.2 @@ -9,6 +9,7 @@ if($ENV{MOD_PERL}) { __PACKAGE__->bootstrap($VERSION); } +*DESTROY = \&destroy; #avoid weird xsubpp bug 1; @@ -25,7 +26,7 @@ ... } - my $table = tied %$headers_out; + my $table = $r->headers_out; $table->set(From => 'dougm@perl.apache.org'); =head1 DESCRIPTION @@ -41,8 +42,9 @@ The I class provides methods for interfacing with the Apache C structure. The following I class methods, when called in a scalar context -with no "key" argument, will return a I reference, -where I is tied to I: +with no "key" argument, will return a I reference blessed into the +I class and where I is tied to +I: headers_in headers_out 1.2 +13 -1 modperl/Tie/typemap Index: typemap =================================================================== RCS file: /export/home/cvs/modperl/Tie/typemap,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- typemap 1998/05/14 02:58:23 1.1 +++ typemap 1998/06/07 17:58:49 1.2 @@ -1,3 +1,15 @@ TYPEMAP -Apache::TieHashTable T_PTROBJ +Apache::TieHashTable T_TABLEOBJ + +OUTPUT + +T_TABLEOBJ + sv_setref_pv($arg, \"${ntype}\", (void*)$var); + +INPUT + +T_TABLEOBJ + $var = ($type)hvrv2table($arg); + + 1.3 +1 -1 modperl/src/modules/perl/Tie.xs Index: Tie.xs =================================================================== RCS file: /export/home/cvs/modperl/src/modules/perl/Tie.xs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Tie.xs 1998/05/17 23:31:53 1.2 +++ Tie.xs 1998/06/07 17:58:50 1.3 @@ -33,7 +33,7 @@ RETVAL void -DESTROY(self) +destroy(self) Apache::TieHashTable self CODE: 1.26 +2 -0 modperl/src/modules/perl/mod_perl.h Index: mod_perl.h =================================================================== RCS file: /export/home/cvs/modperl/src/modules/perl/mod_perl.h,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- mod_perl.h 1998/06/05 02:08:18 1.25 +++ mod_perl.h 1998/06/07 17:58:50 1.26 @@ -891,8 +891,10 @@ SV *array_header2avrv(array_header *arr); array_header *avrv2array_header(SV *avrv, pool *p); +table *hvrv2table(SV *rv); SV *mod_perl_gensym (char *pack); SV *mod_perl_tie_table(table *t); +SV *perl_hvrv_magic_obj(SV *rv); void perl_tie_hash(HV *hv, char *class, SV *sv); void perl_util_cleanup(void); void mod_perl_clear_rgy_endav(request_rec *r, SV *sv); 1.11 +23 -1 modperl/src/modules/perl/perl_util.c Index: perl_util.c =================================================================== RCS file: /export/home/cvs/modperl/src/modules/perl/perl_util.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- perl_util.c 1998/06/03 17:05:31 1.10 +++ perl_util.c 1998/06/07 17:58:50 1.11 @@ -93,6 +93,16 @@ return arr; } +table *hvrv2table(SV *rv) +{ + if(SvROK(rv) && SvTYPE(SvRV(rv)) == SVt_PVHV) { + SV *sv = perl_hvrv_magic_obj(rv); + if(!sv) croak("HV is not magic!"); + return (table *)SvIV((SV*)SvRV(sv)); + } + return (table *)SvIV((SV*)SvRV(rv)); +} + /* same as Symbol::gensym() */ SV *mod_perl_gensym (char *pack) { @@ -111,8 +121,20 @@ sv_setref_pv(sv, "Apache::Table", (void*)t); perl_qrequire_module("Apache::Tie"); perl_tie_hash(hv, "Apache::TieHashTable", sv); - return newRV_noinc((SV*)hv); + return sv_bless(newRV_noinc((SV*)hv), + gv_stashpv("Apache::TieHashTable", TRUE)); } + +SV *perl_hvrv_magic_obj(SV *rv) +{ + HV *hv = (HV*)SvRV(rv); + MAGIC *mg; + if(SvMAGICAL(hv) && (mg = mg_find((SV*)hv, 'P'))) + return mg->mg_obj; + else + return Nullsv; +} + void perl_tie_hash(HV *hv, char *class, SV *sv) { 1.3 +9 -1 modperl/t/net/perl/tie_table.pl Index: tie_table.pl =================================================================== RCS file: /export/home/cvs/modperl/t/net/perl/tie_table.pl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- tie_table.pl 1998/05/17 23:31:56 1.2 +++ tie_table.pl 1998/06/07 17:58:51 1.3 @@ -6,7 +6,7 @@ $r->send_http_header("text/plain"); my $i = 0; -my $tests = 23; +my $tests = 26; print "1..$tests\n"; my $headers_in = $r->headers_in; @@ -15,6 +15,7 @@ test ++$i, UNIVERSAL::isa($headers_in, 'HASH'); test ++$i, $table->isa('Apache::TieHashTable'); test ++$i, $table->get('User-Agent'); +test ++$i, $r->headers_in->get('User-Agent'); test ++$i, $headers_in->{'User-Agent'}; test ++$i, $table->get('User-Agent') eq $headers_in->{'User-Agent'}; $table->merge(Accept => "application/x-perl"); @@ -34,6 +35,13 @@ test ++$i, scalar keys %$headers_in == 0; %$headers_in = %save; + +my %my_hash = (two => 2, three => 3); +@{ $r->notes }{ keys %my_hash } = (values %my_hash); + +for (keys %my_hash) { + test ++$i, $r->notes->get($_); +} for my $meth (qw{ headers_in headers_out err_headers_out notes dir_config subprocess_env