RE: push_handlers

2002-01-11 Thread Stathy Touloumis

Makes sense, will look over the docs again.

Thanks,

 Stathy Touloumis [EMAIL PROTECTED] wrote:
 For some reason the call to 'push_handlers' does not seem to register the
 'handler' with mod_perl correctly when used in the code below.  It seems
 that only a few initial requests will successfully be processed by this
 handler.  It then just seems to be bypassed.  It only works when the
 'push_handler' code is commented out and a Perl*Handler
 directive is added
 to the apache conf file.  Does anyone know why this is so?
 
 Here is a snippet of code which is read in at server startup through a
 'require' directive.
 
 Apache-push_handlers(
  PerlPostReadRequestHandler= \handler
 );
 
 sub handler { warn Hello World\n; }

 As far as I know, push_handlers only works the the current request --
 that is, the handlers pushed with it are cleared at the end of the
 request.

 It would seem that doing this at startup sets up the handler which
 then gets used by the children and cleared after the first request
 they serve.  This would give you the symptoms you're seeing (each
 child called once, and then it disappears).  Try running httpd -X to
 see what happens.  There's also probably something in the guide about
 it.




More Strange Behavior

2002-01-04 Thread Stathy Touloumis

Hello,

I have currently added cutom apache directives using
'Apache::ModuleConfig,Apache::ExtUtils' and have come across some strange
behavior when trying to use a custom mod_perl handler that worked fine
before.  I get this error :
[Fri Jan  4 11:39:25 2002] [error] Uncaught exception from user code:
Undefined subroutine MyModule::Server::Content::handler called.
eval {...} called at /dev/null line 0

which is strange even after I modified the subroutine 'handler' within
'MyModule::Server::Content' to be as basic as :
sub MyModule::Server::Content::handler { return Apache::Constants::OK; }

The module which contains the custom directive callback routines is in
MyModule::Server.

When commenting out :
#PerlFixupHandler MyModule::Server::Fixup
#Files *.html
#   SetHandler perl-script
#   PerlHandler MyModule::Server::Content
#/Files

Pages are returned fine . . .

Any help would be appreciated.




push_handlers, set_handlers

2002-01-02 Thread Stathy Touloumis

Apache 1.3.22
mod_perl 1.26

I have noticed some strange behavior when attempting to stack handlers below
the 'ChildInit' phase. This code executes fine when placed in a server
initialization script:
Apache-push_handlers( PerlChildInitHandler= \My::Child::handler );

When using the code below in a server initialization script without any
apache config directives the handler does not get called.
Apache-push_handlers( PerlHandler= \My::handler );

When applying the following apache conf directive the handler seems to only
get called occasionally (initialization of child process?).
Files *.html
SetHandler perl-script
/Files

Although, when using the 'push_handlers' method at another part of the
request phase the handler gets called occasionally.
Apache-push_handlers( PerlFixupHandler= \My::Other::handler );

When using the method below the handlers do not get called at all.
Apache-httpd_conf(EOF);
Files *.html
PerlHandler  My::handler
SetHandler perl-script
/Files
EOF

Apache-httpd_conf(EOF);
PerlFixupHandler  My::Other::handler
EOF

Of course when setting the directives into the apache conf all seems to work
well.
PerlFixupHandler My::Other
Files *.html
PerlHandler My
SetHandler perl-script
/Files

Any ideas as to why this strange behavior?  When trying to use the
'set_handlers' method it blows up stating the request object is not created.
I cannot see the reason why the request object should be needed to set/push
handlers which are used to 'handle' the request phases.

Thanks,




Apache KeepAlive

2001-12-21 Thread Stathy Touloumis

Has anyone encountered issues when setting 'KeepAlive On' in there apache
conf?  After an initial request it seems that none of my handlers are called
and the apache handlers take control.  After a period of time the
appropriate handlers seem to operate.  If I reload quickly the same issue
occurs.

-Thanks




Apache KeepAlive

2001-12-21 Thread Stathy Touloumis

It seems to stop occurring if I set MaxRequestPerChild to One as well.

Thanks,



RE: How to check the return status?

2001-12-17 Thread Stathy Touloumis

Perhaps something along the lines of :

