diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2007-09-11 17:44:02 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2007-09-11 17:44:02 +0000 |
| commit | b3afe1bf2625101e8db9400d15f272c2e454b1b5 (patch) | |
| tree | 9b8659f7ede833c7b7ac1507bacabbcb47e64769 /lib | |
| parent | 1ea70eb921caac0ef881c72ac7023fa100835b85 (diff) | |
| download | xxv-b3afe1bf2625101e8db9400d15f272c2e454b1b5.tar.gz xxv-b3afe1bf2625101e8db9400d15f272c2e454b1b5.tar.bz2 | |
* Refactoring HTTPD/TELNET - move command usage (MODUL TELNET now none essential )
* Some little fixes
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/XXV/MODULES/HTTPD.pm | 71 | ||||
| -rw-r--r-- | lib/XXV/MODULES/TELNET.pm | 79 | ||||
| -rw-r--r-- | lib/XXV/MODULES/WAPD.pm | 2 |
3 files changed, 76 insertions, 76 deletions
diff --git a/lib/XXV/MODULES/HTTPD.pm b/lib/XXV/MODULES/HTTPD.pm index 72acbb7..ee0652c 100644 --- a/lib/XXV/MODULES/HTTPD.pm +++ b/lib/XXV/MODULES/HTTPD.pm @@ -107,6 +107,24 @@ sub module { }, }, Commands => { + help => { + description => gettext("This will display all commands or description of module 'name'."), + short => 'h', + callback => sub{ + return $obj->usage(@_); + }, + }, + reload => { + description => gettext("Restart all modules."), + short => 'rel', + callback => sub{ + my ($w, $c, $l) = @_; + $Module::Reload::Debug = 2; + Module::Reload->check; + $c->message(gettext("Modules loaded.")); + }, + Level => 'admin' + }, checkvalue => { hidden => 'yes', callback => sub{ $obj->checkvalue(@_) }, @@ -361,7 +379,7 @@ sub _readline { sub parseRequest { # ------------------ my $obj = shift || return error('No object defined!'); - my $socket = shift || return error('No handle defined!' ); + my $socket = shift || return error('No handle defined!'); my $logout = shift || 0; binmode $socket; @@ -396,7 +414,7 @@ sub parseRequest { } else { #dumper($line); } - $obj->{STATUS}->{'readbytes'} += length($line) if($line); + $obj->{STATUS}->{'readbytes'} += length($line); } $data->{Request} =~ s/%([a-f0-9][a-f0-9])/pack("C", hex($1))/ieg @@ -469,7 +487,54 @@ sub handleInput { sub usage { # ------------------ my $obj = shift || return error('No object defined!'); - return main::getModule('TELNET')->usage(@_); + my $watcher = shift || return error('No watcher defined!'); + my $console = shift || return error('No console defined!'); + my $modulename = shift || 0; + my $hint = shift || ''; + my $user = shift || $console->{USER}; + + my $u = main::getModule('USER'); + unless($user) { + my $loginObj = $obj; + $loginObj = main::getModule('HTTPD') + if ($console->{TYP} eq 'HTML') ; + $loginObj = main::getModule('WAPD') + if ($console->{TYP} eq 'WML') ; + $user = $loginObj->{USER}; + } + + my $ret; + push(@$ret, sprintf(gettext("%sThis is the xxv %s server.\nPlease use the following commands:\n"), + ($hint ? "$hint\n\n" : ''), $console->typ)); + + my $mods = main::getModules(); + my @realModName; + + # Search for command and display the Description + foreach my $modName (sort keys %{$mods}) { + my $modCfg = $mods->{$modName}->{MOD}; + push(@realModName, $mods->{$modName}->{MOD}->{Name}); + next if($modulename and uc($modulename) ne $modCfg->{Name}); + foreach my $cmdName (sort keys %{$modCfg->{Commands}}) { + push(@$ret, + [ + (split('::', $modName))[-1], + $modCfg->{Commands}->{$cmdName}->{short}, + $cmdName, + $modCfg->{Commands}->{$cmdName}->{description}, + ] + ) if(! $modCfg->{Commands}->{$cmdName}->{hidden} and ($u->{active} ne 'y') || $u->allowCommand($modCfg, $cmdName, $user, "1")); + } + } + + $console->menu( + $ret, + { + periods => $mods->{'XXV::MODULES::EPG'}->{periods}, + CHANNELS => $mods->{'XXV::MODULES::CHANNELS'}->ChannelArray('Name'), + CONFIGS => [ sort @realModName ], + }, + ); } # ------------------ diff --git a/lib/XXV/MODULES/TELNET.pm b/lib/XXV/MODULES/TELNET.pm index 7974109..d12fbeb 100644 --- a/lib/XXV/MODULES/TELNET.pm +++ b/lib/XXV/MODULES/TELNET.pm @@ -49,13 +49,6 @@ sub module { }, }, Commands => { - help => { - description => gettext("This will display all commands or description of module 'name'."), - short => 'h', - callback => sub{ - return $obj->usage(@_); - }, - }, quit => { description => gettext("This will exit the telnet session"), short => 'q', @@ -88,17 +81,6 @@ sub module { }, Level => 'admin' }, - reload => { - description => gettext("Restart all modules."), - short => 'rel', - callback => sub{ - my ($w, $c, $l) = @_; - $Module::Reload::Debug = 2; - Module::Reload->check; - $c->message(gettext("Modules loaded.")); - }, - Level => 'admin' - }, }, }; return $args; @@ -247,60 +229,6 @@ sub init { } # ------------------ -sub usage { -# ------------------ - my $obj = shift || return error('No object defined!'); - my $watcher = shift || return error ('No Watcher!'); - my $console = shift || return error ('No Console'); - my $modulename = shift || 0; - my $hint = shift || ''; - my $user = shift || $console->{USER}; - - my $u = main::getModule('USER'); - unless($user) { - my $loginObj = $obj; - $loginObj = main::getModule('HTTPD') - if ($console->{TYP} eq 'HTML') ; - $loginObj = main::getModule('WAPD') - if ($console->{TYP} eq 'WML') ; - $user = $loginObj->{USER}; - } - - my $ret; - push(@$ret, sprintf(gettext("%sThis is the xxv %s server.\nPlease use the following commands:\n"), - ($hint ? "$hint\n\n" : ''), $console->typ)); - - my $mods = main::getModules(); - my @realModName; - - # Search for command and display the Description - foreach my $modName (sort keys %{$mods}) { - my $modCfg = $mods->{$modName}->{MOD}; - push(@realModName, $mods->{$modName}->{MOD}->{Name}); - next if($modulename and uc($modulename) ne $modCfg->{Name}); - foreach my $cmdName (sort keys %{$modCfg->{Commands}}) { - push(@$ret, - [ - (split('::', $modName))[-1], - $modCfg->{Commands}->{$cmdName}->{short}, - $cmdName, - $modCfg->{Commands}->{$cmdName}->{description}, - ] - ) if(! $modCfg->{Commands}->{$cmdName}->{hidden} and ($u->{active} ne 'y') || $u->allowCommand($modCfg, $cmdName, $user, "1")); - } - } - - $console->menu( - $ret, - { - periods => $mods->{'XXV::MODULES::EPG'}->{periods}, - CHANNELS => $mods->{'XXV::MODULES::CHANNELS'}->ChannelArray('Name'), - CONFIGS => [ sort @realModName ], - }, - ); -} - -# ------------------ sub handleInput { # ------------------ my $obj = shift || return error('No object defined!'); @@ -324,4 +252,11 @@ sub handleInput { } } +# ------------------ +sub usage { +# ------------------ + my $obj = shift || return error('No object defined!'); + return main::getModule('HTTPD')->usage(@_); +} + 1; diff --git a/lib/XXV/MODULES/WAPD.pm b/lib/XXV/MODULES/WAPD.pm index 95ca6bf..26966ef 100644 --- a/lib/XXV/MODULES/WAPD.pm +++ b/lib/XXV/MODULES/WAPD.pm @@ -327,7 +327,7 @@ sub handleInput { sub usage { # ------------------ my $obj = shift || return error('No object defined!'); - return main::getModule('TELNET')->usage(@_); + return main::getModule('HTTPD')->usage(@_); } # ------------------ |
