Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

Der ICMP Manager

Der ICMP Manager enthält alle Funktionen, die für ICMP (Internet Control Message Protokoll) benötigt werden. Da ICMP-Datagramme vorrangig verarbeitet werden müssen, ist für ankommende Datagramme ein Callback-Schema spezifiziert worden.
Die Aufrufe:

Die Funktion ICMP_send
    int16  cdecl  ICMP_send (uint32 dest_host, uint8 type, uint8 code,
                             void *data, uint16 length);
Funktion: Versendet ICMP-Datagramme.

Diese Funktion sendet eine ICMP-Nachricht. 'dest_host' ist die IP-Adresse des Zielhosts, 'type' die Art des ICMP-Packets. 'code' ist ein ICMP-Kontrollcode, der von der Art ('type') abhängig ist. 'data' ist ein Pointer auf Daten, welche im Anschluß an den ICMP-Header gesendet werden sollen, 'length' die Länge des Blocks in Bytes.

Es ist zu beachten, daß nach dem Aufruf dieser Funktion der Datenblock weiterhin dem aufrufenden Code gehört.

Gibt E_NORMAL, oder E_BADDNAME, E_PARAMETER oder E_NOMEM zurück.


Die Funktion ICMP_handler
    int16  cdecl  ICMP_handler (int16 cdecl (* handler) (IP_DGRAM *),
                                int16 install_code);
(De-)Installiert Handler für ICMP-Datagramme.

Eine Handler-Funktion, die die ankommenden ICMP-Datagramme sofort verarbeitet, kann mit diesem Aufruf installiert werden. Für jedes ICMP-Datagramm wird der Handler aufgerufen werden, egal, ob es für die aufrufende Applikation bestimmt ist oder nicht. Es ist die Aufgabe des Handlers, dieses zu überprüfen. Wenn das Datagramm für die aufrufende Applikation nicht von Interesse ist, so muß der Handler ein FALSE zurückliefern! Sonst sollte der Handler das Datagramm verarbeiten und TRUE zurückgeben. In diesem Fall muß er das Datagramm über den Aufruf ICMP_discard vernichten.

Beachten Sie, daß einige Arten von ICMP Datagrammen intern verarbeitet werden und so niemals an installierte Handler weitergeleitet werden.

Die installierte Funktion wird aus dem Hauptinterrupt heraus aufgerufen, darum darf nur ein geringer Betrag an Rechenzeit verbraucht werden. Daher ist es nicht erlaubt, auf ein Event zu warten. Der Aufruf wird asynchron im Supervisor-Modus getätigt, also seien Sie vorsichtig mit jedem Betriebssystemaufruf, den Sie innerhalb der Handler-Funktion tätigen.

'install_code' kann folgendes sein:


Die Funktion 'ICMP_discard'
    void  cdecl  ICMP_discard (IP_DGRAM *datagram);
Vernichtet ein ICMP-Datagramm.

Ein von einer Handlerfunktion verarbeitetes ICMP-Datagramm muß danach mittels dieses Aufrufs vernichtet werden. Der Aufruf ist in der derzeitigen Implementation identisch mit IP_discard (datagram, TRUE);


Zurück zur Startseite
Zum Anfang der Seite


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum