smile chat: Eine Mehrbenutzer-Netzwerkanwendung in C++ und Java
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizensiert.
Der smile chat bietet zahlreiche Einstellungsmöglichkeiten. Wirklich wichtig ist jedoch nur die zentrale Konfigurationsdatei scd.cfg. Sie enthält Einstellungen, ohne die der smile chat-Server nicht starten kann.
Wenn es Probleme gibt, protokolliert sie der smile chat-Server in einer Logdatei. Das sollte Ihre erste Anlaufstelle sein, wenn irgendetwas nicht so funktioniert wie von Ihnen gedacht. Die Logdatei wird entweder im gleichen Verzeichnis erstellt, in dem sich der smile chat-Server befindet. Oder - wenn der smile chat-Server die Konfigurationsdatei scd.cfg soweit lesen und verstehen konnte - sie wird dort gespeichert, wo sie gemäß der Angabe file.log angelegt werden soll.
Der smile chat-Server sucht nach einer Konfigurationsdatei scd.cfg, wenn er gestartet wird. Er erwartet, dass die Konfigurationsdatei standardmäßig im gleichen Verzeichnis liegt. Soll eine andere Konfigurationsdatei verwendet werden oder sollte sie in einem anderen Verzeichnis liegen, kann der Pfad der Konfigurationsdatei als einziges Befehlszeilenargument mitangegeben werden.
Die Datei scd.cfg ist die wichtigste Konfigurationsdatei. Auf andere Konfigurationsdateien - sollten weitere verwendet werden - wird in scd.cfg verwiesen. Ohne scd.cfg kann der smile chat-Server nicht gestartet werden. Er bricht in diesem Fall automatisch ab und schreibt eine Fehlermeldung in die Logdatei scd.log, die automatisch im gleichen Verzeichnis erstellt wird.
In der Datei scd.cfg können zahlreiche Einstellungen vorgenommen werden. Die folgende Tabelle gibt Ihnen einen Überblick.
Einstellung | Beschreibung | Beispiel |
---|---|---|
all.host | Name des Servers | smilechat.de |
all.www | Name des Webservers | www.smilechat.de |
all.webpath | Absoluter Pfad zu Dateien auf Webserver | /pub2/ |
all.path | Absoluter Pfad zu Dateien auf Server | /home/boris/ |
all.links | Links werden automatisch anklickbar | 1 |
all.onlyreg | Nur registrierte Chatter dürfen sich einloggen | 0 |
all.search | Suchmaschine für den Chat-Befehl srch: | www.google.de/search?hl=de&q= |
file.welcome | Datei mit Willkommensnachricht | welcome.txt |
file.permissions | Konfigurationsdatei für Ränge | perm.cfg |
file.rooms | Konfigurationsdatei für Räume | rooms.cfg |
file.security | Konfigurationsdatei für Sicherheitseinstellungen | security.cfg |
file.replace | Konfigurationsdatei für automatische Zeichenersetzung | replace.cfg |
file.log | Pfad zur Logdatei | log/sc.log |
file.js | Pfad zur Javascript Standard Bibliothek | js/stdlib.js |
file.help | Pfad zur Hilfe-Webseite | /help.html |
file.kill | Pfad zur Kill-Webseite | html/kill.html |
nick.min | Minimale Länge für Nicknames | 1 |
nick.max | Maximale Länge für Nicknames | 15 |
nick.valid | Gültige Zeichen für Nicknames | abcdefghijklmnopqrstuvwxyz |
nick.color | Standardfarbe für Chatter | 0000FF |
pwd.max | Maximale Länge für Passwörter | 15 |
ua.max | Maximale Länge für User-Agent-Bezeichner | 100 |
comment.max | Maximale Länge für Kommentare | 100 |
ref.max | Maximale Länge für Referer | 200 |
room.max | Maximale Länge für Raumnamen | 15 |
room.valid | Gültige Zeichen für Raumnamen | abcdefghijklmnopqrstuvwxyz |
photo.default | Standardfoto für Chatter | img/photo.jpg |
photo.width | Breite von Fotos (in Pixel) | 50 |
photo.height | Höhe von Fotos (in Pixel) | 50 |
photo.html | img-Tags von Fotos hinzuzufügendes HTML | |
info.out | Standard-Schaltfläche für Info | img/info_out.gif |
info.over | Hover-Schaltfläche für Info | img/info_over.gif |
info.clicked | Angeklickte Schaltfläche für Info | img/info_clicked.gif |
info.width | Breite der Info-Schaltfläche (in Pixel) | 15 |
info.height | Höhe der Info-Schaltfläche (in Pixel) | 15 |
info.html | img-Tags von Info hinzuzufügendes HTML | |
mark.out | Standard-Schaltfläche zum Markieren | img/mark_out.gif |
mark.over | Hover-Schaltfläche zum Markieren | img/mark_over.gif |
mark.clicked | Angeklickte Schaltfläche zum Markieren | img/info_clicked.gif |
mark.width | Breite der Markier-Schaltfläche (in Pixel) | 15 |
mark.height | Höhe der Markier-Schaltfläche (in Pixel) | 15 |
mark.html | img-Tags der Markier-Schaltfläche hinzuzufügenes HTML | |
unmark.out | Standard-Schaltfläche zum Demarkieren | img/unmark_out.gif |
unmark.over | Hover-Schaltfläche zum Demarkieren | img/unmark_over.gif |
unmark.clicked | Angeklickte Schaltfläche zum Demarkieren | img/unmark_clicked.gif |
unmark.width | Breite der Demarkier-Schaltfläche (in Pixel) | 15 |
unmark.height | Höhe der Demarkier-Schaltfläche (in Pixel) | 15 |
unmark.html | img-Tags der Demarkier-Schaltfläche hinzuzufügendes HTML | |
go.out | Standard-Schaltfläche zum Raumwechseln | img/go_out.gif |
go.over | Hover-Schaltfläche zum Raumwechseln | img/go_over.gif |
go.clicked | Angeklickte Schaltfläche zum Raumwechseln | img/go_clicked.gif |
go.width | Breite der Raumwechsel-Schaltfläche (in Pixel) | 15 |
go.height | Höhe der Raumwechsel-Schaltfläche (in Pixel) | 15 |
go.html | img-Tags der Raumwechsel-Schaltfläche hinzuzufügendes HTML | |
ban.out | Standard-Schaltfläche zum Bannen | img/ban_out.gif |
ban.over | Hover-Schaltfläche zum Bannen | img/ban_over.gif |
ban.clicked | Angeklickte Schaltfläche zum Bannen | img/ban_clicked.gif |
ban.width | Breite der Bannen-Schaltfläche (in Pixel) | 15 |
ban.height | Höhe der Bannen-Schaltfläche (in Pixel) | 15 |
ban.html | img-Tags der Bannen-Schaltfläche hinzuzufügendes HTML | |
banner.default | Pfad zum Standard-Banner | |
banner.width | Breite des Banners (in Pixel) | 468 |
banner.height | Höhe des Banners (in Pixel) | 60 |
banner.html | img-Tags des Banners hinzuzufügendes HTML | |
css.basic | Pfad zur Standard-CSS-Datei | css/default.css |
css.startskin | Standard-Skin | Smile |
css.startskinpath | Pfad zum Standard-Skin | skins/smile.css |
db.connection | Verbindungsparameter für Datenbank | uid=boris;pwd=12345;dsn=smile |
db.cache | Einstellung für Datenbankcache | pass |
db.clean | Beim Start alte Datenbankeinträge löschen | 1 |
Mit die am wichtigste Einstellung ist all.path. Während Sie all.host normalerweise leer lassen können - dann wird automatisch auf Dateien auf dem aktuellen Server zugegriffen - können viele Dateien nur dann gefunden werden, wenn all.path richtig gesetzt ist. So sind sämtliche Dateiangaben in den obigen Beispielen relativ: Die Dateien welcome.txt, perm.cfg, rooms.cfg, security.cfg, replace.cfg und log/sc.log werden alle relativ zu all.path geladen. Die Datei welcome.txt muss sich also für obige Beispielangaben unter /home/boris/welcome.txt befinden.
Beachten Sie, dass sich Dateien, die über den Webserver geladen werden - dazu gehören alle Dateien mit den Endungen .html, .js, .gif und .css - relativ zur Angabe all.webpath befinden müssen. Sie können durch eine absolute Pfadangabe die Abhängigkeit von all.webpath aufheben. So würde gemäß obigen Beispieleinstellungen die Hilfedatei help.html von www.smilechat.de/help.html geladen werden, die Javascript Standard Bibliothek jedoch von www.smilechat.de/pub2/js/stdlib.js.
Ränge und Rechte werden in einer separaten Datei konfiguriert, die für gewöhnlich perm.cfg heißt. Damit Chatter längerfristig einen Rang besitzen können, müssen Rangnamen jedoch zusätzlich in die Datenbank eingetragen werden. Ein Rang, der ausschließlich in perm.cfg definiert ist, kann von niemandem benutzt werden, wenn er nicht über die Datenbank mit Chatter-Profilen verknüpft werden kann.
In die Datenbank wird jedoch ausschließlich der Rangname eingetragen. Alle Einstellungen zu Rängen werden in perm.cfg vorgenommen. Dabei wird pro Zeile ein Rang definiert. Im Folgenden sehen Sie die Definition von einigen Beispielrängen.
Name | visitor | member | sheriff |
---|---|---|---|
Label | Visitor | Member | Sheriff |
Angriff | 4 | 8 | 12 |
Verteidigung | 4 | 8 | 8 |
Nicht kickbar | 0 | 0 | 0 |
Alarmsender | 0 | 1 | 0 |
Alarmempfänger | 0 | 0 | 1 |
Ranghöhe | 10 | 20 | 30 |
Darf kicken | 0 | 0 | 1 |
Max. Bannzeit (in Minuten) | 0 | 0 | 30 |
Darf killen | 0 | 0 | 0 |
Max. Sperrzeit (in Stunden) | 0 | 0 | 1 |
Darf Systeminfos abfragen | 0 | 0 | 0 |
Die Punkte für Angriff und Verteidigung sind entscheidend für die Funktion des demokratischen Kickens. Grundsätzlich gilt: Wer mehr Angriffspunkte auf sich vereint als die Hälfte der Summe der Verteidigungspunkte, wird automatisch gekickt. Durch die Punktvergabe kann das demokratische Kicken sehr gezielt eingestellt werden.
Die Einstellungen bezüglich Alarmsender und -empfänger beziehen sich auf den Chat-Befehl .alarm.
Die Einstellungen zu Räumen sind bei weitem die einfachsten: Es werden lediglich Raumnamen zeilenweise angegeben. Dies geschieht für gewöhnlich in einer Datei namens rooms.cfg. Wenn der smile chat-Server diese Datei lädt, legt er automatisch die in dieser Datei angegebenen Räume an. Mindestens ein Raum muss angegeben werden - in irgendeinen Raum müssen Chatter gelangen, wenn sie sich einloggen.
Sicherheitseinstellungen werden für gewöhnlich in der Datei security.cfg vorgenommen. Hierzu zählt vor allem die Möglichkeit, Aufzeichnungen vom Chatgeschehen anzufertigen. Darüberhinaus kann zum Beispiel auch Chattern der Zutritt zum Chat verweigert werden.
Die Einstellungen in security.cfg werden zeilenweise vorgenommen. Ein Buchstabe am Zeilenanfang legt fest, auf wen sich die entsprechende Regel bezieht.
Kennung | Gültigkeitsbereich |
---|---|
r | Räume |
u | Chatter (User) |
w | Websites |
c | Zensierte Wörter |
Dem Buchstaben folgt eine genauere Bezeichnung. So kann entweder ein Raum- oder Nickname angegeben werden, wenn sich die Regel entsprechend auf Räume oder Chatter bezieht. Die Bezeichnung kann auch ein regulärer Ausdruck und somit recht weit gefasst sein. Außerdem ist es möglich, durch ein @ auf eine andere Datei zu verweisen, die ihrerseits zeilenweise Bezeichnungen enthält.
Hinter der Bezeichnung folgt eine Aktion. Wenn ein Dateiname hinter > angeben wird, wird in die entsprechende Datei aufgezeichnet. So könnte mit folgender Regel ein Chatter mit dem Nickname spinner überwacht werden: u spinner >spinner.log
Es ist darüberhinaus möglich, Chattern den Zugang zum Chat zu verweigern: u spinner noaccess
Für zensierte Wörter kann angegeben werden, dass Chatter automatisch gekickt werden: c @zensur.txt exit
Diese Regel kann mit einer gleichzeitigen Protokollierung versehen werden: c @zensur.txt >zensur.log exit
Für diese Regel müssten in der Datei zensur.txt zeilenweise Wörter aufgelistet werden, die der Zensur unterliegen. Auch hier ist es möglich, reguläre Ausdrücke zu verwenden.
Die Zeichenersetzung wird verwendet, um zum Beispiel anstatt eines Smileys wie :-) eine entsprechende Grafik einzublenden. Dazu müssen die drei Zeichen :-) durch HTML-Code ersetzt werden, der auf die Grafik verweist.
Die entsprechenden Einstellungen werden für gewöhnlich in einer Datei namens replace.cfg vorgenommen. Sie enthält durch ein Gleichheitszeichen getrennt einen regulären Ausdruck und Zeichen wie HTML-Code, der den regulären Ausdruck ersetzt. Alle Eingaben von Chattern werden automatisch gefiltert, wenn der reguläre Ausdruck zutrifft.
Copyright © 2005-2007 Boris Schäling