--- File.orig 2009-11-20 11:34:03.000000000 +0000 +++ File.php 2009-11-20 11:33:01.000000000 +0000 @@ -70,10 +70,12 @@ function saveNew($redir_data, $given_url) { $x = new File; $x->url = $given_url; - if (!empty($redir_data['protected'])) $x->protected = $redir_data['protected']; - if (!empty($redir_data['title'])) $x->title = $redir_data['title']; - if (!empty($redir_data['type'])) $x->mimetype = $redir_data['type']; - if (!empty($redir_data['size'])) $x->size = intval($redir_data['size']); + if (preg_match('/^(https?|ftp):/i', $x->url)) { + if (!empty($redir_data['protected'])) $x->protected = $redir_data['protected']; + if (!empty($redir_data['title'])) $x->title = $redir_data['title']; + if (!empty($redir_data['type'])) $x->mimetype = $redir_data['type']; + if (!empty($redir_data['size'])) $x->size = intval($redir_data['size']); + } if (isset($redir_data['time']) && $redir_data['time'] > 0) $x->date = intval($redir_data['time']); $file_id = $x->insert(); --- File_redirection.orig 2009-11-20 11:21:46.000000000 +0000 +++ File_redirection.php 2009-11-20 11:27:19.000000000 +0000 @@ -162,7 +162,11 @@ return null; } - function _canonUrl($in_url, $default_scheme = 'http://') { + function _canonUrl($in_url, $default_scheme = 'AUTO') { + if ($default_scheme == 'AUTO') { + $default_scheme = (strstr($in_url, '@')===FALSE)?'http://':'mailto:'; + } + if (empty($in_url)) return false; $out_url = $in_url; $p = parse_url($out_url);