$r-push_handlers(
PerlHandler = sub {
my $r = shift;
my $return = $handle-handler( $r );
if ( $return == Apache::Constants::OK ) {
??
}
}
);

 -Original Message-
 From: Alexei V. Alexandrov [mailto:[EMAIL PROTECTED]]
 Sent: Monday, December 17, 2001 9:45 AM
 To: [EMAIL PROTECTED]
 Subject: How to check the return status?
 
 
 Hello everyone,
 
   I have a question that i can not resolve. The module dynamicaly
   loads other modules to handle specific urls like this:
 
   [snip]
 my $handle = 'My::Module';
 
 eval {
 (my $h = $handle) =~ s!::!/!ig;
 require $h . .pm;
 };
 
 if (!$@) {
if ($handle-can( handler )) {
 $r-handler( perl-script );
 $r-push_handlers( PerlHandler = 
 \{${handle}::handler} );
 ??
}
 }
   [snip]
 
   In this way the control is passed to another module. The module can
   return OK, SERVER_ERROR, etc... How can i check the return status so
   i can handle it (cache the output for example if the module returned
   OK)
 
   Thanks for any advice.
   
 --- 
  Best regards,
  Alexei V. Alexandrov
 



RE: mod_perl vs. C for high performance Apache modules

2001-12-14 Thread Stathy Touloumis

http://www.perl.com/pub/a/2001/10/17/etoys.html

Yea, mod_perl really sucks ; )

I have even worked on poorly architectured and coded sites which still
performed fairly well.

 Recently I did a substantial project for a client in using
 mod_perl.  That client is happy with the work, but an investor with their
 company is very angry because of what a horrible choice mod_perl is for
 high-load web applications compared with Apache modules and even CGI
 programs, written in C.  If anyone on this list could forward any
 resources
 that do comparisons along these lines, or even analysis of mod_perl's
 handling of high-load web traffic, I would be very grateful.




RE: Auth Handlers

2001-12-13 Thread Stathy Touloumis

He he : )  I think this discussion is being miscommunicated (if that is a
relevant word).  I do not want authorization to be performed in the typical
manner.  Perhaps I want the information from a form submit or a cookie.  I
understand how the Apache authentication configuration works but I want to
strictly use mod_perl to modify the authentication mechanisms without the
standard Apache intervention.

 You mean you want to do authorization in a FixupHandler??
No, this is what I currently have to do to avoid Apache from sending the
'auth request' headers to the browser and still perform custom
authentication via a form submit, cookie, etc.

Thanks,

  : )  No problem,  I guess I am unsure if this is the proper way
 to setup an
  Access, Authen, Authz handler.  When I use this configuration
 my 'handler()'
  method does not get called and I get an error in the logs:
  [Mon Dec 10 13:13:03 2001] [crit] [client 192.168.0.1]
 configuration error:
  couldn't check user.  No user file?: /index.html

 I think Apache is looking for the wrong file.  Check the config
 for AuthUserFile.
 Did you use htpasswd to create it?

  I tried moving it down to be an Authz handler but the same error occurs.
  However, if I push this package as a FixupHandler it works fine and the
  'handler()' method gets called.

 You mean you want to do authorization in a FixupHandler??

 If you like I can let you have some scripts which will show you one way of
 checking for authorization without a second request for a
 username/password,
 assuming that at some stage in the browser session one was
 already supplied.
 Is that what you meant?

 73,
 Ged.






RE: Auth Handlers

2001-12-12 Thread Stathy Touloumis

What I have down is moved out specific auth handler down the chain into the
'fixup' state but it would be much nicer (and ituitive) to place it in the
appropriate position.

 On Tue, 2001-12-11 at 21:00, Stathy Touloumis wrote:
  Actually, I DON'T want the browser to prompt for a
 username/pass.  I saw the
  examples in the eagle book and they all seem to use Authz, with Auth
  handlers using the example you showed.
  Perhaps I need to modify the headers so that the prompt does not occur?

 I have the exact same problem. I want my AuthenHandler to decide if the
 user is prompted for a password. Unfortunately the book tells me:

 By the time the handler is called, Apache will have done most of the
 work in negotiating the HTTP Basic authentication protocol. It will have
 alerted the browser that authentication is required to access the page,
 and the browser will have prompted the user to enter his name and
 password.

 Has anybody got an idea how to let a handler decide, if autthen. is
 required?




RE: Auth Handlers

2001-12-12 Thread Stathy Touloumis

