Next Previous Contents

7. Verschiedenes

7.1 Format der vbox Dateien

Ab Version 2.0.0 von vbox enthalten die aufgezeichneten Dateien einen neuen Header, der außer der Kompression und den Verbindungsdaten auch noch Informationen über denjenigen enthält, der die Nachricht erzeugt - sprich gesprochen - hat.

Zur Zeit enthält der Header folgende Informationen:

Mit diesen Angaben ist es anderen Programmen (z.B. mam) möglich, ohne zusätzlichen Aufwand (in früheren Versionen mußte die Konfiguration von vbox nach der passenden Telefonnummer durchsucht werden) die Daten einer Nachricht zu ermitteln.

Das genaue Format des Headers ist in der Datei 'libvbox.h' als Struktur vaheader_t definiert.

7.2 Die Library libvbox.a

Die Library 'libvbox.a' und die dazugehörige Include-Datei 'libvbox.h' enthalten kleinere Funktionen, um es anderen Programmen leichter zu machen, mit vboxd zu kommunizieren.

int vboxd_connect(char *machine, int port)

Die Funktion stellt eine Verbindung zu machine:port her und liest bei Erfolg die Startup-Message vom Server.

machine

Zeiger auf einen String der den Namen oder die IP-Adresse des Rechners enthält, mit dem eine Verbindung aufgebaut werden soll.

port

Portnummer, auf der mit der Gegenstelle kommuniziert werden soll.

Bei Erfolg wird der Wert 0, bei einem Fehler ein Wert kleiner 0 zurückgegeben. Wenn die Verbindung aufgebaut wurde, stehen die externen Variablen vboxd_r_fd und vboxd_w_fd zum Lesen und Schreiben zur Verfügung.

void vboxd_disconnect(void)

Sendet dem Server die QUIT Message und schließt die Verbindung. Die externen Variablen vboxd_r_fd und vboxd_w_fd sind dann nicht mehr gültig!

int vboxd_login(char *username, char *password)

Die Funktion meldet sich unter username mit password auf dem Server als Benutzer an. Erst nach einem erfolgreichen Einloggen stehen die erweiterten Funktionen vom Server zur Verfügung.

username

Benutzername der Benutzt werden soll.

password

Passwort das benutzt werden soll.

Bei Erfolg wird der Wert 0, bei einem Fehler ein Wert kleiner 0 zurückgegeben.

void vboxd_put_message(char *fmt, ...)

Sendet eine Nachricht an den Server. Der Zeilenabschluß 'CR' und 'NL' wird von der Funktion gesendet und braucht nicht angegeben zu werden. Der Aufruf von vboxd_put_message() entspricht der Funktion printf().

char *vboxd_get_message(void)

Versucht eine Antwort vom Server einzulesen. Die Funktion benutzt einen Timeout, der in 'libvbox.h' mit VBOXD_GET_MSG_TIMEOUT definiert ist.

Bei Erfolg wird ein Zeiger auf den erhaltenen Text zurückgegeben, bei einem Fehler NULL. Die Antwort wird in einen internen Buffer gelesen und bei einem erneuten Aufruf der Funktion überschrieben!

int vboxd_test_response(char *response)

Vergleicht die Kennung response mit der zuletzt von vboxd_get_message() eingelesenen Antwort.

response

String mit der Kennung die verglichen werden soll. Die existierenden Kennungen sind in 'libvbox.h' definiert.

Die Funktion liefert TRUE (1) wenn die Kennungen gleich waren, oder FALSE (0) falls nicht.

7.3 Neue Dokumentation erzeugen

Wer auf seinem Rechner selbst die sgml-tools installiert hat und die Dokumentation in andere Formate wandeln möchte, kann das z.B. wie folgt tun:

$ cd doc/de
$ sgml2html -l vbox.sgml


Next Previous Contents