} else { header('HTTP/1.0 501 Not Implemented'); exit; } } else { $serverType = 'soap'; } if ($serverType == 'soap' && (!isset($_SERVER['REQUEST_METHOD']) || $_SERVER['REQUEST_METHOD'] != 'POST')) { if (isset($_GET['wsdl'])) { $params = 'wsdl'; } else { $params = 'disco'; } } /* Load the RPC backend based on $serverType. */ $server =& Horde_RPC::singleton($serverType); /* Let the backend check authentication. By default, we look for HTTP * basic authentication against Horde, but backends can override this * as needed. */ $server->authorize(); /* Get the server's response. We call $server->getInput() to allow * backends to handle input processing differently. */ if ($input === null) { $input = $server->getInput(); } $out = $server->getResponse($input, $params); /* Return the response to the client. */ header('Content-Type: ' . $server->getResponseContentType()); header('Content-length: ' . strlen($out)); header('Accept-Charset: UTF-8'); echo $out;