Right, this is fairly obvious but we are trying to prevent apache from
sending the 'login' headers if successful authorization does not occur.  It
seems to me that to do this the handler will need to be moved up or down the
chain which can be unintuitive.

Thanks,

  Has anybody got an idea how to let a handler decide, if autthen. is
  required?

 You can do this via an access handler. For example, we use the access
 handler to see if the user is coming in from a trusted ip address. If they
 are then they are authorized to use the site. Otherwise, the user must
 login.

 The module looks like

 package TrustedAuth;

 ...

 sub access_handler {
 my $r = shift;

 if ( ... ) {
 # Have a trusted host so don't ask user to login
 $r-set_handlers( PerlAuthenHandler = [ \OK ] );
 }
 return OK;
 }

 sub authen_handler {
 # normal stuff here
 }

 1;

 and my httpd.conf has

 PerlModule TrustedAuth

 Location /secure
 AuthName Secure
 AuthType basic
 Require valid-user

 PerlAccessHandler TrustedAuth::access_handler
 PerlAuthenHandler TrustedAuth::authen_handler
 /Location

 ---
 Andrew Gilmartin
 Senior Developer
 Ingenta
 [EMAIL PROTECTED]
 andrewgilmartin (aim)
 401-743-3713 (cell)







Apache-push_handlers

2001-12-12 Thread Stathy Touloumis

Hi,

I was wondering if anyone had experienced some funky behavior when 'pushing'
a content handler (PerlHandler).  The initial request makes the appropriate
content handler call but  upon subsequent requests the content handler
routine does not get called.

This is a snippet of code from a startup file that is loaded at system
startup:
my $environment = $ENV{'ENVIRONMENT'};
Apache-push_handlers( PerlHandler=  sub {
return Package::Base::$environment-handler( shift );
} );

Thanks,




RE: Auth Handlers

2001-12-11 Thread Stathy Touloumis

: )  No problem,  I guess I am unsure if this is the proper way to setup an
Access, Authen, Authz handler.  When I use this configuration my 'handler()'
method does not get called and I get an error in the logs:
[Mon Dec 10 13:13:03 2001] [crit] [client 192.168.0.1] configuration error:
couldn't check user.  No user file?: /index.html

I tried moving it down to be an Authz handler but the same error occurs.
However, if I push this package as a FixupHandler it works fine and the
'handler()' method gets called.

Thanks,

 -Original Message-
 From: Ged Haywood [mailto:[EMAIL PROTECTED]]
 Sent: Monday, December 10, 2001 7:16 PM
 To: Stathy Touloumis
 Cc: mod_perl List
 Subject: RE: Auth Handlers


 On Mon, 10 Dec 2001, Stathy Touloumis wrote:

  Directory /home/stathy/apache/html
  AuthName Login
  AuthType Base::Session::Handler
  require valid-user
 
  PerlAuthenHandler Base::Session::Handler
  /Directory

 Forgive me, it's late, and I'm afraid I've deleted the original
 question.  But there isn't much here to go on...

 73,
 Ged.





RE: Auth Handlers

2001-12-11 Thread Stathy Touloumis

Actually, I DON'T want the browser to prompt for a username/pass.  I saw the
examples in the eagle book and they all seem to use Authz, with Auth
handlers using the example you showed.
Perhaps I need to modify the headers so that the prompt does not occur?

Thanks for the info,

 -Original Message-
 From: Rob Bloodgood [mailto:[EMAIL PROTECTED]]
 Sent: Tuesday, December 11, 2001 12:54 PM
 To: Stathy Touloumis
 Cc: mod_perl
 Subject: RE: Auth Handlers


  : )  No problem,  I guess I am unsure if this is the proper way
  to setup an
  Access, Authen, Authz handler.  When I use this configuration my
  'handler()'
  method does not get called and I get an error in the logs:

 This is *not* the correct way to invoke it.

Directory /home/stathy/apache/html
AuthName Login

 # This is incorrect
 #  AuthType Base::Session::Handler

 # *This* is what you need if you want the
 # browser to prompt for a username/pass
   AuthType Basic
require valid-user
   
