summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2007-10-27 14:29:27 +0000
committerAndreas Brachold <vdr07@deltab.de>2007-10-27 14:29:27 +0000
commit1973a994d9306d206bde1e73e7779a1ca73943c4 (patch)
tree60600b8ae0200a633583aa8eedead9ee74fafa8b /lib
parent5c70d02c4b72f4a3384d0b053a8f99e894f0b734 (diff)
downloadxxv-1973a994d9306d206bde1e73e7779a1ca73943c4.tar.gz
xxv-1973a994d9306d206bde1e73e7779a1ca73943c4.tar.bz2
* HTTPD Add method HEAD
* HTTPD(Ajax) Calc sended bytes * RECORDS: redit - Display warning message if recording none exist
Diffstat (limited to 'lib')
-rw-r--r--lib/XXV/MODULES/HTTPD.pm10
-rw-r--r--lib/XXV/MODULES/RECORDS.pm8
-rw-r--r--lib/XXV/OUTPUT/Ajax.pm17
-rw-r--r--lib/XXV/OUTPUT/Html.pm48
4 files changed, 51 insertions, 32 deletions
diff --git a/lib/XXV/MODULES/HTTPD.pm b/lib/XXV/MODULES/HTTPD.pm
index bfde57a..914bcd7 100644
--- a/lib/XXV/MODULES/HTTPD.pm
+++ b/lib/XXV/MODULES/HTTPD.pm
@@ -322,10 +322,11 @@ sub communicator
if($data->{Query});
$data->{Referer} =~ s/%([a-f0-9][a-f0-9])/pack("C", hex($1))/ieg
if($data->{Referer});
- # Log like Apache Format ip, resolved hostname, user, request, status, bytes, referer, useragent
- lg sprintf('%s - %s "%s%s" %s %s "%s" "%s"',
+ # Log like Apache Format ip, resolved hostname, user, method request, status, bytes, referer, useragent
+ lg sprintf('%s - %s "%s %s%s" %s %s "%s" "%s"',
$ip,
$data->{username} ? $data->{username} : "-",
+ $data->{Method},
$data->{Request} ? $data->{Request} : "",
$data->{Query} ? "?" . $data->{Query} : "",
$console->{'header'},
@@ -400,8 +401,9 @@ sub parseRequest {
}
$data->{Request} =~ s/%([a-f0-9][a-f0-9])/pack("C", hex($1))/ieg
- if($data->{Request});
- if($data->{Method} eq 'GET') {
+ if($data->{Request});
+ if($data->{Method} eq 'GET'
+ or $data->{Method} eq 'HEAD') {
#dumper($data);
return $data;
} elsif($data->{Method} eq 'POST') {
diff --git a/lib/XXV/MODULES/RECORDS.pm b/lib/XXV/MODULES/RECORDS.pm
index c39cf96..f0e44c0 100644
--- a/lib/XXV/MODULES/RECORDS.pm
+++ b/lib/XXV/MODULES/RECORDS.pm
@@ -1534,9 +1534,11 @@ WHERE
AND ( r.RecordMD5 = ? )
|;
my $sth = $obj->{dbh}->prepare($sql);
- $sth->execute($recordid)
- or return $console->err(sprintf(gettext("Recording '%s' does not exist in the database!"),$recordid));
- $rec = $sth->fetchrow_hashref();
+ if($sth->execute($recordid)) {
+ $rec = $sth->fetchrow_hashref()
+ }
+ return $console->err(sprintf(gettext("Recording '%s' does not exist in the database!"),$recordid))
+ unless($rec);
}
my $file = sprintf("%s/info.vdr", $rec->{Path});
diff --git a/lib/XXV/OUTPUT/Ajax.pm b/lib/XXV/OUTPUT/Ajax.pm
index c5ce83d..3c5d6e4 100644
--- a/lib/XXV/OUTPUT/Ajax.pm
+++ b/lib/XXV/OUTPUT/Ajax.pm
@@ -130,19 +130,26 @@ sub printout {
my $obj = shift || return error('No object defined!');
my $nopack = shift || $obj->{nopack} || 0;
-
- my $content .= ($obj->{outtype} eq 'xml'
+ my $content;
+ if($obj->{browser}->{Method} ne 'HEAD') {
+ $content = ($obj->{outtype} eq 'xml'
? $obj->{xml}->XMLout($obj->{output})
:
( $obj->{outtype} eq 'json'
? $obj->{json}->objToJson ($obj->{output}, {pretty => 1, indent => 2})
: $obj->{output}->{DATA})
);
- # Kompress
- $content = Compress::Zlib::memGzip($content)
+ # compress data
+ $content = Compress::Zlib::memGzip($content)
if(! $nopack and $obj->{Zlib} and $obj->{browser}->{accept_gzip});
+ }
- $obj->{handle}->print($obj->{output_header}, $content);
+ $obj->{handle}->print($obj->{output_header});
+ $obj->{sendbytes}+= length($obj->{output_header});
+ if($content) {
+ $obj->{handle}->print($content);
+ $obj->{sendbytes}+= length($content);
+ }
undef $obj->{output};
undef $obj->{output_header};
diff --git a/lib/XXV/OUTPUT/Html.pm b/lib/XXV/OUTPUT/Html.pm
index a3189ed..15e58b9 100644
--- a/lib/XXV/OUTPUT/Html.pm
+++ b/lib/XXV/OUTPUT/Html.pm
@@ -329,14 +329,19 @@ sub printout {
my $nopack = shift || $obj->{nopack} || 0;
if($obj->{output} && $obj->{handle}) {
- my $content = $obj->{output};
+ my $content;
+ if($obj->{browser}->{Method} ne 'HEAD') {
+ $content = $obj->{output};
- $content = Compress::Zlib::memGzip($content)
- if(! $nopack and $obj->{Zlib} and $obj->{browser}->{accept_gzip});
-
- $obj->{handle}->print($obj->{output_header}, $content);
+ $content = Compress::Zlib::memGzip($content)
+ if(! $nopack and $obj->{Zlib} and $obj->{browser}->{accept_gzip});
+ }
+ $obj->{handle}->print($obj->{output_header});
$obj->{sendbytes}+= length($obj->{output_header});
- $obj->{sendbytes}+= length($content);
+ if($content) {
+ $obj->{handle}->print($content);
+ $obj->{sendbytes}+= length($content);
+ }
$obj->{handle}->close();
}
undef $obj->{output};
@@ -655,22 +660,25 @@ sub datei {
local $SIG{'__DIE__'};
my $hdr = $obj->header($typ, \%args);
-
- my $r = 0;
- if(sysopen( FH, $file, O_RDONLY|O_BINARY )) {
+ if($obj->{browser}->{Method} eq 'HEAD') {
$handle->print($hdr);
-
- my $bytes;
- my $data;
- do {
- $bytes = sysread( FH, $data, 4096 );
- if($bytes) {
- $r = $handle->send($data);
- }
- } while $r && $bytes > 0;
- close(FH);
} else {
- error sprintf("Could not open file '%s'! : %s", $file,$!);
+ my $r = 0;
+ if(sysopen( FH, $file, O_RDONLY|O_BINARY )) {
+ $handle->print($hdr);
+
+ my $bytes;
+ my $data;
+ do {
+ $bytes = sysread( FH, $data, 4096 );
+ if($bytes) {
+ $r = $handle->send($data);
+ }
+ } while $r && $bytes > 0;
+ close(FH);
+ } else {
+ error sprintf("Could not open file '%s'! : %s", $file,$!);
+ }
}
$handle->close();
};