Najważniejsze zmiany w wersji irc 2.11
- Wspólne:
- Nick nie może zawierać znaków [|]{\} (to ograniczenie zostanie usunięte w 2.11.1).
- Nazwa kanału nie może zawierać znaków {\}~, a jeśli zostaną użyte, to zostaną automagicznie zamienione na [|]^ (to ograniczenie zostanie usunięte w 2.11.1).
- Nowy tryb kanałowy: lista R (reop list); taka sama składnia i zachowanie jak listy beI, a służy do przekazania serwerowi IRC podpowiedzi, kogo ma reopować w przypadku bezopia (w wersji 2.11.0 klienci jeszcze nie mogą ustawiać tego trybu).
- W listach beIR można korzystać z notacji CIDR.
- W maskach beIR można korzystać z nowego znaku '#', który oznacza dokładnie jedną cyfrę.
- Gdy w masce pierwszym znakiem jest cyfra, traktowane to jest jak UID -- dzięki temu można banować całymi serwerami lub grupami serwerów.
- Po tym, gdy klient skorzysta z INVITE, żeby wejść na kanał, na którym jest zabanowany, wszyscy na kanale dostają NOTICE z informacją o tym, kto dokładnie go zaprosił.
- Klienci
- W przypadku kolizji nicków klientom zostają zmienione nicki na ich UID-y, ale nie są rozłączani z serwera (to oczywiście działa tylko wtedy, gdy nie ma po drodze między nimi żadnego starego serwera).
- Klient może użyć komendy "NICK 0" w celu zmiany swojego nicka na UID. Działa to też w trakcie rejestracji.
- Pamiętana jest informacja o tym kto i kiedy ustawił topic.
- Domyślna długość topica została zwiększona do 160, a liczba kanałów do 21.
- LIST (jeśli można użyć) już nie rozłącza z "sendq exceeded".
- W trakcie rejestracji jako drugi parametr USER można podać tekstowo listę
trybów, które się chce mieć (+iw, -i+w itp.)
- Serwery
- Nowy protokół między serwerami, oparty na Unique ID
- Składnia broadcastu została zmieniona:
- $$*.maska - wysyła do wszystkich użytkowników, których serwer irc pasuje do *.maski
- $#*.maska - wysyła do wszystkich użytkowników, których host pasuje do *.maski
- Istotne komunikaty zostały przeniesione z &LOCAL na &NOTICES
- W komendzie CONNECT można podać port "0", zostanie wtedy wzięty z C:linii
- Administratorzy
- Został dodany DelayedKills, który zmniejsza obciążenie serwera w trakcie REHASH
(przydatne zwłaszcza dla dużych serwerów z wieloma K:liniami)
- Dodano kolejne pole w I:liniach, w którym można umieścić następujące flagi:
-
- R - na klientów nakładany jest +r (restricted)
- D - restricted dla klientów bez odwrotnego DNS
- I - restricted dla klientów bez identa
- E - wyjątek od K:linii
- N - nie pokazuje nazwy hosta (bany działają poprawnie)
- M - ignoruje nazwę hosta (tak, jakby jej w ogóle nie było)
- F - jeśli podano błędne hasło, to nie odrzuca klienta, tylko przechodzi do sprawdzania następnej I:linii
- W iauth.conf można podać powód odrzucenia klienta, który zostanie mu przekazany.
- Nazwy użytkownika i nazwy hosta są sprawdzane dokładniej (czyt.: mniej znaków jest dozwolonych).
- C:linie mogą mieć ujemny port -- nie będzie wtedy robiony autoconnect, ale zostanie on wykorzystany przy CONNECT z portem równym 0
- STATS ? pokazuje krótką informację o podłączonych serwerach
- STATS f (tylko dla operatórow) pokazuje dokładne info o połączeniach TCP
- Opcja linii komend -t (wyłącz tryb demona) jest teraz dostępna bez DEBUGMODE.
- o: i O: zostały w konfiguracji zamienione, żeby w końcu pozbyć się głupich uwag, że jest zły opis, bo +o to globalny operator ;-)
- Dodano komendę SET (tylko dla operatorów)
- STATS Z działa tak jak STATS z, gdy nie ma DEBUGMODE
- STATS l (i STATS L) pokazują liczniki w bajtach, nie w kilobajtach.
Bliższe wyjaśnienie Unique ID:
Każdy serwer w sieci musi mieć przydzielony inny SID (server ID). Na IRCnet
zdecydowałem się na skorzystanie z listy kodów ISO-3166-1, która jednoznacznie
identyfikuje wszystkie państwa świata. Każdy kraj dostaje pulę 36 czteroznakowych
SID-ów, z których każdy zaczyna się trzycyfrową liczbą z listy ISO-3166-1.
Polska ma przydzielony numer 616, stąd np. warszawa.irc.pl będzie miała SID 616W.
Wszyscy klienci na danym serwerze mają przydzielani CID (client ID), który jest
unikalny w obrębie serwera. Złożone razem dają UID (unique ID), który jest
niepowtarzalny w całej sieci. Dodając do tego fakt, że klient nie może sobie
przybrać dowolnego nicka zaczynającego się od cyfry, podczas kolizji nicków
można bez obaw (o ponowną kolizję) zmienić obu klientom ich nicki na ich UID-y.
(I tak, uważny czytelnik już wymyślił, że można wejść na nowy serwer, zrobić
"NICK 0" i cieszyć się brakiem kolizji w ogóle (za cenę brzydkiego nicka)).