forked from movabletype/movabletype
-
Notifications
You must be signed in to change notification settings - Fork 1
/
mt-xmlrpc.cgi
executable file
·64 lines (55 loc) · 1.73 KB
/
mt-xmlrpc.cgi
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
#!/usr/bin/perl -w
# Movable Type (r) (C) 2001-2018 Six Apart, Ltd. All Rights Reserved.
# This code cannot be redistributed without permission from www.sixapart.com.
# For more information, consult your Movable Type license.
#
# $Id$
use strict;
my $MT_DIR;
sub BEGIN {
require File::Spec;
if ( !( $MT_DIR = $ENV{MT_HOME} ) ) {
if ( $0 =~ m!(.*[/\\])! ) {
$MT_DIR = $1;
}
else {
$MT_DIR = './';
}
$ENV{MT_HOME} = $MT_DIR;
}
unshift @INC, File::Spec->catdir( $MT_DIR, 'lib' );
unshift @INC, File::Spec->catdir( $MT_DIR, 'extlib' );
}
use XMLRPC::Transport::HTTP;
use XMLRPC::Transport::HTTP::FCGI;
use MT::XMLRPCServer;
$MT::XMLRPCServer::MT_DIR = $MT_DIR;
use vars qw($server);
{
## Shut off warnings, because SOAP::Lite 0.55 causes some
## unitialized value warnings that seem to be connected to
## the soap->action
local $SIG{__WARN__} = sub { };
my $not_fast_cgi = 0;
$not_fast_cgi ||= exists $ENV{$_}
for qw(HTTP_HOST GATEWAY_INTERFACE SCRIPT_FILENAME SCRIPT_URL);
$server
= $not_fast_cgi
? XMLRPC::Transport::HTTP::CGI->new
: do {
# Avoid imitating nph- cgi for IIS in SOAP::Transport::HTTP::CGI,
# because imitating makes some HTTP status code incorrect.
{
my $handle = \&SOAP::Transport::HTTP::CGI::handle;
no warnings;
*SOAP::Transport::HTTP::CGI::handle = sub {
local $ENV{SERVER_SOFTWARE};
$handle->(@_);
};
}
MT::XMLRPCServer::Util::mt_new;
XMLRPC::Transport::HTTP::FCGI->new;
};
$server->dispatch_to( 'blogger', 'metaWeblog', 'mt', 'wp' );
$server->handle;
}