]> git.mxchange.org Git - friendica.git/blobdiff - mod/ostatus_subscribe.php
Avoid beeing flooded by invalid requests
[friendica.git] / mod / ostatus_subscribe.php
index 295ccfee61ebc5072484df6b9880ae133018c89a..ffaa6791f328bdf34f1d770d6929b4dc99aad486 100644 (file)
@@ -5,15 +5,17 @@
 use Friendica\App;
 use Friendica\Core\L10n;
 use Friendica\Core\PConfig;
+use Friendica\Core\Protocol;
 use Friendica\Core\System;
 use Friendica\Model\Contact;
 use Friendica\Network\Probe;
+use Friendica\Util\Network;
 
 function ostatus_subscribe_content(App $a) {
 
        if (! local_user()) {
                notice(L10n::t('Permission denied.') . EOL);
-               goaway($_SESSION['return_url']);
+               goaway('/ostatus_subscribe');
                // NOTREACHED
        }
 
@@ -28,21 +30,24 @@ function ostatus_subscribe_content(App $a) {
        if (PConfig::get($uid, "ostatus", "legacy_friends") == "") {
 
                if ($_REQUEST["url"] == "") {
+                       PConfig::delete($uid, "ostatus", "legacy_contact");
                        return $o.L10n::t("No contact provided.");
                }
 
                $contact = Probe::uri($_REQUEST["url"]);
 
                if (!$contact) {
+                       PConfig::delete($uid, "ostatus", "legacy_contact");
                        return $o.L10n::t("Couldn't fetch information for contact.");
                }
 
                $api = $contact["baseurl"]."/api/";
 
                // Fetching friends
-               $data = z_fetch_url($api."statuses/friends.json?screen_name=".$contact["nick"]);
+               $data = Network::curl($api."statuses/friends.json?screen_name=".$contact["nick"]);
 
                if (!$data["success"]) {
+                       PConfig::delete($uid, "ostatus", "legacy_contact");
                        return $o.L10n::t("Couldn't fetch friends for contact.");
                }
 
@@ -68,8 +73,8 @@ function ostatus_subscribe_content(App $a) {
        $o .= "<p>".$counter."/".$total.": ".$url;
 
        $data = Probe::uri($url);
-       if ($data["network"] == NETWORK_OSTATUS) {
-               $result = Contact::createFromProbe($uid, $url, true, NETWORK_OSTATUS);
+       if ($data["network"] == Protocol::OSTATUS) {
+               $result = Contact::createFromProbe($uid, $url, true, Protocol::OSTATUS);
                if ($result["success"]) {
                        $o .= " - ".L10n::t("success");
                } else {