]> git.mxchange.org Git - friendica.git/commitdiff
Make validate_url more intuitive
authorHypolite Petovan <mrpetovan@gmail.com>
Sun, 17 Dec 2017 00:23:22 +0000 (19:23 -0500)
committerHypolite Petovan <mrpetovan@gmail.com>
Sat, 30 Dec 2017 02:55:13 +0000 (21:55 -0500)
- Remove the parameter passed by reference
- Add modified url in return value

include/identity.php
include/network.php
mod/dfrn_request.php
mod/settings.php
src/Model/User.php

index 79bfe3830b0ca6f4d8c188adba8763ea54f925e3..9c315efbdeaecc6f6998d219057ca8f1a2e9b965 100644 (file)
@@ -932,11 +932,12 @@ function get_my_url()
 
 function zrl_init(App $a)
 {
-       $tmp_str = get_my_url();
-       if (validate_url($tmp_str)) {
+       $my_url = get_my_url();
+       $my_url = validate_url($my_url);
+       if ($my_url) {
                // Is it a DDoS attempt?
                // The check fetches the cached value from gprobe to reduce the load for this system
-               $urlparts = parse_url($tmp_str);
+               $urlparts = parse_url($my_url);
 
                $result = Cache::get("gprobe:" . $urlparts["host"]);
                if ((!is_null($result)) && (in_array($result["network"], array(NETWORK_FEED, NETWORK_PHANTOM)))) {
@@ -944,8 +945,8 @@ function zrl_init(App $a)
                        return;
                }
 
-               Worker::add(PRIORITY_LOW, 'GProbe', $tmp_str);
-               $arr = array('zrl' => $tmp_str, 'url' => $a->cmd);
+               Worker::add(PRIORITY_LOW, 'GProbe', $my_url);
+               $arr = array('zrl' => $my_url, 'url' => $a->cmd);
                call_hooks('zrl_init', $arr);
        }
 }
index 16c8185e1abb48b0fec1ada966fe06a0e9ffce35..be5519d5c6d68de20da80c827247374d87682e9f 100644 (file)
@@ -470,26 +470,28 @@ function http_status_exit($val, $description = array())
  * and check DNS to see if it's real (or check if is a valid IP address)
  *
  * @param string $url The URL to be validated
- * @return boolean True if it's a valid URL, fals if something wrong with it
+ * @return string|boolean The actual working URL, false else
  */
-function validate_url(&$url)
+function validate_url($url)
 {
        if (Config::get('system', 'disable_url_validation')) {
-               return true;
+               return $url;
        }
 
        // no naked subdomains (allow localhost for tests)
-       if (strpos($url, '.') === false && strpos($url, '/localhost/') === false)
+       if (strpos($url, '.') === false && strpos($url, '/localhost/') === false) {
                return false;
+       }
 
-       if (substr($url, 0, 4) != 'http')
+       if (substr($url, 0, 4) != 'http') {
                $url = 'http://' . $url;
+       }
 
-       /// @TODO Really supress function outcomes? Why not find them + debug them?
+       /// @TODO Really suppress function outcomes? Why not find them + debug them?
        $h = @parse_url($url);
 
        if ((is_array($h)) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
-               return true;
+               return $url;
        }
 
        return false;
index ec675865617b49d2d35f7fa8e0021117a478c16f..04ed71a6b4371da7f9578fc7c2a3bfce13efb835 100644 (file)
@@ -377,7 +377,8 @@ function dfrn_request_post(App $a) {
                                );
                        }
                        else {
-                               if (! validate_url($url)) {
+                               $url = validate_url($url);
+                               if (! $url) {
                                        notice( t('Invalid profile URL.') . EOL);
                                        goaway(System::baseUrl() . '/' . $a->cmd);
                                        return; // NOTREACHED
index e3d650e089de6d10fa0f54d2dbca23353b9a2cbf..f9482289d75c78e6f709c530dfd84f74b51436fa 100644 (file)
@@ -537,10 +537,9 @@ function settings_post(App $a) {
        // If openid has changed or if there's an openid but no openidserver, try and discover it.
 
        if ($openid != $a->user['openid'] || (strlen($openid) && (!strlen($openidserver)))) {
-               $tmp_str = $openid;
-               if (strlen($tmp_str) && validate_url($tmp_str)) {
+               if (strlen($tmp_str) && validate_url($openid)) {
                        logger('updating openidserver');
-                       require_once('library/openid.php');
+                       require_once 'library/openid.php';
                        $open_id_obj = new LightOpenID;
                        $open_id_obj->identity = $openid;
                        $openidserver = $open_id_obj->discover($open_id_obj->identity);
index f487de7661821b72af445d27b676935d342cf652..99222f52292e3a910b5a79d0b1bc10afbf0ff1c5 100644 (file)
@@ -198,8 +198,6 @@ class User
                        $password = $password1;
                }
 
-               $tmp_str = $openid_url;
-
                if ($using_invites) {
                        if (!$invite_id) {
                                throw new Exception(t('An invitation is required.'));
@@ -212,7 +210,7 @@ class User
 
                if (!x($username) || !x($email) || !x($nickname)) {
                        if ($openid_url) {
-                               if (!validate_url($tmp_str)) {
+                               if (!validate_url($openid_url)) {
                                        throw new Exception(t('Invalid OpenID url'));
                                }
                                $_SESSION['register'] = 1;
@@ -235,7 +233,7 @@ class User
                        throw new Exception(t('Please enter the required information.'));
                }
 
-               if (!validate_url($tmp_str)) {
+               if (!validate_url($openid_url)) {
                        $openid_url = '';
                }