streams/mod/_well_known.php

55 lines
1.3 KiB
PHP
Raw Normal View History

<?php
function _well_known_init(&$a){
if(argc() > 1) {
$arr = array('server' => $_SERVER, 'request' => $_REQUEST);
call_hooks('well_known', $arr);
switch(argv(1)) {
2012-11-11 07:26:12 +00:00
case 'zot-info':
$a->argc -= 1;
array_shift($a->argv);
$a->argv[0] = 'zfinger';
require_once('mod/zfinger.php');
zfinger_init($a);
break;
case 'webfinger':
$a->argc -= 1;
array_shift($a->argv);
$a->argv[0] = 'wfinger';
require_once('mod/wfinger.php');
wfinger_init($a);
break;
case 'host-meta':
$a->argc -= 1;
array_shift($a->argv);
$a->argv[0] = 'hostxrd';
require_once('mod/hostxrd.php');
hostxrd_init($a);
break;
2014-03-25 23:44:19 +00:00
default:
// look in $WEBROOT/well_known for the requested file in case it is
// something a site requires and for which we do not have a module
// @fixme - we may need to determine the content-type and stick it in the header
// for now this can be done with a php script masquerading as the requested file
$wk_file = str_replace('.well-known','well_known',$a->cmd);
if(file_exists($wk_file)) {
echo file_get_contents($wk_file);
killme();
}
elseif(file_exists($wk_file . '.php'))
require_once($wk_file . '.php');
2014-03-25 23:44:19 +00:00
break;
}
}
http_status_exit(404);
}