//=========================================================================== // 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'; $webservice = new xmlrpc_server($registry); $webservice->classApiServer =& $server; $server->addObjectMap($webservice, 'UTF-8'); //----------------------------------------- // Process.... //----------------------------------------- $server->getXmlRpc(); } else { $server->apiSendError(100, "Requested API not found"); } exit;
//=========================================================================== // 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; } //----------------------------------------- // Check user... //----------------------------------------- if ($user) { $webservice->api_user = $registry->DB()->buildAndFetch(array('select' => '*', 'from' => 'api_users', 'where' => "api_user_key='" . $user . "'")); if (!$webservice->api_user['api_user_id']) { $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)); $server->apiSendError('3', "IP.Board could not locate a valid API user with that API key"); exit; } } else { $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));