PerlAuthenHandler Base::Session::Handler
/Directory


 I just checked my answers from the Eagle (Writing Apache Modules with Perl
 and C), and that's the correct way.  If I'm not mistaken, the chapter on
 Authentication is one of the sample chapters that's online at
 http://www.modperl.com.  Have a look over there, it'll straighten
 you right
 out. :-)

 L8r,
 Rob

 #!/usr/bin/perl -w
 use Disclaimer qw/:standard/;







Auth Handlers

2001-12-10 Thread Stathy Touloumis

I seem to be unable to get my authentication/authorization handler to be
called correctly.  I have tried numerous directives and it seems to always
get passed to the standard apache 'authentication' module.  I receive this
error :
[Mon Dec 10 13:09:35 2001] [crit] [client 192.168.6.59] configuration error:
couldn't check user.  No user file?: /index.html

OR

the package handler does not get called at all.

Thanks,




RE: Auth Handlers

2001-12-10 Thread Stathy Touloumis

Directory /home/stathy/apache/html
AuthName Login
AuthType Base::Session::Handler
require valid-user

PerlAuthenHandler Base::Session::Handler
/Directory

 Send the config?
 



RE: Dynamic loading of development libraries

2001-03-03 Thread Stathy Touloumis

Or set MaxClients to 1 if you do not have too many developers and/or your
development server doesn't suck ; )


 There are 2 realistic solutions to your problem :

 1. run a web server for each user ( a good solution in my opinion )
 2. wait for Doug to finish up mod_perl 2.0

 I know the problem you have with development + mod_perl, and
 honestly, these
 are the only avaliable options.




RE: [OT] (apache question) Working around MaxClients?

2001-02-23 Thread Stathy Touloumis

You could defined a different port in your img tags.  Then you can start
thttpd to bind to that port.  You shouldn't have a problem binding to ports
higher that 1024(?) I think.  Unless they have done something to prevent
this which is doubtful.

Example:
img src="http://www.foo.com:/test/test.gif"

Unfortunately it could mean changing lots of code on your site.  Of course,
you could use something like Apache::filter to alter your image tags on the
way out.  I don't think this would be a difficult issue though.  The main
thing is if you can bind to ports over 1024.

  I have a high traffic website (looks like 200 GB output per month,
  something around 10-20 hits per day) hosted on a commercial
  service. The service does not limit my bandwidth usage, but
 they limit the
  number of concurrent Apache process that I can have to 41. This
 causes the
  server to delay accepting new connections during peak times.
  My account is a "virtual server"; what this means is that I
 have access to
  the Apache httpd.conf files and can restart the Apache daemon,
 but do not
  have the priviledge to bind a program to port 80 (so I can't
 put thttpd on
  port 80).

Stathy Touloumis
Coder
if ( eval{ $you = require Perl } ) { $you = '?3r1 H@c|3r' }

Edventions
8800 Bronx Ave
Skokie, IL 60077
www.edventions.com
[EMAIL PROTECTED]




RE: Odd Caching Bug

2001-02-22 Thread Stathy Touloumis

 So, if I understand correctly, the database handle is getting cached
 more than you think it should, that's right?

I was unsure where the caching was occurring.

 I think MaxRequestsPerChild doesn't actually cut off a connection that
 is kept alive (with KeepAlive). Ctrl-N in a browser could validly reuse
 the same connection if it is still around (if you wait too long, a
 keep-alive connection will be closed).

This would make sense.  It would seem that 'KeepAlive' keeps the 'request'
open until
it times out.

 So even though you've set up MaxRequestsPerChild to 1, each Apache child
 process could be serving multiple requests over a single TCP/IP
 connection. The answer to "where the caching is occuring" would be in
 Apache::DBI, which opens a single DB connection per Apache child
 process.

  - stop using Apache::DBI.

  - have your scripts explicitly set the date format they want every time
 (do not rely on "whatever format is already there").

Actually these are both not options : )  We really are not allowing
developers to modify global database variables.  This is the first no-no.
Because it is not a strict policy somebody obviously abused it : )

 With both solutions, you'll be able to leave the keep-alive enabled and
 use a saner MaxRequestsPerChild (like the default setting). Having
 "MaxRequestsPerChild 1" is harsh on resources!
Understandably the configuration is not optimized but it is only in a
development environment to allow for simultaneous development of modules,
components and visual elements.  Our production environment varies
significantly in it's configuration directives.

Thanks for the information though.  It clarified what I was originally
thinking.

Thanks,




[OT] RE: (apache question) Working around MaxClients?

