2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-03 16:56:54 +00:00

10_ZWave.pm: security_classes/classes change (Forum #38587)

git-svn-id: https://svn.fhem.de/fhem/trunk@9774 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2015-11-04 11:17:22 +00:00
parent 320799100d
commit 6d9f1dad48

View File

@ -1985,7 +1985,48 @@ ZWave_secSupported($$)
$zwave_id2class{lc($sec_classId)} : "UNKNOWN_".lc($sec_classId);
}
$attr{$name}{secure_classes} = join(" ", @sec_classes)
if (@sec_classes && !$attr{$name}{secure_classes});
if (@sec_classes);
}
# Add new secure_classes to classes if not already present
# Needed for classes that are only supported with SECURITY
if ($attr{$name}{secure_classes} && $attr{$name}{classes}) {
my $classes = $attr{$name}{classes};
my $secure_classes = $attr{$name}{secure_classes};
my $c1;
my $c2;
my $s1;
my $s2;
my $classname;
if ($classes =~ m/(.*)(MARK)(.*)/) {
($c1, $c2) = ($1, $2 . $3);
} else {
($c1, $c2) = ($classes, "");
}
if ($secure_classes =~ m/(.*)(MARK)(.*)/) {
($s1, $s2) = ($1, $2 . $3);
} else {
($s1, $s2) = ($secure_classes, "");
}
foreach $classname (split(" ", $s1)) {
if ($c1 !~ m/$classname/) {
$c1 = join (" ", $c1, $classname);
}
}
foreach $classname (split(" ", $s2)) {
if ($c2 !~ m/$classname/) {
$c2 = join (" ", $c2, $classname);
}
}
$classes = join (" ", $c1, $c2);
$classes =~ s/ +/ /gs;
$attr{$name}{classes} = $classes;
}
if ($iodev->{secInitName} && $hash->{secStatus}) {