2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-22 20:24:36 +00:00

74_Nmap: added path-attribute handling

git-svn-id: https://svn.fhem.de/fhem/trunk@13804 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
igami 2017-03-26 06:13:34 +00:00
parent 303caf7a7a
commit 041660b72d

View File

@ -220,6 +220,9 @@ sub Nmap_Attr(@) {
readingsSingleUpdate($hash, ".knownHosts", $knownHosts, 0); readingsSingleUpdate($hash, ".knownHosts", $knownHosts, 0);
} }
elsif($attribute eq "path"){
$hash->{PATH} = $cmd eq "set" ? $value : "/usr/bin/nmap";
}
return if(IsDisabled($SELF)); return if(IsDisabled($SELF));
@ -280,6 +283,7 @@ sub Nmap_statusRequest($) {
sub Nmap_blocking_statusRequest($) { sub Nmap_blocking_statusRequest($) {
my ($SELF) = @_; my ($SELF) = @_;
my ($hash) = $defs{$SELF}; my ($hash) = $defs{$SELF};
my $TYPE = $hash->{TYPE};
my @ret = $SELF; my @ret = $SELF;
my $NP = new Nmap::Parser; my $NP = new Nmap::Parser;
my $path = my $path =
@ -289,10 +293,18 @@ sub Nmap_blocking_statusRequest($) {
my $excludeHosts = AttrVal($SELF, "excludeHosts", undef); my $excludeHosts = AttrVal($SELF, "excludeHosts", undef);
my $args = $hash->{ARGS}; my $args = $hash->{ARGS};
$args .= " --exclude $excludeHosts" if($excludeHosts); $args .= " --exclude $excludeHosts" if($excludeHosts);
my $STDERR = "";
open(STDERR, ">", "/dev/null"); close STDERR;
open(STDERR, ">", \$STDERR);
$NP->parsescan($path, $args, $hash->{DEF}); $NP->parsescan($path, $args, $hash->{DEF});
close (STDERR);
Log3($SELF, 4, "$TYPE ($SELF) - $_")
foreach(split( "\n", $STDERR));
my $NPS = $NP->get_session(); my $NPS = $NP->get_session();
push(@ret, $NPS->nmap_version()); push(@ret, $NPS->nmap_version());
@ -512,7 +524,7 @@ sub Nmap_updateUptime($$;$) {
$uptime = ( $uptime = (
ReadingsVal($SELF, $metaReading."_uptime", 0) ReadingsVal($SELF, $metaReading."_uptime", 0)
+ ReadingsAge($SELF, $metaReading."_uptime", 0) + ReadingsAge($SELF, $metaReading."_uptime", 0)
) unless($uptime); ) unless(defined($uptime));
my $s = $uptime; my $s = $uptime;
my $d = int($s / 86400); my $d = int($s / 86400);