use Friendica\Core\System;
use Friendica\Core\Config;
use Friendica\Network\Probe;
-use Friendica\Object\Photo;
+use Friendica\Object\Image;
use Friendica\Util\XML;
/**
if (x($opts, 'timeout')) {
@curl_setopt($ch, CURLOPT_TIMEOUT, $opts['timeout']);
} else {
- $curl_time = intval(Config::get('system', 'curl_timeout'));
- @curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60));
+ $curl_time = Config::get('system', 'curl_timeout', 60);
+ @curl_setopt($ch, CURLOPT_TIMEOUT, intval($curl_time));
}
// by default we will allow self-signed certs
$a->set_curl_code($http_code);
$a->set_curl_content_type($curl_info['content_type']);
- $body = substr($s, strlen($header));
-
$rc = intval($http_code);
$ret['return_code'] = $rc;
$ret['success'] = (($rc >= 200 && $rc <= 299) ? true : false);
if (intval($timeout)) {
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
} else {
- $curl_time = intval(Config::get('system', 'curl_timeout'));
- curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60));
+ $curl_time = Config::get('system', 'curl_timeout', 60);
+ curl_setopt($ch, CURLOPT_TIMEOUT, intval($curl_time));
}
if (defined('LIGHTTPD')) {
* 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;
function allowed_email($email)
{
$domain = strtolower(substr($email, strpos($email, '@') + 1));
- if (! $domain) {
+ if (!$domain) {
return false;
}
- $str_allowed = Config::get('system', 'allowed_email');
- if (! $str_allowed) {
+ $str_allowed = Config::get('system', 'allowed_email', '');
+ if (!x($str_allowed)) {
return true;
}
- $found = false;
-
- $fnmatch = function_exists('fnmatch');
$allowed = explode(',', $str_allowed);
- if (count($allowed)) {
- foreach ($allowed as $a) {
- $pat = strtolower(trim($a));
- if (($fnmatch && fnmatch($pat, $domain)) || ($pat == $domain)) {
- $found = true;
- break;
- }
+ return allowed_domain($domain, $allowed);
+}
+
+/**
+ * Checks for the existence of a domain in a domain list
+ *
+ * @brief Checks for the existence of a domain in a domain list
+ * @param string $domain
+ * @param array $domain_list
+ * @return boolean
+ */
+function allowed_domain($domain, array $domain_list)
+{
+ $found = false;
+
+ foreach ($domain_list as $item) {
+ $pat = strtolower(trim($item));
+ if (fnmatch($pat, $domain) || ($pat == $domain)) {
+ $found = true;
+ break;
}
}
+
return $found;
}
$include_link = false;
}
- $a = get_app();
-
// Picture addresses can contain special characters
$s = htmlspecialchars_decode($srctext);
}
// guess mimetype from headers or filename
- $type = Photo::guessImageType($mtch[1], true);
+ $type = Image::guessType($mtch[1], true);
if ($i) {
- $ph = new Photo($i, $type);
- if ($ph->isValid()) {
- $orig_width = $ph->getWidth();
- $orig_height = $ph->getHeight();
+ $Image = new Image($i, $type);
+ if ($Image->isValid()) {
+ $orig_width = $Image->getWidth();
+ $orig_height = $Image->getHeight();
if ($orig_width > 640 || $orig_height > 640) {
- $ph->scaleImage(640);
- $new_width = $ph->getWidth();
- $new_height = $ph->getHeight();
+ $Image->scaleDown(640);
+ $new_width = $Image->getWidth();
+ $new_height = $Image->getHeight();
logger('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], LOGGER_DEBUG);
$s = str_replace(
$mtch[0],
$stamp1 = microtime(true);
- $siteinfo = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
- $header = curl_exec($ch);
+ curl_exec($ch);
$curl_info = @curl_getinfo($ch);
$http_code = $curl_info['http_code'];
curl_close($ch);
if (@$attr["http-equiv"] == 'refresh') {
$path = $attr["content"];
$pathinfo = explode(";", $path);
- $content = "";
foreach ($pathinfo as $value) {
if (substr(strtolower($value), 0, 4) == "url=") {
return(original_url(substr($value, 4), ++$depth));
}
}
- return($url);
+ return $url;
}
function short_link($url)