]> arthur.barton.de Git - ngircd-alex.git/blobdiff - doc/Protocol.txt
- es wird nun getestet, mit welchen Parametern "ps" aufgerufen werden muss.
[ngircd-alex.git] / doc / Protocol.txt
index d5a3c9293db40a54ce8b5accfd5180bf2acf94ad..14882f294726eeee25c5559c66d512b1303aae95 100644 (file)
@@ -32,14 +32,14 @@ anmelden oder alle Funktionen nutzen! In der Regel ist diese Option daher
 nicht erwuenscht.
 
 
-II. Erweiterungen des IRC-Protokolls
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+II. Das IRC+-Protokoll
+~~~~~~~~~~~~~~~~~~~~~~
 
-Erkennt der ngIRCd, dass ein connectierter Server ebenfalls ein ngIRCd ist,
-so werden -- so es die Version auf der Gegenseite unterstuetzt (s.u.) --
-Erweiterungen zum IRC-Protokoll 2.10 verwendet. Diese Erweiterungen werden
-dabei nicht von Versionsnummern abhaengig verwendet, sondern anhand von
-Falgs, die die beiden ngIRCd-Server austauschen, aktiviert.
+Der ngIRCd unterstuetzt als Erweiterung zum IRC-Protokoll wie es in den RFCs
+2810-2813 beschrieben ist, das IRC+-Protokoll. Dieses Protokoll ist dabei
+kompatibel zum IRC-Protokoll und wird nur verwendet, wenn der ngIRCd fest-
+stellt, dass ein connectierter Server ebenfalls dieses erweiterte Protokoll
+unterstuetzt.
 
 Die Protokoll- und Server-Erkennung wird mit dem "PASS"-Befehl durchgefuehrt
 (vgl. RFC 2813, Sektion 4.1.1):
@@ -51,36 +51,59 @@ II.1 neuen Server-Link registrieren
   Parameter: <password> <version> <flags> [<options>]
        Fuer: mit dieser Syntax nur Server
 
-<password> enthaelt das Passwort fur den neu aufzubauenden Server-Link, wie er
-in der Konfigurationsdatei definiert wurde.
+<password> enthaelt das Passwort fur den neu aufzubauenden Server-Link,
+so wie es in der Konfigurationsdatei definiert wurde.
 
 <version> setzt sich aus zwei Teilen zusammen und ist mindestens 4, maximal
-14 Zeichen lang: die ersten vier Bytes enthalten die Versionsnummer des IRC-
-Protokolls, wobei die ersten zwei Bytes die Major-, die letzten beiden die
-Minor-Revision angeben. "0210" steht also fuer Protokollversion 2.10.
-Die folgenden (optionalen!) 10 Bytes enthalten eine implementationsabhaengige
-Versionsnummer, der ngIRCd liefert hier immer "-ngIRCd" (Zur Identifikation
-des ngIRCd sollte dieser String jedoch NICHT verwendet werden, s.u.).
-
-<flags> setzt sich ebenfalls aus zwei Bestandteilen zusammen und ist maximal
-100 Bytes lang. Getrennt werden die beiden Teile mit dem Zeichen "|". Der
-erste Teil enthaelt den Namen der Implementation, der ngIRCd liefert hier z.B.
-"ngIRCd", der Originalserver "IRC". Anhand dieser "ID" kann zwischen Server-
-Implementationen unterschieden werden.
-Der zweite Teil (nach dem "|") ist implementationsabhaengig und wird vom ngIRCd
-nur ausgewertet, wenn die Gegenseite ebenfalls ein ngIRCd ist. In diesem Fall
-wird folgende Syntax erwartet: "<serverversion>[:<serverflags>]".
-<version> ist hier eine ASCII-Darstellung der Versionsnummer, <flags> zeigt die
-vom Server unterstuetzten Erweiterungen an (und kann die leere Menge sein).
-
-Mit dem optionalen Parameter <options> werden Server-Optionen bekannt gemacht,
+14 Zeichen lang: die ersten vier Bytes enthalten die Versionsnummer des
+unterstuetzten IRC-Protokolls, wobei die ersten zwei Bytes die Major-, die
+letzten beiden die Minor-Revision angeben. Der String "0210" steht also
+fuer Protokollversion 2.10.
+Die folgenden (optionalen!) 10 Bytes enthalten eine von der jeweiligen
+Implementation abhaengige Versionsnummer. Server, die das IRC+-Protokoll
+unterstuetzen, liefern hier "-IRC+".
+
+<flags> setzt sich ebenfalls aus zwei Bestandteilen zusammen und ist
+maximal 100 Bytes lang. Getrennt werden die beiden Teile mit dem Zeichen
+"|". Der erste Teil enthaelt den Namen der Implementation, der ngIRCd
+liefert hier z.B. "ngIRCd", der Originalserver "IRC". Anhand dieser "ID"
+kann zwischen Serverimplementationen unterschieden werden. Der zweite Teil
+(nach dem "|") ist implementationsabhaengig und wird nur ausgewertet,
+wenn die Gegenseite das IRC+-Protokoll unterstuetzt. In diesem Fall wird
+folgende Syntax erwartet: "<serverversion>[:<serverflags>]".
+
+<serverversion> ist hier eine ASCII-Klartext-Darstellung der Versionsnummer,
+<serverflags> zeigt die vom Server unterstuetzten Erweiterungen an (und
+kann die leere Menge sein).
+
+Mit dem optionalen Parameter <options> werden Server-Optionen uebermittelt,
 wie sie in RFC 2813, Sektion 4.1.1 definiert sind.
 
-Folgende <serverflags> werden zur Zeit vom ngIRCd verwendet:
+Folgende <serverflags> sind zur Zeit definiert:
 
-- o: IRC-Operatoren duerfen auch dann Channel- und Channel-User-Modes aendern,
-     wenn sie kein Channel-Operator im betroffenen Channel sind.
+- o: IRC-Operatoren duerfen auch dann Channel- und Channel-User-Modes
+     aendern, wenn sie kein Channel-Operator im betroffenen Channel sind.
+
+- C: der Server unterstuetzt den CHANINFO-Befehl.     
+
+
+II.2 Channel-Modes, persistente Channel und Topic austauschen
+
+     Befehl: CHANINFO
+  Parameter: <channel> +<mode> [<topic>]
+       Fuer: Server
+
+Mit CHANINFO Informiert ein Server den anderen ueber einen Channel: dessen
+Modes und dessen Topic. <topic> ist optional.
+
+Existiert auf dem Server, der das CHANINFO empfaengt, der Channel bereits,
+so uebernimmt er die Werte jeweils nur dann, wenn er selber noch keine
+Modes bzw. kein Topic definiert hat. Ansonsten wird der jeweilige Parameter
+ignoriert.
+
+Existiert der Channel noch nicht, so wird er mit den entsprechenden Angaben
+erzeugt.
 
 
 -- 
-$Id: Protocol.txt,v 1.1 2002/09/02 21:04:27 alex Exp $
+$Id: Protocol.txt,v 1.5 2002/09/04 00:06:19 alex Exp $