summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@server-speed.net>2011-02-02 17:13:57 +0100
committerFlorian Pritz <bluewind@server-speed.net>2011-02-02 17:13:57 +0100
commit2a199313e8d795b24d8da3ddd3237354237b9308 (patch)
tree91afc922bb750137a47976cf4bc35836ebe2016b
parent09f888c18b9d6194d243d265b68bca4e5ae5a475 (diff)
fix bug when using client to download
Do not check the client version when downloading because this breaks curl. Probably because we output and later set HTTP headers in file_mod->download(). Signed-off-by: Florian Pritz <bluewind@server-speed.net>
-rw-r--r--application/controllers/file.php8
-rw-r--r--application/models/file_mod.php11
2 files changed, 15 insertions, 4 deletions
diff --git a/application/controllers/file.php b/application/controllers/file.php
index 7d97913f2..f8a19f88d 100644
--- a/application/controllers/file.php
+++ b/application/controllers/file.php
@@ -20,10 +20,6 @@ class File extends CI_Controller {
// official client uses "fb-client/$version" as useragent
if (strpos($_SERVER['HTTP_USER_AGENT'], 'fb-client') !== false) {
- $client_version = substr($_SERVER['HTTP_USER_AGENT'], 10);
- if ($this->var->latest_client != $client_version) {
- echo "Your are using an old client version. Latest is ".$this->var->latest_client."\n";
- }
$this->var->cli_client = "fb-client";
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'libcurl') !== false) {
$this->var->cli_client = "curl";
@@ -43,6 +39,7 @@ class File extends CI_Controller {
} elseif ($id != "file" && $this->file_mod->id_exists($id)) {
$this->file_mod->download();
} elseif ($this->var->cli_client) {
+ $this->file_mod->check_client_version();
die("No upload or unknown ID requested.\n");
} elseif ($id && $id != "file") {
$this->file_mod->non_existent();
@@ -86,6 +83,7 @@ class File extends CI_Controller {
// Allow users to delete IDs if their password matches the one used when uploading
function delete()
{
+ $this->file_mod->check_client_version();
$data = array();
$id = $this->uri->segment(3);
$password = $this->file_mod->get_password();
@@ -127,6 +125,7 @@ class File extends CI_Controller {
// XXX: this is too vulnerable to bots
function do_paste()
{
+ $this->file_mod->check_client_version();
// FIXME: disable until bot problem is really fixed
return $this->upload_form();
@@ -165,6 +164,7 @@ class File extends CI_Controller {
// TODO: merge with do_paste()
function do_upload()
{
+ $this->file_mod->check_client_version();
$data = array();
$extension = $this->input->post('extension');
// TODO: Display nice error for cli clients
diff --git a/application/models/file_mod.php b/application/models/file_mod.php
index 4737efa0e..f781e1676 100644
--- a/application/models/file_mod.php
+++ b/application/models/file_mod.php
@@ -147,6 +147,17 @@ class File_mod extends CI_Model {
$this->load->view('file/footer', $data);
}
+ function check_client_version()
+ {
+ if ($this->var->cli_client == "fb-client") {
+ $client_version = substr($_SERVER['HTTP_USER_AGENT'], 10);
+ if ($this->var->latest_client != $client_version) {
+ echo "Your are using an old client version. Latest is ".$this->var->latest_client."\n";
+ }
+ }
+
+ }
+
// download a given ID
// TODO: make smaller
function download()