Friendica Communications Platform (please note that this is a clone of the repository at github, issues are handled there)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
951 B

namespace Friendica\Module\WellKnown;
use Friendica\BaseModule;
use Friendica\Core\Renderer;
use Friendica\Protocol\Salmon;
use Friendica\Util\Crypto;
* Prints the metadata for describing this host
* @see
class HostMeta extends BaseModule
public static function rawContent($parameters)
$app = self::getApp();
$config = $app->getConfig();
header('Content-type: text/xml');
if (!$config->get('system', 'site_pubkey', false)) {
$res = Crypto::newKeypair(1024);
$config->set('system', 'site_prvkey', $res['prvkey']);
$config->set('system', 'site_pubkey', $res['pubkey']);
$tpl = Renderer::getMarkupTemplate('xrd_host.tpl');
echo Renderer::replaceMacros($tpl, [
'$zhost' => $app->getHostName(),
'$zroot' => $app->getBaseURL(),
'$domain' => $app->getBaseURL(),
'$bigkey' => Salmon::salmonKey($config->get('system', 'site_pubkey'))