/[pub]/suikawiki/script/lib/suikawiki.pl
Suika

Diff of /suikawiki/script/lib/suikawiki.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.28 by wakaba, Fri Mar 12 04:54:37 2004 UTC revision 1.29 by wakaba, Sat Mar 20 03:33:29 2004 UTC
# Line 61  our $VERSION = do{my @r=(q$Revision$=~/\ Line 61  our $VERSION = do{my @r=(q$Revision$=~/\
61    
62    $_->($WIKI) for our @Config;    $_->($WIKI) for our @Config;
63    
64    ## -- Setting Upper Bound for Too Many Accesses at the Same Time --
65    
66    {
67      require SuikaWiki::DB::Util::Lock;
68      my $lock = SuikaWiki::DB::Util::Lock
69                   ->new (-directory => $WIKI->{config}->{path_to}->{db__lock__dir},
70                          -name => 'main',
71                          -share => 1,
72                          -limit => 15);
73      $lock->lock or do {
74        require SuikaWiki::Output::HTTP;
75        my $out = SuikaWiki::Output::HTTP->new;
76        $out->{status_code} = 503;
77        $out->{status_phrase} = q<WikiEngine Busy>;
78        $out->add_header_field ('Retry-After' => 120);
79        $out->{entity}->{media_type} = q<text/html>;
80        $out->{entity}->{charset} = q<iso-8859-1>;
81        $out->{entity}->{language} = [q<en>];
82        $out->{entity}->{body_is_octet_stream} = 1;
83        my $wiki_name_version = sprintf '%s/%s %s/%s',
84                                $WIKI->{driver_name}, $WIKI->{driver_version},
85                                $WIKI->{engine_name}, $WIKI->{engine_version};
86        for ($wiki_name_version) {
87          s/&/&amp;/g; s/</&lt;/g; s/([^\x20-\x7E])/sprintf '&#x%02X;', ord $1/ge;
88        };
89        $out->{entity}->{body} = qq<
90          <!DOCTYPE html SYSTEM>
91          <title>503 WikiEngine Busy</title>
92          <h1>WikiEngine Busy</h1>
93          <p>WikiEngine is now busy and is unable to complete your request.
94          Please retry again after a moment.</p>
95          <address>$wiki_name_version</address>
96        >;
97        $out->output (output => 'http-cgi');
98        exit;
99      };
100      END { $lock->unlock }
101    }
102    
103  ## -- Loading Modules --  ## -- Loading Modules --
104    
105    use SuikaWiki::DB::Util::Error;    use SuikaWiki::DB::Util::Error;
# Line 229  sub main::code_convert { Line 268  sub main::code_convert {
268      my $wiki = shift;      my $wiki = shift;
269      ## Database access mode      ## Database access mode
270      $wiki->{var}->{db}->{read_only}->{'#default'} = 1;      $wiki->{var}->{db}->{read_only}->{'#default'} = 1;
271        $wiki->{var}->{db}->{lock_module}->{'#default'}
272          = q<SuikaWiki::DB::Util::Lock>;
273        $wiki->{var}->{db}->{read_lock_module}->{'#default'}
274          = q<SuikaWiki::DB::Lock::NoLock>;
275            
276      ## Input parameter      ## Input parameter
277      require SuikaWiki::Input::HTTP;      require SuikaWiki::Input::HTTP;

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24