X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2FProtocol.txt;h=14882f294726eeee25c5559c66d512b1303aae95;hb=9f122037aecc327e689a2681c25540688621c630;hp=61bc1a0d3744e1dd0bc5dfe4ed817f0144175aaf;hpb=241d033f377d7d5e9b3687e9e34964f6ddea95d9;p=ngircd-alex.git diff --git a/doc/Protocol.txt b/doc/Protocol.txt index 61bc1a0d..14882f29 100644 --- a/doc/Protocol.txt +++ b/doc/Protocol.txt @@ -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): @@ -60,18 +60,17 @@ 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, der ngIRCd liefert hier immer -"-ngIRCd" (Zur Identifikation des ngIRCd sollte dieser String jedoch NICHT -verwendet werden, s.u.). +Implementation abhaengige Versionsnummer. Server, die das IRC+-Protokoll +unterstuetzen, liefern hier "-IRC+". 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 vom ngIRCd nur dann -ausgewertet, wenn die Gegenseite ebenfalls ein ngIRCd ist. In diesem Fall -wird folgende Syntax erwartet: "[:]". +(nach dem "|") ist implementationsabhaengig und wird nur ausgewertet, +wenn die Gegenseite das IRC+-Protokoll unterstuetzt. In diesem Fall wird +folgende Syntax erwartet: "[:]". ist hier eine ASCII-Klartext-Darstellung der Versionsnummer, zeigt die vom Server unterstuetzten Erweiterungen an (und @@ -80,11 +79,31 @@ kann die leere Menge sein). Mit dem optionalen Parameter werden Server-Optionen uebermittelt, wie sie in RFC 2813, Sektion 4.1.1 definiert sind. -Folgende werden zur Zeit vom ngIRCd verwendet: +Folgende 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. +- C: der Server unterstuetzt den CHANINFO-Befehl. + + +II.2 Channel-Modes, persistente Channel und Topic austauschen + + Befehl: CHANINFO + Parameter: + [] + Fuer: Server + +Mit CHANINFO Informiert ein Server den anderen ueber einen Channel: dessen +Modes und dessen 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.2 2002/09/03 11:32:58 alex Exp $ +$Id: Protocol.txt,v 1.5 2002/09/04 00:06:19 alex Exp $