]> git.mxchange.org Git - friendica.git/blobdiff - mod/hostxrd.php
Fix Issue 5252
[friendica.git] / mod / hostxrd.php
index c7861d26d0d19264a6276c824beef7fea28ee9f2..16f132fe092ff2a871fcc3a0e15fe67cffbe84c6 100644 (file)
@@ -1,11 +1,33 @@
 <?php
+/**
+ * @file mod/hostxrd.php
+ */
+use Friendica\App;
+use Friendica\Core\Config;
+use Friendica\Core\System;
+use Friendica\Protocol\Salmon;
+use Friendica\Util\Crypto;
 
-function hostxrd_init(&$a) {
+function hostxrd_init(App $a)
+{
        header('Access-Control-Allow-Origin: *');
        header("Content-type: text/xml");
-       $tpl = file_get_contents('view/xrd_host.tpl');
-       echo str_replace(array('$zroot','$domain'),array(z_root(),z_path()),$tpl);
-       session_write_close();
-       exit();
+       $pubkey = Config::get('system', 'site_pubkey');
+
+       if (! $pubkey) {
+               $res = Crypto::newKeypair(1024);
+
+               Config::set('system','site_prvkey', $res['prvkey']);
+               Config::set('system','site_pubkey', $res['pubkey']);
+       }
 
-}
\ No newline at end of file
+       $tpl = get_markup_template('xrd_host.tpl');
+       echo replace_macros($tpl, [
+               '$zhost' => $a->get_hostname(),
+               '$zroot' => System::baseUrl(),
+               '$domain' => System::baseUrl(),
+               '$bigkey' => Salmon::salmonKey(Config::get('system', 'site_pubkey'))]
+       );
+
+       exit();
+}