!C99Shell v. 1.0 pre-release build #16!

Software: Apache/2.0.54 (Fedora). PHP/5.0.4 

uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 

uid=48(apache) gid=48(apache) groups=48(apache)
context=system_u:system_r:httpd_sys_script_t
 

Safe-mode: OFF (not secure)

/usr/libexec/webmin/smart-status/   drwxr-xr-x
Free 3.82 GB of 27.03 GB (14.12%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     status_monitor.pl (4.03 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |

do 'smart-status-lib.pl';

# status_monitor_list()
# Just one type is supported
sub status_monitor_list
{
if (&has_command($config{'smartctl'})) {
    return ( [ "smart", $text{'monitor_type'} ],
         [ "wearout", $text{'monitor_type2'} ] );
    }
else {
    return ( );
    }
}

# status_monitor_status(type, &monitor, from-ui)
# Check the drive status
sub status_monitor_status
{
local ($type, $mon, $ui) = @_;

local @drives = &list_smart_disks_partitions();
local ($d) = grep { ($_->{'device'} eq $mon->{'drive'} ||
             $_->{'id'} eq $mon->{'drive'}) &&
            $_->{'subdisk'} eq $mon->{'subdisk'} } @drives;
if (!$d) {
    # Not in list?!
    return { 'up' => -1,
         'desc' => $text{'monitor_nosuch'} };
    }
local $st = &get_drive_status($d->{'device'}, $d);

if (!$st->{'support'} || !$st->{'enabled'}) {
    # SMART not enabled on device
    return { 'up' => -1,
         'desc' => $text{'monitor_nosmart'} };
    }

if ($type eq "wearout") {
    # Check SSD wear level
    local $wo;
    foreach my $a (@{$st->{'attribs'}}) {
        if ($a->[0] eq "Media Wearout Indicator") {
            $wo = $a;
            last;
            }
        }
    if (!$wo) {
        return { 'up' => -1,
                 'desc' => $text{'monitor_nowearout'} };
        }
    if ($wo->[3] < $mon->{'wearlevel'}) {
        return { 'up' => 0,
             'desc' => &text('monitor_wornout', $wo->[3]),
             'value' => $wo->[3] };
        }
    else {
        return { 'up' => 1,
             'value' => $wo->[3] };
        }
    }
else {
    # Record number of errors since last time
    local %errors;
    local $errors_file = "$module_config_directory/last-errors";
    &read_file($errors_file, \%errors);
    local %lasterrors = %errors;
    $errors{$mon->{'drive'}} = $st->{'errors'};
    &write_file($errors_file, \%errors);

    # Check for errors
    if (!$st->{'check'}) {
        # Check failed
        return { 'up' => 0 };
        }
    elsif ($st->{'errors'} && $mon->{'errors'} == 1) {
        # Errors found, and failing on any errors
        return { 'up' => 0,
             'value' => $st->{'errors'},
             'desc' => &text('monitor_errorsfound', $st->{'errors'}) };
        }
    elsif ($st->{'errors'} && $mon->{'errors'} == 2 &&
           $st->{'errors'} > $lasterrors{$mon->{'drive'}}) {
        # Errors found and have increased
        return { 'up' => 0,
             'value' => $st->{'errors'},
             'desc' => &text('monitor_errorsinced', $st->{'errors'},
                     $lasterrors{$mon->{'drive'}}) };
        }
    else {
        # All OK!
        return { 'up' => 1,
             'value' => $st->{'errors'} };
        }
    }
}

# status_monitor_dialog(type, &monitor)
# Return form for selecting a drive
sub status_monitor_dialog
{
local ($type, $mon) = @_;
local $rv;
local @drives = &list_smart_disks_partitions();
local ($inlist) = grep { ($_->{'device'} eq $mon->{'drive'} ||
              $_->{'id'} eq $mon->{'drive'}) &&
                 $_->{'subdisk'} eq $mon->{'subdisk'} } @drives;
$inlist = 1 if (!$mon->{'drive'});
$rv .= &ui_table_row($text{'monitor_drive'},
      &ui_select("drive",
         !$mon->{'drive'} ? $drives[0]->{'device'} :
         $inlist ? ($inlist->{'id'} || $inlist->{'device'}).':'.
                 $inlist->{'subdisk'} :
               undef,
         [ (map { [ ($_->{'id'} || $_->{'device'}).':'.$_->{'subdisk'},
               $_->{'desc'}.($_->{'model'} ?
                " ($_->{'model'})" : "") ] } @drives),
           [ "", $text{'monitor_other'} ] ]).
      &ui_textbox("other", $inlist ? "" : $mon->{'drive'}, 15), 3);

if ($type eq "wearout") {
    $rv .= &ui_table_row($text{'monitor_wearlevel'},
        &ui_textbox("wearlevel", $mon->{'wearlevel'} || 10, 5)."%");
    }
else {
    $rv .= &ui_table_row($text{'monitor_errors'},
        &ui_radio("errors", $mon->{'errors'} || 0,
            [ [ 1, $text{'yes'} ], [ 0, $text{'no'} ],
              [ 2, $text{'monitor_errorsinc'} ] ]));
    }
return $rv;
}

# status_monitor_parse(type, &monitor, &in)
# Parse form for selecting a rule
sub status_monitor_parse
{
local ($type, $mon, $in) = @_;
if ($in->{'drive'}) {
    ($mon->{'drive'}, $mon->{'subdisk'}) = split(/:/, $in->{'drive'});
    }
else {
    $mon->{'drive'} = $in->{'other'};
    $mon->{'subdisk'} = undef;
    $mon->{'drive'} =~ /^\S+$/ || &error($text{'monitor_edrive'});
    }
if ($type eq "wearout") {
    $in->{'wearlevel'} =~ /^\d+(\.\d+)?$/ ||
        &error($text{'monitor_ewearlevel'});
    $mon->{'wearlevel'} = $in->{'wearlevel'};
    }
else {
    $mon->{'errors'} = $in->{'errors'};
    }
}

1;


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0029 ]--