--- lib/PXElator/httpd.pm 2010/01/25 18:30:47 493
+++ lib/PXElator/httpd.pm 2010/10/09 12:38:00 543
@@ -293,7 +293,15 @@
my ( $s1,$s2 ) = ( ' class=z', '' );
my @cols;
- store::query( sub {
+ my $from_t = $param->{from_t};
+
+ my $q;
+ $q->{'package.time'} = { '$lt' => $from_t * 1 } if $from_t;
+# $q->{'package.name'} = { '$ne' => 'syslogd' };
+ $q->{'package.name'} = { '$ne' => 'dhcpd' };
+# $q->{'package.name'} = { '$ne' => [ 'dhcpd', 'dnsd' ] };
+ $q->{'tag'} = { '$ne' => 'CRON' };
+ store::query( $q, sub {
my $o = shift;
my $p = delete( $o->{package} );
delete( $o->{_id} );
@@ -316,8 +324,11 @@
, qq|\n|
;
( $s1, $s2 ) = ( $s2, $s1 );
+ $from_t = $p->{time};
});
- print $client qq||;
+ print $client qq||,
+ qq|more|
+ ;
} elsif ( $path =~ m!^/client(?:/$RE{net}{IPv4}{-keep})?! ) {
my $ip = $1;
@@ -351,13 +362,19 @@
if ( $ip && $ip ne $server::ip ) {
- my @editable = ( qw/hostname config homepage/ );
-
- client::conf( $ip, $_ => $param->{$_} ) foreach @editable;
-
my $conf = client::all_conf( $ip );
my $config = delete $conf->{config};
+ my @editable = ( qw/hostname config homepage/ );
+ # add params with config prefix if config exists
+ push @editable, grep { m{^\Q$config\E} } keys %$conf if $config;
+ my @update = grep { defined $param->{$_} } @editable;
+ if ( @update ) {
+ client::conf( $ip, $_ => $param->{$_} ) foreach @update;
+ print $client redirect("$url/client/$ip");
+ return;
+ }
+
my $nmap = qq|nmap|;
my @table = (
'ping' => ping::host($ip)
@@ -413,7 +430,9 @@
my $mac = delete $conf->{mac} || '';
my $dev = $arp->{$mac};
- next unless $dev || $param->{all};
+ my $in_dhcp_range = ip::in_dhcp_range($ip);
+
+ next unless $dev || $param->{all} || $in_dhcp_range;
my $style
= 'style="color:'
@@ -423,7 +442,7 @@
$style ||= '';
my $ip_text = qq|$ip|;
- $ip_text = qq|$ip| if ip::in_dhcp_range($ip);
+ $ip_text = qq|$ip| if $in_dhcp_range;
$dev = qq|$dev| if $dev;