Next: Listing von sub_sets.pl
Up: Listings zum Subagenten
Previous: Listing von mib_sets.pl
################################################################
# get_Tabelle Funktion fuer Uebergabe der Tabelle;
# Parameter: InstID
# Rueckgabe: Wert einer Variablen aus der Tabelle
################################################################
sub get_Tabelle
{
# Uebernahme der Parameter
local($InstID)=@_;
# Lokale Variablen
local($Wert,@Wert,$ZeilenNr,$VarNr);
##################################################
# Welche Tabellenspalte(=VarNr) und welche Zeile
$ZeilenNr= substr($InstID,rindex($InstID,'.')+1);
$InstID = substr($InstID,0,rindex($InstID,'.'));
$VarNr= substr($InstID,rindex($InstID,'.')+1);
$InstID = substr($InstID,0,rindex($InstID,'.'));
#################################################
# Falls noetig, Tabelle in den Speicher holen
if (!keys(%Links))
{
print "Erstelle Tabelle\n";
# Falls Tabelle noch nicht im Speicher ex.
if(!open(LOGERR,$ErrLog))
{
return("Konnte Fehler-Log-Datei nicht oeffnen!");
}
while (<LOGERR>)
{
if (/^Intern --:/)
{
$Beschreibung = substr($_,11);
$Zeile =substr($Beschreibung,index($Beschreibung,";")+1);
$Index =substr($Beschreibung,0,index($Beschreibung,";"));
$Links{$Index}=$Zeile;
}
else
{
next;
}
}
close (LOGERR);
@Links = keys(%Links);
}
#################################################
# Ausgeben des gewuenschten Tabelleneintrags
if ($VarNr == 1)
{ # Falls Index
$Wert = $Links[$ZeilenNr];
}
else
{ # Falls kein Indexfeld
$Zeile = $Links{$Links[$ZeilenNr]};
@Wert = split(/;/,$Zeile);
$Wert = $Wert[$VarNr-2]; # -2, da von 0 gezaehlt und Index extra
}
##################################################
# Falls es eine naechste Zeile in der Tabelle gibt,
# die noch nicht in der internen MIB aufgenommen ist,
# aufnehmen
if ($Links[$ZeilenNr+1] && !($MIB{$InstID.'.'.$VarNr.'.'.($ZeilenNr+1)}))
{ # Falls Folgezeile ex. nimm Sie in MIB auf
$MIB{$InstID.'.'.$VarNr.'.'.($ZeilenNr+1)}=$MIB{$InstID.'.'.$VarNr.'.'."0"};
@MIB = sort by_hierarchy keys(%MIB); # sortierte Liste der MIB-Variablen
}
return($Wert); # wert zurueckgeben
}
#######################################################################
# get Funktion zum Bestimmen der jeweiligen Variablen aus der ini.Datei
# Parameter : Nummer der Variablen
# Rueckgabe : Typ der Variablen, vgl. rfc1592 Tab. 17, aber hex
# Wert der Variablen
#######################################################################
sub get
{
# Uebernahme des Parameters
local($InstID) = @_;
# Lokale Variablen
local($Fehler);
$Fehler = undef;
# Oeffnen der Ini-Datei
if(!open(INIDATEI,$IniDatei))
{
$Fehler="Konnte Initialisierungsdatei $IniDatei nicht oeffnen!";
}
if ($InstID eq '1.0')
{
$Ausdruck = '\[NACHRICHT_AN\]=';
$Wert = "Fehler"; # Um Fehler zu erkennen
}
elsif ($InstID eq '2.0')
{
$Ausdruck = '\[WWW_SERVER\]=';
$Wert = "Fehler"; # Um Fehler zu erkennen
}
elsif ($InstID eq '3.0')
{
$Ausdruck = '\[TOP_LINK\]=';
$Wert = "Fehler"; # Um Fehler zu erkennen
}
elsif ($InstID eq '4.0')
{
$Ausdruck = '\[MAX_LINKS\]=';
$Wert = "0"; # Um Fehler zu erkennen
}
elsif ($InstID eq '5.0')
{
$Ausdruck = '\[BETREUER_TAG\]=';
$Wert = "Fehler"; # Um Fehler zu erkennen
}
elsif ($InstID eq '6.0')
{
$Ausdruck = '\[BETREUER_ADRESSE\]=';
$Wert = "Fehler"; # Um Fehler zu erkennen
}
elsif ($InstID eq '7.0')
{
$Ausdruck = '\[ENDUNGEN\]=';
$Wert = "Fehler"; # Um Fehler zu erkennen
}
elsif ($InstID eq '8.0')
{
$Ausdruck = '\[NACHRICHT\]=';
$Wert = "Fehler"; # Um Fehler zu erkennen
}
else
{
$Fehler = 0;
}
########################################################
# Parsen der Ini-Datei nach dem gesuchten Eintrag
while(<INIDATEI>)
{
if (/^((\s*#)|(\s+))/) # Falls Kommentar- oder Leerzeile:
{
next; # ueberspringen
}
elsif (/$Ausdruck/)
{
/=(.*?);/;
$Wert = $1;
last;
}
}
close(INIDATEI);
if (!$Fehler)
{
return($Wert);
}
else
{
return($Fehler);
}
}
################################################################
# get_9 Funktion den Nachricht-Text an Instanz 9;
# Rueckgabe : Wert der Variablen
################################################################
sub get_9
{
if(!open(INIDATEI,$IniDatei))
{
$Fehler="Konnte Initialisierungsdatei $IniDatei nicht oeffnen!";
}
while(<INIDATEI>) # Durchsuche ini.Datei
{
$INI=$_;
if ($InNachrichtText eq "Ja")
{
if ($INI=~s/>>;//) # Falls Endezeichen zu Text in der Zeile enthalten,
{ # loesche dieses und ...
$Wert9 = join("\n",$Wert9,$INI);
$InNachrichtText = "Nein";
next;
}
else
{
$Wert9 = join("\n",$Wert9,$INI);
next;
}
}
if ($INI=~/^((\s*#)|(\s+))/) # Falls Kommentar- oder Leerzeile:
{
next; # ueberspringen
}
elsif ($INI=~/\[NACHRICHT_TEXT\]=<<(.*)/) # Hole 1. Zeile des Mailtextes
{
$Wert9 = $1;
$InNachrichtText = "Ja";
next;
}
}
close(INIDATEI);
return($Wert9);
}
################################################################
# get_99 Funktion fuer die Kontroll-Variable an Instanz 99;
# Rueckgabe: Wert der Variablen
################################################################
sub get_99
{
return($Wert{'99.0'});
}
1;
Copyright Munich Network Management Team