Zum Inhalt springen
Dialova

IRC-Dokumentation · Experten

CAP-Befehl: Erweiterungen auflisten und aushandeln

CAP ist der Befehl zum Aushandeln von IRC-Erweiterungen. Damit aktiviert ein Client die Funktionen, die er verarbeiten kann. Die IRCv3-CAP-Anleitung erklärt die Zustandsverwaltung. Dieser Eintrag zeigt die Syntax, die du in Verbindungsprotokollen wiedererkennst.

Dialova-Team · Überprüft am

Syntax und Parameter #

Protokollsyntax ohne den Schrägstrich des Clients
CAP <LS [302] | LIST | REQ :<capacités> | END>
ParameterBedeutung
LS 302Fordert die moderne Ankündigung einschließlich Werten und gegebenenfalls mehrteiliger Antworten an.
REQFordert die Aktivierung ausgewählter Capabilities an. ACK oder NAK beantwortet die Anfrage.
LIST / ENDLIST zeigt die aktiven Capabilities. END beendet das Warten auf den Abschluss der CAP-Aushandlung während der Anmeldung.

Erläutertes Beispiel #

IRC-Austausch: C = Client, S = Server
C: CAP LS 302
C: NICK Alice
C: USER alice 0 * :Alice
S: :irc.example CAP * LS :message-tags server-time
C: CAP REQ :server-time
S: :irc.example CAP Alice ACK :server-time
C: CAP END

Nicknames, Hosts und Texte dieses Beispiels sind frei erfunden. Der Client kann die Antworten verständlicher darstellen als die hier gezeigten Protokollzeilen.

Mögliche Antworten und Fehler #

AntwortBedeutung
CAP LSAngebotene Liste. Ein dazwischenstehendes * zeigt an, dass weitere Teile folgen.
CAP ACK / NAKAktivierung bestätigt oder Anfrage abgelehnt.
CAP LISTListe der aktiven Capabilities.
FehlerÜbliche Ursache
410Ungültiger CAP-Unterbefehl, abhängig von der Implementierung.
421Ein älterer Server erkennt CAP nicht.

Rechte, Kompatibilität und Sicherheit #

Eine LS-Ankündigung aktiviert nichts. Der Client darf eine Capability erst nach ihrer Aktivierung verwenden. CAP END sendet keine Nachricht an einen Channel, sondern gehört zum Verbindungsablauf.

CAP kann auch nach der Anmeldung verwendet werden. Unterbefehle, angekündigte Version und NEW-/DEL-Mitteilungen müssen entsprechend der Spezifikation ausgewertet werden. Der Wert einer Capability, etwa sasl=PLAIN, ist nicht ihr Name.

Häufige Fragen #

Warum steht CAP hier ohne /? Die Beispiele zeigen das Protokoll. Die Oberfläche verarbeitet diesen Befehl intern.

Sind CAP und 005 ISUPPORT dasselbe? Nein. ISUPPORT beschreibt Eigenschaften und Grenzen; CAP aktiviert ausgehandelte Erweiterungen.

Quellen und Überprüfung

Die Beispiele verwenden erfundene Nicknames und Domains. Ausgenommen sind ausdrücklich dokumentierte Verbindungsadressen. Netzwerkspezifische Erweiterungen und Einstellungen werden im Text gekennzeichnet.