############################################################
# answer_set2
# Beantwortung eines Set-, Commit-, Undo-Requests
############################################################
sub answer_set2
{
# Uebernahme der Parameter
local($GID,$InstID,$Art,$dpi_get_packet_id,$Set_Typ,$Set_Laenge,
@Set_Wert)=@_;
if (!$GID eq $GROUPID) # Falls der Subagent fuer diese Group-ID
{ # nicht zustaendig
&ResponseError($dpi_get_packet_id,"05") # Allgemeiner Fehler
}
# Set-Variablen
if ($InstID eq "1.0")
{
if ($Art eq "03") # Set - Request
{
$Fehler = &set_1($Set_Laenge,@Set_Wert);
}
elsif ( $Art eq "0a") # Commit - Request
{
$Fehler = &com_1; # Commit-Funk.
}
elsif ( $Art eq "0b") # Undo - Request
{
$Fehler = &undo_1; # Undo-Funktion
}
if(!$Fehler)
{
&ResponseSuccess($dpi_get_packet_id,$GID,$InstID,
$Set_Typ,$Wert{$InstID});
}
else
{# nicht Schreibbar
&ResponseError($dpi_get_packet_id,$Fehler)
}
}
elsif ($InstID eq '2.0')
{
if ($Art eq "03") # Set - Request
{ # Funktion fuer Instanz 2 aufrufen
$Fehler = &set_2(@Set_Wert);
}
elsif ( $Art eq "0a") # Commit - Request
{
$Fehler = &com_2; # Commit-Funktion
}
elsif ( $Art eq "0b") # Undo - Request
{
$Fehler = &undo_2; # Undo-Funktion
}
if(!$Fehler)
{
&ResponseSuccess($dpi_get_packet_id,$GID,$InstID,
$Set_Typ,$Wert{$InstID});
}
else
{# nicht Schreibbar
&ResponseError($dpi_get_packet_id,$Fehler)
}
}
else # Keine Set-Variable vorhanden
{
&ResponseError($dpi_get_packet_id,"11") # nicht Schreibbar
}
}
1;# PERL - spez. Eine Dat., die mit require eingeb. wird muss mit True enden.