コード例 #1
0
ファイル: ping.php プロジェクト: rair/yacs
                }
            }
            break;
            // ping an external reference to some page on this site
        // ping an external reference to some page on this site
        case 'weblogUpdates.ping':
            list($label, $url) = $parameters['params'];
            // caller has been banned
            if ($_SERVER['REMOTE_HOST'] && ($server = Servers::get($_SERVER['REMOTE_HOST']) && $server['process_ping'] != 'Y')) {
                $response = array('flerror' => 49, 'message' => 'Access denied');
            } elseif (preg_match('/\\b(127\\.0\\.0\\.1|localhost)\\b/', $url)) {
                $response = array('flerror' => 1, 'message' => 'We don\'t accept local references ' . $url);
            } elseif (($content = http::proceed($url)) === FALSE && ($content = http::proceed($url . '/')) === FALSE) {
                $response = array('flerror' => 1, 'message' => 'Cannot read source address ' . $url);
            } else {
                $response = Servers::ping(strip_tags($label), $url);
                if ($response) {
                    Logger::remember('services/ping.php: failing ping', $response, 'debug');
                    $response = array('flerror' => 1, 'message' => $response);
                } else {
                    $response = array('flerror' => 0, 'message' => 'Thanks for the ping');
                }
            }
            break;
        default:
            $response = array('faultCode' => 1, 'faultString' => 'Do not know how to process ' . $parameters['methodName']);
            Logger::remember('services/ping.php: ping unsupported methodName', $parameters, 'debug');
    }
}
// no response yet
if (!isset($response)) {