$registry = ipsRegistry::instance(); $registry->init(); IPSCookie::$sensitive_cookies = array('session_id', 'ipb_admin_session_id', 'member_id', 'pass_hash'); //-------------------------------- // Set up our vars //-------------------------------- $registry->DB()->obj['use_shutdown'] = 0; //-------------------------------- // Set debug mode //-------------------------------- $registry->DB()->setDebugMode(ipsRegistry::$settings['sql_debug'] == 1 ? intval($_GET['debug']) : 0); //=========================================================================== // Create the XML-RPC Server //=========================================================================== require_once IPS_KERNEL_PATH . 'classApiServer.php'; $server = new classApiServer(); $api = $server->decodeRequest(); //=========================================================================== // Define Service //=========================================================================== $valid_api = 0; switch ($api) { case 'blogger': $valid_api = 1; break; case 'metaWeblog': $valid_api = 1; break; } if ($valid_api) { require_once DOC_IPS_ROOT_PATH . 'interface/blog/apis/server_' . strtolower($api) . '.php';
//-------------------------------- // Initialize the FUNC //-------------------------------- if (!ipsRegistry::$settings['ipconverge_enabled']) { @header("Content-type: text/xml"); print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\t\t\t<methodResponse>\n\t\t\t <fault>\n\t\t\t <value>\n\t\t\t <struct>\n\t\t\t <member>\n\t\t\t <name>faultCode</name>\n\t\t\t <value>\n\t\t\t <int>1</int>\n\t\t\t </value>\n\t\t\t </member>\n\t\t\t <member>\n\t\t\t <name>faultString</name>\n\t\t\t <value>\n\t\t\t <string>IP.Converge is not enabled from your ACP Control Panel. Log into your IP.Board ACP and visit: System -> Log In Management, and click the red x icon for the IP.Converge login method to enable it.</string>\n\t\t\t </value>\n\t\t\t </member>\n\t\t\t </struct>\n\t\t\t </value>\n\t\t\t </fault>\n\t\t\t </methodResponse>"; exit; } //=========================================================================== // Define Service //=========================================================================== require_once IPS_KERNEL_PATH . 'classApiServer.php'; //=========================================================================== // Create the XML-RPC Server //=========================================================================== $server = new classApiServer(); $webservice = new handshake_server($registry); $webservice->classApiServer =& $server; $api = $server->decodeRequest(); $server->addObjectMap($webservice, 'UTF-8'); //----------------------------------------- // Saying "info" or actually doing some // work? Info is used by converge app to // ensure this file exists and to grab the // apps name. // Codes: // IPB : Invision Power Board // IPD : Invision Power Dynamic // IPN : Invision Power Nexus //----------------------------------------- if ($_REQUEST['info']) {
//-------------------------------- // Initialize the FUNC //-------------------------------- if (!ipsRegistry::$settings['xmlrpc_enable']) { @header("Content-type: text/xml"); print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\t\t\t<methodResponse>\n\t\t\t <fault>\n\t\t\t <value>\n\t\t\t <struct>\n\t\t\t <member>\n\t\t\t <name>faultCode</name>\n\t\t\t <value>\n\t\t\t <int>1</int>\n\t\t\t </value>\n\t\t\t </member>\n\t\t\t <member>\n\t\t\t <name>faultString</name>\n\t\t\t <value>\n\t\t\t <string>IP.Board's XML-RPC API system is not enabled. Log into your IP.Board ACP and visit: System -> System Settings -> Advanced -> XML-RPC API and update "Enable XML-RPC API System"</string>\n\t\t\t </value>\n\t\t\t </member>\n\t\t\t </struct>\n\t\t\t </value>\n\t\t\t </fault>\n\t\t\t </methodResponse>"; exit; } //=========================================================================== // Define Service //=========================================================================== require_once IPS_KERNEL_PATH . 'classApiServer.php'; //=========================================================================== // Create the XML-RPC Server //=========================================================================== $server = new classApiServer(); $api = $server->decodeRequest(); $module = $server->params['api_module']; $user = IPSText::md5Clean($server->params['api_key']); //----------------------------------------- // Check for module //----------------------------------------- if ($module and file_exists(DOC_IPS_ROOT_PATH . 'interface/board/modules/' . $module . '/api.php')) { require_once DOC_IPS_ROOT_PATH . 'interface/board/modules/' . $module . '/api.php'; $webservice = new API_Server($registry); $webservice->classApiServer =& $server; } else { $server->apiSendError('2', "IP.Board could not locate an API module called '{$module}'"); $registry->DB()->insert('api_log', array('api_log_key' => $user, 'api_log_ip' => $_SERVER['REMOTE_ADDR'], 'api_log_date' => time(), 'api_log_query' => $server->raw_request, 'api_log_allowed' => 0)); exit; }