-
Notifications
You must be signed in to change notification settings - Fork 11
/
mason.pl
68 lines (52 loc) · 1.73 KB
/
mason.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/perl
#
# This is a basic, fairly fuctional Mason handler.pl.
#
# For something a little more involved, check out session_handler.pl
my $basedir="/srv/jbovlaste/current";
push @INC, "$basedir/lib";
package HTML::Mason;
# Bring in main Mason package.
use HTML::Mason;
# Bring in ApacheHandler, necessary for mod_perl integration.
# Uncomment the second line (and comment the first) to use
# Apache::Request instead of CGI.pm to parse arguments.
use HTML::Mason::ApacheHandler;
# use HTML::Mason::ApacheHandler (args_method=>'mod_perl');
# Uncomment the next line if you plan to use the Mason previewer.
#use HTML::Mason::Preview;
use strict;
# List of modules that you want to use from components (see Admin
# manual for details)
{
package HTML::Mason::Commands;
use DBI;
}
{
package HTML::Mason::Component;
my($dbh,%session);
}
# Create Mason objects
#
my $parser = new HTML::Mason::Parser;
my $interp = new HTML::Mason::Interp (parser=>$parser,
comp_root=>"$basedir",
data_dir=>"$basedir/mason");
my $ah = new HTML::Mason::ApacheHandler (interp=>$interp);
# Activate the following if running httpd as root (the normal case).
# Resets ownership of all files created by Mason at startup.
#
#chown (Apache->server->uid, Apache->server->gid, $interp->files_written);
sub handler
{
my ($r) = shift;
# If you plan to intermix images in the same directory as
# components, activate the following to prevent Mason from
# evaluating image files as components.
#
return -1 if $r->content_type && $r->content_type !~ m|^text/html|i
&& $r->content_type !~ m|directory$|i;
my $status = $ah->handle_request($r);
return $status;
}
1;