Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F224825
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/bin/modcss.php b/bin/modcss.php
index 993153994..3ee1e2310 100644
--- a/bin/modcss.php
+++ b/bin/modcss.php
@@ -1,69 +1,87 @@
<?php
/*
+-----------------------------------------------------------------------+
| bin/modcss.php |
| |
| This file is part of the RoundCube Webmail client |
| Copyright (C) 2007-2009, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
| Modify CSS source from a URL |
| |
+-----------------------------------------------------------------------+
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
$Id$
*/
define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/');
require INSTALL_PATH . 'program/include/iniset.php';
$RCMAIL = rcmail::get_instance();
-$source = "";
-if (!empty($RCMAIL->user->ID) && ($url = preg_replace('/[^a-z0-9.-_\?\$&=%]/i', '', $_GET['u'])))
-{
- $a_uri = parse_url($url);
- $port = $a_uri['port'] ? $a_uri['port'] : 80;
- $host = $a_uri['host'];
- $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '');
+$source = '';
+$error = 'Requires a valid user session and source url';
+if (empty($RCMAIL->user->ID)) {
+ header('HTTP/1.1 403 Forbidden');
+ echo $error;
+ exit;
+}
+
+$url = preg_replace('/[^a-z0-9.-_\?\$&=%]/i', '', $_GET['u']);
+if ($url === null) {
+ header('HTTP/1.1 403 Forbidden');
+ echo $error;
+ exit;
+}
- if ($fp = fsockopen($host, $port, $errno, $errstr, 30))
- {
- $out = "GET $path HTTP/1.0\r\n";
- $out .= "Host: $host\r\n";
- $out .= "Connection: Close\r\n\r\n";
- fwrite($fp, $out);
+$a_uri = parse_url($url);
+$port = $a_uri['port'] ? $a_uri['port'] : 80;
+$host = $a_uri['host'];
+$path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '');
- $header = true;
- while (!feof($fp))
- {
- $line = trim(fgets($fp, 4048));
-
- if ($header && preg_match('/^HTTP\/1\..\s+(\d+)/', $line, $regs) && intval($regs[1]) != 200)
- break;
- else if (empty($line) && $header)
- $header = false;
- else if (!$header)
- $source .= "$line\n";
- }
- fclose($fp);
- }
+if (!($fp = fsockopen($host, $port, $errno, $errstr, 30))) {
+ header('HTTP/1.1 500 Internal Server Error');
+ echo $error;
+ exit;
}
-if (!empty($source))
-{
- header("Content-Type: text/css");
- echo rcmail_mod_css_styles($source, preg_replace('/[^a-z0-9]/i', '', $_GET['c']), $url);
+$out = "GET $path HTTP/1.0\r\n";
+$out .= "Host: $host\r\n";
+$out .= "Connection: Close\r\n\r\n";
+fwrite($fp, $out);
+
+$header = true;
+while (!feof($fp)) {
+ $line = trim(fgets($fp, 4048));
+
+ if ($header
+ && preg_match('/^HTTP\/1\..\s+(\d+)/', $line, $regs)
+ && intval($regs[1]) != 200) {
+ break;
+ } else if (empty($line) && $header) {
+ $header = false;
+ } else if (!$header) {
+ $source .= "$line\n";
+ }
+ fclose($fp);
}
-else {
- header("HTTP/1.0 404 Not Found");
- echo "Requires a valid user session and source url";
+
+if (!empty($source)) {
+ header('Content-Type: text/css');
+ echo rcmail_mod_css_styles(
+ $source,
+ preg_replace('/[^a-z0-9]/i', '', $_GET['c']),
+ $url
+ );
+ exit;
}
-?>
+header('HTTP/1.0 404 Not Found');
+echo $error;
+exit;
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Mar 1, 12:38 PM (1 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
167009
Default Alt Text
(3 KB)
Attached To
Mode
R3 roundcubemail
Attached
Detach File
Event Timeline
Log In to Comment