54 lines
1.7 KiB
Perl
54 lines
1.7 KiB
Perl
|
|
# This code was forked from the LiveJournal project owned and operated
|
||
|
|
# by Live Journal, Inc. The code has been modified and expanded by
|
||
|
|
# Dreamwidth Studios, LLC. These files were originally licensed under
|
||
|
|
# the terms of the license supplied by Live Journal, Inc, which can
|
||
|
|
# currently be found at:
|
||
|
|
#
|
||
|
|
# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt
|
||
|
|
#
|
||
|
|
# In accordance with the original license, this code and all its
|
||
|
|
# modifications are provided under the GNU General Public License.
|
||
|
|
# A copy of that license can be found in the LICENSE file included as
|
||
|
|
# part of this distribution.
|
||
|
|
|
||
|
|
# This is a module for handling URIs
|
||
|
|
use strict;
|
||
|
|
|
||
|
|
package LJ::URI;
|
||
|
|
use Apache2::Const qw/ :common REDIRECT HTTP_NOT_MODIFIED
|
||
|
|
HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY
|
||
|
|
M_TRACE M_OPTIONS /;
|
||
|
|
|
||
|
|
# Takes an Apache $apache_r and a path to BML filename relative to htdocs
|
||
|
|
sub bml_handler {
|
||
|
|
my ( $class, $apache_r, $filename ) = @_;
|
||
|
|
|
||
|
|
$apache_r->handler("perl-script");
|
||
|
|
$apache_r->notes->{bml_filename} = "$LJ::HTDOCS/$filename";
|
||
|
|
$apache_r->push_handlers( PerlHandler => \&Apache::BML::handler );
|
||
|
|
return OK;
|
||
|
|
}
|
||
|
|
|
||
|
|
# Handle a URI. Returns response if success, undef if not handled
|
||
|
|
# Takes URI and Apache $apache_r
|
||
|
|
sub handle {
|
||
|
|
my ( $class, $uri, $apache_r ) = @_;
|
||
|
|
|
||
|
|
return undef unless $uri;
|
||
|
|
|
||
|
|
# handle "RPC" URIs
|
||
|
|
if ( my ($rpc) = $uri =~ m!^.*/__rpc_(\w+)$! ) {
|
||
|
|
my $bml_handler_path = $LJ::AJAX_URI_MAP{$rpc};
|
||
|
|
|
||
|
|
return LJ::URI->bml_handler( $apache_r, $bml_handler_path )
|
||
|
|
if $bml_handler_path;
|
||
|
|
}
|
||
|
|
|
||
|
|
# handle normal URI mappings -- removed, unused
|
||
|
|
# handle URI redirects -- removed, also unused
|
||
|
|
|
||
|
|
return undef;
|
||
|
|
}
|
||
|
|
|
||
|
|
1;
|