next up previous contents
Next: Listing von sub_sets.pl Up: Listings zum Subagenten Previous: Listing von mib_sets.pl

Listing von sub_gets.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