2001-02-22 Thread Stathy Touloumis

Why don't you setup apache to do proxying?

 I have a high traffic website (looks like 200 GB output per month,
 something around 10-20 hits per day) hosted on a commercial
 service. The service does not limit my bandwidth usage, but they limit the
 number of concurrent Apache process that I can have to 41. This causes the
 server to delay accepting new connections during peak times.

 My account is a "virtual server"; what this means is that I have access to
 the Apache httpd.conf files and can restart the Apache daemon, but do not
 have the priviledge to bind a program to port 80 (so I can't put thttpd on
 port 80).

 I was thinking of serving the HTML files from Apache and the JPG files
 from thttpd (thttpd uses select() so it always only uses up one process,
 no matter how many connections it's handling) on port 8080, but there's
 one disadvantage: People who browse my site from behind certain firewalls
 can only see port 80.

 Does anyone know of a way to configure Apache so that it will pass port 80
 traffic onto port 8080 somehow, without having access to modify the
 binary? It would have to do this without needing to spawn a child for
 every request though. Or is this impossible?




Odd Caching Bug

2001-02-21 Thread Stathy Touloumis

Hello,

One of the developers I currently am working with has found an odd bug that
can be replicated on several workstations.  First my configuration :
Apache 1.3.17
mod_perl 1.25
Mason (Ancient)
Apache::DBI .88
Postgres 7

MaxRequestsPerChild 1
KeepAlive on


We have two components that contain the following code.  One of which
changes a session variable (datestyle to 'ISO')on the postgres database.
Theoretically the two components should return different results based on
the specific datestyle settings ('ISO' and default).  This only occurs when
two browsers are opened independently that do not share the same session.
When using ctrl-n on a windows client to open a new window it appears that
they share session information and possibly the same tcp/ip connection(?).
When reloading the components in the two windows eventually they both return
the 'ISO' format date.  After pausing for several minutes and reloading the
component that DOES NOT explicitly set the 'ISO' format variable, it
correctly returns the default date format.

--COMPONENT 1--
%perl_init
my $dbh = Edventions::Utilities-new-getDbHandle; ## Uses Apache::DBI to
connect
my $sql = q( select now() as today );
my $sth = $dbh-prepare( $sql );
$sth-execute;
my $now = $sth-fetch-[0];
/%perl_init

h1% $now %

--COMPONENT 2--
%perl_init
my $dbh = Utilities-new-getDatabaseHandle; ## Uses Apache::DBI to connect
my $sql = q( set datestyle to 'ISO'; select now() as today );
my $sth = $dbh-prepare( $sql );
$sth-execute;
my $now = $sth-fetch-[0];
/%perl_init

h1% $now %

Now when the apache directive KeepAlive is set to 'off' this problem does
not occur.  I am trying to figure out where the caching is occurring or if
the database handle is not getting properly destroyed for each request.

Any suggestions as to why this is occurring would be greatly appreciated.

Thanks,




Odd Caching Bug

2001-02-20 Thread Stathy Touloumis

Hello,

One of the developers I currently am working with has found an odd bug that
can be replicated on several workstations.  First my configuration :
Apache 1.3.17
mod_perl 1.25
Mason (Ancient)
Apache::DBI .88
Postgres 7

MaxRequestsPerChild 1
KeepAlive on


We have two components that contain the following code.  One of which
changes a session variable (datestyle to 'ISO')on the postgres database.
Theoretically the two components should return different results based on
the specific datestyle settings ('ISO' and default).  This only occurs when
two browsers are opened independently that do not share the same session.
When using ctrl-n on a windows client to open a new window it appears that
they share session information and possibly the same tcp/ip connection(?).
When reloading the components in the two windows eventually they both return
the 'ISO' format date.  After pausing for several minutes and reloading the
component that DOES NOT explicitly set the 'ISO' format variable, it
correctly returns the default date format.

--COMPONENT 1--
%perl_init
my $dbh = Edventions::Utilities-new-getDbHandle; ## Uses Apache::DBI to
connect
my $sql = q( select now() as today );
my $sth = $dbh-prepare( $sql );
$sth-execute;
my $now = $sth-fetch-[0];
/%perl_init

h1% $now %

--COMPONENT 2--
%perl_init
my $dbh = Utilities-new-getDatabaseHandle; ## Uses Apache::DBI to connect
my $sql = q( set datestyle to 'ISO'; select now() as today );
my $sth = $dbh-prepare( $sql );
$sth-execute;
my $now = $sth-fetch-[0];
/%perl_init

h1% $now %

Now when the apache directive KeepAlive is set to 'off' this problem does
not occur.  I am trying to figure out where the caching is occurring or if
the database handle is not getting properly destroyed for each request.

Any suggestions as to why this is occurring would be greatly appreciated.

Thanks,




Setting 'Location' header

2001-02-13 Thread Stathy Touloumis

This code does not seem to work whether in a handler or when using a Mason
component.  I have tried several variations with different versions of
mod_perl to no avail.  Can anyone shed some light?

my $head = $r-headers_out;
$head-set( Location= '/index.html' );
$head-set( Target= '_top' );
$r-send_http_header;

Thanks!




Accessing Global Configuration Directives

2001-02-09 Thread Stathy Touloumis

Is it possible to access a global configuration directive without using the
request object?

Thanks,




RE: server_root question...

2001-02-05 Thread Stathy Touloumis

If you want to use a perl function ( Apache::server_root_relative() ) then
you have to use a Perl block.

This might work :

PerlSetEnv SERVER_ROOT \
Perl
Apache::server_root_relative()
/Perl

But this seems so much easier :

Perl
$ENV{'SERVER_ROOT'} = Apache::server_root_relative()
/Perl

 Maybe its too early or whatever.  How would you go about setting
 $ENV{SERVER_ROOT} without using Perl.  I was trying

 PerlSetEnv SERVER_ROOT Apache::server_root_relative()

 in perl.conf, but no go.  Any ideas?




RE: [OT] Dynamically changing current package

2001-02-02 Thread Stathy Touloumis

Probably just never assumed to be used this way.  Do not see to much
documentation on using the Symbol table directly.  Here is something strange
as well.  Try copying a package and then creating an object from it . . .

Really funky

Think I might post this to the p5p list

-
#!/usr/bin/perl -w
#

## ASSIGN TEST TO TEST2
*{ 'Test2::' } = *{ 'Test::' };

## LETS CREATE SOME OBJECTS
my $obj = Test-new;
print 'TEST PACKAGE OBJECT : ', ref($obj), "\n\n";

my $obj2 = Test2-new;
print 'TEST2 PACKAGE OBJECT : ', ref($obj2), "\n\n";

## FYI

print '- ' x 10, 'TEST', ' -' x 10, "\n";
print map { "$_ - $Test::{$_}\n" } keys %Test:: ;

print '- ' x 10, 'TEST2', ' -' x 10, "\n";
print map { "$_ - $Test2::{$_}\n" } keys %Test:: ;

BEGIN {
package Test;

sub new {
my $class =shift;

print "SETTING OBJECT TO CLASS : $class\n";

bless my $obj = {}, $class;
}

}
---

   NewPackage will then contain all things in TestPackage
 
  Then you can redefined everything in TestPackage without affecting
  anything in NewPackage.
 
 Actually it will, if you were to delete NewPackage, TestPackage would not
 contain anything.  Modifying 'thingys' in TestPackage would modify
 NewPackage.

 Actually I investigated this a little more and discovered some
 strange things...

 If you check out the results, copying the package at the package
 level cause scalars to be redefined and subroutines to created as
 references.  Where as copying the the package at the glob level
 caused the the subroutines to be redefined and the scalars to be
 references...

 I wonder if this is a problem with perl?

 Robert Landrum
 --- results ---

 # perl n.pl 1
 NewPackage::x was defined
 NewPackage::june was defined

 $NewPackage::x was set to 100
 $Test::x now contains 100

 Now Deleting Test package
 Test::x was deleted from the STASH
 Test::june was deleted from the STASH

 $NewPackage::x was set to 100
 $Test::x now contains 100

 Now Listing NewPackage
 NewPackage::x
 NewPackage::june

 Now Listing Test

 # perl n.pl
 NewPackage:: was defined as *{Test::}

 $NewPackage::x was set to 100
 $Test::x now contains 1

 Now Deleting Test package
 Test::x was deleted from the STASH
 Test::june was deleted from the STASH

 $NewPackage::x was set to 100
 $Test::x now contains 1

 Now Listing NewPackage

 Now Listing Test



 --- Contents of n.pl ---
 #!/usr/bin/perl
 package Test;

 our $x = 1;
 sub june {

 }

 package main;

 if($ARGV[0]) {
  for my $name (keys %{Test::}) {
  *{"NewPackage::".$name} = *{"Test::".$name};
  print "NewPackage::".$name." was defined\n";
  }
  print "\n";
 } else {
  *{NewPackage::} = *{Test::};
  print "NewPackage:: was defined as \*{Test::}\n";
  print "\n";
 }
 $NewPackage::x = 100;

 print "\$NewPackage::x was set to $NewPackage::x\n";
 print "\$Test::x now contains $Test::x\n";
 print "\n";
 print "Now Deleting Test package\n";
 for my $name (keys %{Test::}) {
  delete $Test::{$name};
  print "Test::".$name." was deleted from the STASH\n";
 }
 print "\n";

 print "\$NewPackage::x was set to $NewPackage::x\n";
 print "\$Test::x now contains $Test::x\n";
 print "\n";
 print "Now Listing NewPackage\n";
 for my $name (keys %{NewPackage::}) {
  print "NewPackage::".$name."\n";
 }
 print "\n";
 print "Now Listing Test\n";
 for my $name (keys %{Test::}) {
  print "Test::".$name."\n";
 }
 print "\n";





RE: Development Environment

2001-02-01 Thread Stathy Touloumis

I actually was nearlly successful in accomplishing some sort of mechanism by
which developer packages can be mapped to a virtual package which the real
package points to (did this make sense?).  Anyway, it needed to tap into the
symbol table way too extensively and ran into several problems.

I also thought about configuring the apache server differently on
development so that child processes get recycled much faster than on
production so as to allow for each request to use it's own memory.  This can
be resource intensive but again it would only be on development.  Also,
packages/modules will need to be called on a per request basis in
development.

I will let you know if it is feasible.

Thanks,

 I agree. I've seen many people try to do shared memory/cached programming
 in one server and it just doesn't work very well in practice. It
 only takes
 one programmer a typo to take everyone else down until the bug is fixed.

  From Jakarta/Tomcat to IIS to Apache/mod_perl. Developers having
 their own
 workstation is the best for testing and active development. Of course, a
 staging server needs to be shared. But it's a lot cleaner once the
 developer has debugged their own code.





RE: suexec denies execution of scripts

2001-02-01 Thread Stathy Touloumis

Because suexec is build with a predefined path which allows only scripts
underneath that path to run in.  You need to find out what the 'docroot' is
and be sure that your script is underneath this path.  There are several
other restrictions that need to be done to ensure that cgi's being run under
suexec need to adhere to.

http://www.apache.org/docs/suexec.html

 I respectfully request your help in order to get this working. My .cgi
 are not perl ones, but /bin/sh or whatever you want that works with
 suexec. I DO known this list is exclusive for mod_perl. But since i get
 no ideia where to go to seek for help. (as far as i known, there is no
 mailing list support for apache/suexec in www.apache.org).

 May some one (In the name of God) help with such, **PLEASE** ?




RE: [OT] Dynamically changing current package

2001-02-01 Thread Stathy Touloumis

 NewPackage will then contain all things in TestPackage

 Then you can redefined everything in TestPackage without affecting
 anything in NewPackage.

Actually it will, if you were to delete NewPackage, TestPackage would not
contain anything.  Modifying 'thingys' in TestPackage would modify
NewPackage.




Symbol::delete_package

2001-01-31 Thread Stathy Touloumis

When using Symbol::delete_package to remove a package something odd happens.
Other packages seem to disappear or functions are not available.  Has anyone
experienced this before?  I am using this with Mason and after using
Symbol::delete_package the Mason handler is no longer available.

(Suse/Linux) Apache 1.3.12 Mod_perl/1.24

Thanks,




Development Environment

2001-01-30 Thread Stathy Touloumis

I was wondering if anyone has successfully setup a development environment
to allow for multiple development copies of modules used within Mason
components.  Also, to have the appropriate changes to the modules shown
within the development environment.

Thanks,

Stathy Touloumis
Coder
if ( eval{ $you = require Perl } ) { $you = '?3r1 H@c|3r' }

Edventions
8800 Bronx Ave
Skokie, IL 60077
www.edventions.com
[EMAIL PROTECTED]