Next: Listing der Beispiel-Kaskadendatei mib_gets.pl
Up: Listings der Beispiel-Dateien
Previous: Listing von subagent_start
# snmp - Subagent in Perl implementiert
sub Subagent {
########################################################
# Beginn des Hauptprogramms
########################################################
&initial_MIB; # Intialisiere die MIB fuer den Subagenten
# Ermitteln des TCP-Port's, der fuer die DPI-Kommunikation
# mit dem Agenten benutzt werden soll.
$Port = &qDPIport;
print "Port:$Port\n";
# Ueber den ermittelten Port eine TCP-Verbindung zum Agenten
# aufbauen (fuer die DPI-Kommunikation) => Handle: DPI_Anschluss
&TCPConnect($Port);
# Oeffnen der DPI-Verbindung
&DPI_Open;
sleep 1;
# Registrieren des Teilbaums
&DPI_Register;
#--------------------------------------------------------------
# Warten auf eine Anfrage
while(TRUE) # Warten auf DPI-Anfragen des Agenten
{
recv(DPI_Anschluss,$Laenge,2,0);
$Laenge = unpack("n",$Laenge);
recv(DPI_Anschluss,$dpi_packet,$Laenge,0);
@dpi_header = unpack("H2H2H2nH2",$dpi_packet); # Header auslesen
if ($dpi_header[4] eq "01") # Falls get-Request
{
print "Get-Request empfangen\n";
&answer_get; # Beantworte get-Request
}
elsif ($dpi_header[4] eq "02") # falls getnext-Request
{
print "Getnext-Request empfangen\n";
&answer_getnext; # Beantworte getnext-Request
}
elsif ($dpi_header[4] eq "03" || $dpi_header[4] eq "0a" || $dpi_header[4] eq "0b")
{ # falls set-Request Gruppe
&answer_setgrp($dpi_header[4]);
}
elsif ($dpi_header[4] eq "05") # falls Response
{
print "Response empfangen\n";
next;
}
else
{
print "Undefinierbare Nachricht empfangen\n";
print "gemeldeter Packettyp: $dpi_header[5]\n";
}
}
#--------------------------------------------------------------
# Unregistrieren des Teilbaums
&DPI_UnRegister;
# Schliessen der DPI-Verbindung
&DPI_Close;
# Schliessen des Handles fuer die TCP-Verbindung zum Agenten
close(DPI_Anschluss);
}
########################################################
# Ende des Hauptprogramms
########################################################
Copyright Munich Network Management Team