--- 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;