2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-20 13:26:02 +00:00

93_Log2Syslog: contrib 5.8.1

git-svn-id: https://svn.fhem.de/fhem/trunk@19891 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2019-07-23 18:09:03 +00:00
parent a8199b5bb8
commit f4ef819024

View File

@ -41,6 +41,7 @@ eval "use FHEM::Meta;1" or my $modMetaAbsent = 1;
# Versions History intern: # Versions History intern:
our %Log2Syslog_vNotesIntern = ( our %Log2Syslog_vNotesIntern = (
"5.8.1" => "23.07.2019 attribute waitForEOF rename to useEOF, useEOF also for type sender ",
"5.8.0" => "20.07.2019 attribute waitForEOF, solution for Forum: https://forum.fhem.de/index.php/topic,75426.msg958836.html#msg958836 ", "5.8.0" => "20.07.2019 attribute waitForEOF, solution for Forum: https://forum.fhem.de/index.php/topic,75426.msg958836.html#msg958836 ",
"5.7.0" => "20.07.2019 change logging and chomp received data, use raw parse format if automatic mode don't detect a valid format, ". "5.7.0" => "20.07.2019 change logging and chomp received data, use raw parse format if automatic mode don't detect a valid format, ".
"change getifdata tcp stack error handling (if sysread undef)", "change getifdata tcp stack error handling (if sysread undef)",
@ -105,8 +106,8 @@ our %Log2Syslog_vNotesIntern = (
# Versions History extern: # Versions History extern:
our %Log2Syslog_vNotesExtern = ( our %Log2Syslog_vNotesExtern = (
"5.8.0" => "20.07.2019 New attribute \"useParsefilter\" to remove other characters than ASCII from payload before parse it. ". "5.8.1" => "23.07.2019 New attribute \"useParsefilter\" to remove other characters than ASCII from payload before parse it. ".
"New attribute \"waitForEOF\" to parse not till the sender was sending an EOF signal. An bugfix in ". "New attribute \"useEOF\" to parse not till the sender was sending an EOF signal. An bugfix in ".
"parse BSD was implemented if the ID (TAG) is used. Minor other fixes and changes. ", "parse BSD was implemented if the ID (TAG) is used. Minor other fixes and changes. ",
"5.6.0" => "23.03.2019 New attribute \"exclErrCond\" to exclude events from rating as \"Error\" even though the ". "5.6.0" => "23.03.2019 New attribute \"exclErrCond\" to exclude events from rating as \"Error\" even though the ".
"event contains the text \"Error\". ", "event contains the text \"Error\". ",
@ -282,7 +283,7 @@ sub Log2Syslog_Initialize($) {
"TLS:1,0 ". "TLS:1,0 ".
"timeout ". "timeout ".
"useParsefilter:0,1 ". "useParsefilter:0,1 ".
"waitForEOF:1,0 ". "useEOF:1,0 ".
$readingFnAttributes $readingFnAttributes
; ;
@ -605,13 +606,13 @@ sub Log2Syslog_getifdata($$@) {
my $sname = $hash->{SNAME}; my $sname = $hash->{SNAME};
my $cname = $hash->{NAME}; my $cname = $hash->{NAME};
my $shash = $defs{$sname}; # Hash des Log2Syslog-Devices bei temporärer TCP-Serverinstanz my $shash = $defs{$sname}; # Hash des Log2Syslog-Devices bei temporärer TCP-Serverinstanz
my $waitEOF = AttrVal($sname, "waitForEOF", 0); my $uef = AttrVal($sname, "useEOF", 0);
my $tlsv = ReadingsVal($sname,"SSL_Version",''); my $tlsv = ReadingsVal($sname,"SSL_Version",'');
Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - ####################################################### "); Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - ####################################################### ");
Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - ######### new Syslog TCP Receive ######### "); Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - ######### new Syslog TCP Receive ######### ");
Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - ####################################################### "); Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - ####################################################### ");
Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - await EOF: $waitEOF, SSL: $tlsv"); Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - await EOF: $uef, SSL: $tlsv");
Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - childname: $cname"); Log2Syslog_Log3slog ($shash, 4, "Log2Syslog $sname - childname: $cname");
$st = ReadingsVal($sname,"state","active"); $st = ReadingsVal($sname,"state","active");
@ -647,7 +648,7 @@ sub Log2Syslog_getifdata($$@) {
if(!$eof) { if(!$eof) {
$hash->{BUF} .= $buf; $hash->{BUF} .= $buf;
Log2Syslog_Log3slog ($shash, 5, "Log2Syslog $sname - Add $ret chars to buffer:\n$buf") if($waitEOF && !$hash->{SSL}); Log2Syslog_Log3slog ($shash, 5, "Log2Syslog $sname - Add $ret chars to buffer:\n$buf") if($uef && !$hash->{SSL});
} }
if($hash->{SSL} && $c->can('pending')) { if($hash->{SSL} && $c->can('pending')) {
@ -659,7 +660,7 @@ sub Log2Syslog_getifdata($$@) {
$buforun = (length($hash->{BUF}) >= $mlen)?1:0; $buforun = (length($hash->{BUF}) >= $mlen)?1:0;
if(!$waitEOF || $hash->{SSL} || $buforun) { if(!$uef || $hash->{SSL} || $buforun) {
$data = $hash->{BUF}; $data = $hash->{BUF};
delete $hash->{BUF}; delete $hash->{BUF};
$hash = $shash; $hash = $shash;
@ -1541,7 +1542,8 @@ sub Log2Syslog_eventlog($$) {
} }
} }
Log2Syslog_closesock($hash) if($st =~ /^write error:.*/); my $uef = AttrVal($name, "useEOF", 0);
Log2Syslog_closesock($hash) if($st =~ /^write error:.*/ || $uef);
} }
my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1; my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1;
@ -1605,7 +1607,8 @@ sub Log2Syslog_fhemlog($$) {
$st = "write error: $err"; $st = "write error: $err";
} }
Log2Syslog_closesock($hash) if($st =~ /^write error:.*/); my $uef = AttrVal($name, "useEOF", 0);
Log2Syslog_closesock($hash) if($st =~ /^write error:.*/ || $uef);
} }
} }
@ -1658,7 +1661,8 @@ sub Log2Syslog_sendTestMsg($$) {
$st = "write error: $err"; $st = "write error: $err";
} }
Log2Syslog_closesock($hash) if($st =~ /^write error:.*/); my $uef = AttrVal($name, "useEOF", 0);
Log2Syslog_closesock($hash) if($st =~ /^write error:.*/ || $uef);
} }
my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1; my $evt = ($st eq $hash->{HELPER}{OLDSTATE})?0:1;
@ -2905,10 +2909,14 @@ $CONT = (split(">",$CONT))[1] if($CONT =~ /^<.*>.*$/);
<br> <br>
<ul> <ul>
<a name="waitForEOF"></a> <a name="useEOF"></a>
<li><b>waitForEOF</b><br> <li><b>useEOF</b><br>
<br> <br>
No parsing, until the sender has send an EOF signal. If TLS is used, this attribute has no effect. <b>Model Sender (protocol TCP): </b><br>
After every transmission the TCP-connection will be terminated with signal EOF. <br><br>
<b>Model Collector: </b><br>
No parsing until the sender has send an EOF signal. If TLS is used, this attribute has no effect.
<br> <br>
<br> <br>
@ -3647,10 +3655,14 @@ $CONT = (split(">",$CONT))[1] if($CONT =~ /^<.*>.*$/);
<br> <br>
<ul> <ul>
<a name="waitForEOF"></a> <a name="useEOF"></a>
<li><b>waitForEOF</b><br> <li><b>useEOF</b><br>
<br> <br>
Es wird mit dem Parsing gewartet bis der Sender ein EOF Signal gesendet hat. Wird TLS verwendet, hat dieses Attribut <b>Model Sender (Protokoll TCP): </b><br>
Nach jedem Sendevorgang wird eine TCP-Verbindung mit EOF beendet. <br><br>
<b>Model Collector: </b><br>
Es wird mit dem Parsing gewartet, bis der Sender ein EOF Signal gesendet hat. Wird TLS verwendet, hat dieses Attribut
keine Auswirkung. keine Auswirkung.
<br> <br>
<br> <br>