
/* RSDAEMON.PRG */  

Der RSDAEMON ist eine parallel laufende Applikation, die die Aufgabe des
Resolvers per AES-Message bernimmt. Sinn ist quasi ein nichtblockierendes
gethostbyname(), allerdings liefert der RSDAEMON nur eine IP, kein ganzes
hostent-struct.

Der RSDAEMON wird normalerweise automatisch von IConnect gestartet und 
beendet.

Nutzung:

Per appl_find("RSDAEMON") ist die App-ID zu ermitteln. Im Fehlerfall
sollte man auf das blockierende gethostbyname() zurckgreifen und nur
wenn garnicht anders mglich stattdessen mit Fehlermeldung abbrechen.

Nun kann dem RSDAEMON eine AES-Message geschickt werden:

#include <rsdaemon.h>

pbuf[0]=RSDAEMON_MSG
pbuf[1]=<eigene App-ID>
pbuf[2]=0
pbuf[3]=RSD_REQUEST_IP
pbuf[4]=<eigene frei whlbare ID, um die Antwort zuordnen zu knnen>
pbuf[5/6]=<Zeiger auf den String, der den Namen des Hosts enthlt>
           (Ggf. Speicherschutz beachten! RSDAEMON mu hier lesen drfen.)

Der RSDAEMON liefert eine Antwort folgender Form:

pbuf[0]=RSDAEMON_MSG
pbuf[1]=<RSDAEMON-ID>
pbuf[2]=0

und

pbuf[3]=RSD_IP_UNKNOWN = IP konnte nicht ermittelt werden. Das kann
                         verschiedene Ursachen haben (User hat keinen
                         DNS eingetragen, DNS kennt den Host nicht etc.)
pbuf[4]=<hier wird die ID aus dem Request zurckgeliefert>

oder:

pbuf[3]=RSD_IP_FOUND
pbuf[4]=<hier wird die ID aus dem Request zurckgeliefert>
pbuf[5/6]=<IP des Hosts als ulong>

(Hinweis: Die IP wird ab pbuf[5] in big endian-Reihenfolge abgelegt, man kann
also einfach mit ip=*(ulong*)(&(pbuf[5])) darauf zugreifen.)


-EOF-