diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2007-12-02 07:02:43 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2007-12-02 07:02:43 +0000 |
| commit | 06ca688c86ff96d96fd4346f7f20efb60ab769cc (patch) | |
| tree | 29dd440524c05f2d75faf9fea79bb430ca8f1f18 /lib | |
| parent | 1fa6b8846c9dee8bf249bcb12f425d4c712a412f (diff) | |
| download | xxv-06ca688c86ff96d96fd4346f7f20efb60ab769cc.tar.gz xxv-06ca688c86ff96d96fd4346f7f20efb60ab769cc.tar.bz2 | |
* Fix: display 'panic' message
* Fix: Warn if requested modul is'nt loaded
* HTTPD: Show 'Internal Server Error' if requested modul is'nt loaded
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Tools.pm | 8 | ||||
| -rw-r--r-- | lib/XXV/MODULES/HTTPD.pm | 87 |
2 files changed, 69 insertions, 26 deletions
diff --git a/lib/Tools.pm b/lib/Tools.pm index 155de0a..97a483d 100644 --- a/lib/Tools.pm +++ b/lib/Tools.pm @@ -132,7 +132,7 @@ sub lg { sub debug { # ------------------ my $msg = shift; - &_msg(250,$msg, 3); + &_msg(250,$msg, 4); return undef; } @@ -144,7 +144,7 @@ sub event { my ($package, $filename, $line, $subroutine) = caller(1); &{$LOGCALLB}($module, $subroutine, $msg); - &_msg(270,$msg, 2); + &_msg(270,$msg, 3); return undef; } @@ -153,7 +153,7 @@ sub error { # ------------------ my $msg = shift; - &_msg(501,$msg, 1); + &_msg(501,$msg, 2); return undef; } @@ -163,7 +163,7 @@ sub panic { # ------------------ my $msg = shift; - &_msg(550,$msg, 0); + &_msg(550,$msg, 1); return undef; } diff --git a/lib/XXV/MODULES/HTTPD.pm b/lib/XXV/MODULES/HTTPD.pm index 914bcd7..19a04c0 100644 --- a/lib/XXV/MODULES/HTTPD.pm +++ b/lib/XXV/MODULES/HTTPD.pm @@ -285,20 +285,36 @@ sub communicator my $request = $data->{Request}; if($request =~ /epgimages\//) { my $epgMod = main::getModule('EPG'); - $request =~ s/.*epgimages\//$epgMod->{epgimages}\//; - $console->datei($request, $typ); + if($epgMod) { + $request =~ s/.*epgimages\//$epgMod->{epgimages}\//; + $console->datei($request, $typ); + } else { + $obj->ModulNotLoaded($console,'EPG'); + } } elsif($request =~ /previewimages\//) { my $recMod = main::getModule('RECORDS'); - $request =~ s/.*previewimages\//$recMod->{previewimages}\//; - $console->datei($request, $typ); + if($recMod) { + $request =~ s/.*previewimages\//$recMod->{previewimages}\//; + $console->datei($request, $typ); + } else { + $obj->ModulNotLoaded($console,'RECORDS'); + } } elsif($request =~ /coverimages\//) { my $musicMod = main::getModule('MUSIC'); - $request =~ s/.*coverimages\//$musicMod->{coverimages}\//; - $console->datei($request, $typ); + if($musicMod) { + $request =~ s/.*coverimages\//$musicMod->{coverimages}\//; + $console->datei($request, $typ); + } else { + $obj->ModulNotLoaded($console,'MUSIC'); + } } elsif($request =~ /vtximages\//) { my $vtxMod = main::getModule('VTX'); - $request =~ s/.*vtximages\//$obj->{paths}->{VTXPATH}\//; - $console->datei($request, $typ); + if($vtxMod) { + $request =~ s/.*vtximages\//$obj->{paths}->{VTXPATH}\//; + $console->datei($request, $typ); + } else { + $obj->ModulNotLoaded($console,'VTX'); + } } elsif($request =~ /tempimages\//) { my $tmp = $userMod->userTmp; $request =~ s/.*tempimages\//$tmp\//; @@ -314,6 +330,8 @@ sub communicator $console->footer() unless($console->typ eq 'AJAX' or $console->{noFooter}); } + } else { + $obj->ModulNotLoaded($console,'USER'); } $console->printout(); @@ -421,6 +439,17 @@ sub parseRequest { } } +# ------------------ +sub ModulNotLoaded { +# ------------------ + my $obj = shift || return error('No object defined!'); + my $console = shift || return error('No console defined!'); + my $modul = shift || return error('No modul defined!'); + + $console->statusmsg(500, + ,sprintf(gettext("Modul '%s' is'nt loaded!"),$modul), + ,gettext("Internal Server Error")); +} # ------------------ sub handleInput { @@ -454,16 +483,18 @@ sub handleInput { # Test the command on exists, permissions and so on my $u = main::getModule('USER'); - my ($cmdobj, $cmdname, $shorterr, $err) = $u->checkCommand($console, $ucmd); - $console->{call} = $cmdname; - if($cmdobj and not $shorterr) { - $console->{CMDSTAT} = $cmdobj->{callback}($watcher, $console, $udata, $result ); - } elsif($shorterr eq 'noperm' or $shorterr eq 'noactive') { - $console->status403($err); - $console->{CMDSTAT} = undef; + if($u) { + my ($cmdobj, $cmdname, $shorterr, $err) = $u->checkCommand($console, $ucmd); + $console->{call} = $cmdname; + if($cmdobj and not $shorterr) { + $cmdobj->{callback}($watcher, $console, $udata, $result ); + } elsif($shorterr eq 'noperm' or $shorterr eq 'noactive') { + $console->status403($err); + } else { + $obj->usage($watcher, $console, undef, $err); + } } else { - $obj->usage($watcher, $console, undef, $err); - $console->{CMDSTAT} = undef; + $obj->ModulNotLoaded($console,'USER'); } } @@ -471,7 +502,18 @@ sub handleInput { sub usage { # ------------------ my $obj = shift || return error('No object defined!'); - return main::getModule('CONFIG')->usage(@_); + my $watcher = shift || return error('No watcher defined!'); + my $console = shift || return error('No console defined!'); + my $modulename = shift; + my $hint = shift; + + my $m = main::getModule('CONFIG'); + if ($m){ + return $m->usage($watcher,$console,$modulename,$hint); + } else { + $obj->ModulNotLoaded($console,'CONFIG'); + } + } # ------------------ @@ -537,10 +579,11 @@ sub unzip { } $gz->gzclose(); - - my $tmpfile = sprintf('%s/gz_%d.tmp', main::getModule('USER')->userTmp, time); - - return save_file($tmpfile, $text); + my $u = main::getModule('USER'); + if($u) { + my $tmpfile = sprintf('%s/gz_%d.tmp', $u->userTmp, time); + return save_file($tmpfile, $text); + } } |
