From a371566d4507d10596fee5d4a065664c4a1b157b Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Tue, 19 Mar 2019 07:35:06 +0000 Subject: [PATCH] 93_Log2Syslog: contrib 5.5.0 git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@18968 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- contrib/DS_Starter/93_Log2Syslog.pm | 102 ++++++++++++++++++++++++++-- 1 file changed, 98 insertions(+), 4 deletions(-) diff --git a/contrib/DS_Starter/93_Log2Syslog.pm b/contrib/DS_Starter/93_Log2Syslog.pm index 960ce9a8f..8fd7183f7 100644 --- a/contrib/DS_Starter/93_Log2Syslog.pm +++ b/contrib/DS_Starter/93_Log2Syslog.pm @@ -40,6 +40,7 @@ eval "use Net::Domain qw(hostname hostfqdn hostdomain domainname);1" or my $Mis # Versions History intern: our %Log2Syslog_vNotesIntern = ( + "5.5.0" => "18.03.2019 integrate Meta.pm ", "5.4.0" => "17.03.2019 new feature parseProfile = Automatic ", "5.3.2" => "08.02.2019 fix version numbering ", "5.3.1" => "21.10.2018 get of FQDN changed ", @@ -265,7 +266,10 @@ sub Log2Syslog_Initialize($) { "rateCalcRerun ". $readingFnAttributes ; -return undef; + + FHEM::Meta::InitMod( __FILE__, $hash ); # für Meta.pm (https://forum.fhem.de/index.php/topic,97589.0.html) + +return; } ############################################################################### @@ -317,7 +321,6 @@ sub Log2Syslog_Define($@) { } $hash->{SEQNO} = 1; # PROCID in IETF, wird kontinuierlich hochgezählt - $hash->{VERSION} = (reverse sort(keys %Log2Syslog_vNotesIntern))[0]; $logInform{$hash->{NAME}} = "Log2Syslog_fhemlog"; # Funktion die in hash %loginform für $name eingetragen wird $hash->{HELPER}{SSLVER} = "n.a."; # Initialisierung @@ -326,6 +329,9 @@ sub Log2Syslog_Define($@) { $hash->{HELPER}{OLDSEQNO} = $hash->{SEQNO}; # Init Sequenznummer f. Ratenbestimmung $hash->{HELPER}{OLDSTATE} = "initialized"; + # Versionsinformationen setzen + Log2Syslog_setVersionInfo($hash); + readingsBeginUpdate($hash); readingsBulkUpdate($hash, "SSL_Version", "n.a."); readingsBulkUpdate($hash, "SSL_Algorithm", "n.a."); @@ -1820,7 +1826,7 @@ sub Log2Syslog_setpayload ($$$$$$) { my $IETFver = 1; # Version von syslog Protokoll Spec RFC5424 my $mid = "FHEM"; # message ID, identify protocol of message, e.g. for firewall filter my $tim = $date."T".$time; - my $sdfield = "[version\@Log2Syslog version=\"$hash->{VERSION}\"]"; + my $sdfield = "[version\@Log2Syslog version=\"$hash->{HELPER}{VERSION}\"]"; $otp = Encode::encode_utf8($otp); # Längenbegrenzung nach RFC5424 @@ -2004,6 +2010,41 @@ sub Log2Syslog_sortVersion (@){ return @sorted; } +################################################################ +# Versionierungen des Moduls setzen +# Die Verwendung von Meta.pm und Packages wird berücksichtigt +################################################################ +sub Log2Syslog_setVersionInfo($) { + my ($hash) = @_; + my $name = $hash->{NAME}; + + my $v = (sortTopicNum("desc",keys %Log2Syslog_vNotesIntern))[0]; + my $type = $hash->{TYPE}; + $hash->{HELPER}{PACKAGE} = __PACKAGE__; + $hash->{HELPER}{VERSION} = $v; + + if($modules{$type}{META}{x_prereqs_src}) { + # META-Daten sind vorhanden + $modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}} + if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: ... $ im Kopf komplett! vorhanden ) + $modules{$type}{META}{x_version} =~ s/1.1.1/(sortTopicNum("desc",keys %Log2Syslog_vNotesIntern))[0]/e; + } else { + $modules{$type}{META}{x_version} = $v; + } + return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: ... $ im Kopf komplett! vorhanden ) + if( __PACKAGE__ eq $type) { + # es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen + # mit {->VERSION()} im FHEMWEB kann Modulversion abgefragt werden + use version 0.77; our $VERSION = FHEM::Meta::Get( $hash, 'version' ); + } + } else { + # herkömmliche Modulstruktur + $hash->{VERSION} = $v; + } + +return; +} + ############################################################################################# # Hint Hash EN ############################################################################################# @@ -2026,7 +2067,7 @@ our %Log2Syslog_vHintsExt_de = ( =pod =item helper -=item summary forward FHEM system logs/events to a syslog server/act as an syslog server +=item summary forward FHEM system logs/events to a syslog server/act as a syslog server =item summary_DE sendet FHEM Logs/Events an Syslog-Server / agiert als Syslog-Server =begin html @@ -3406,4 +3447,57 @@ $CONT = (split(">",$CONT))[1] if($CONT =~ /^<.*>.*$/); =end html_DE + +=for :application/json;q=META.json 93_Log2Syslog.pm +{ + "abstract": "forward FHEM system logs/events to a syslog server or act as a syslog server itself", + "x_lang": { + "de": { + "abstract": "sendet FHEM Logs/Events an einen Syslog-Server (Sender) oder agiert selbst als Syslog-Server (Collector)" + } + }, + "keywords": [ + "syslog", + "syslog-server", + "syslog-client", + "logging" + ], + "version": "v1.1.1", + "release_status": "stable", + "author": [ + "Heiko Maaz " + ], + "x_fhem_maintainer": [ + "DS_Starter" + ], + "x_fhem_maintainer_github": [ + "nasseeder1" + ], + "prereqs": { + "runtime": { + "requires": { + "FHEM": 5.00918799, + "perl": 5.014, + "TcpServerUtils": 0, + "Scalar::Util": 0, + "Encode": 0, + "IO::Socket::INET": 0, + "Net::Domain": 0 + }, + "recommends": { + "IO::Socket::SSL": 0 + }, + "suggests": { + } + } + }, + "resources": { + "bugtracker": { + "web": "https://forum.fhem.de/index.php/board,20.0.html", + "x_web_title": "FHEM Forum: Automatisierung" + } + } +} +=end :application/json;q=META.json + =cut