Commit Briefs
- Version 0.4.3 (origin/branch-0-4-x, tags/rel-0-4-3)
- IRC_PRIVMSG() und IRC_NOTICE() haben nicht ueberprueft, ob der Ziel-Client
ein User ist; wenn nicht, so hat sich der Server mit einem assert() beendet.
- Dokumentation aktualisiert. (tags/rel-0-4-2)
- Version auf 0.4.1 angehoben. (tags/rel-0-4-1)
- Error-Log wird nach User-Wechsel mit Log_InitErrorfile() initialisiert.
- Einige Tippfehler korrigiert ...
- Conf_ListenPorts[] ist nun unsigned.
- Neue Konfigurations-Variablen Conf_UID und Conf_GID.
- das Error-File wird nun komplett durch das Log-Modul verwaltet, der
Dateiname enthaelt nun die PID: so koennen mehrere Instanzen laufen.
- neuer Kommandozeilen-Parameter "--configtest": gibt die verwendete Server-
Konfiguration aus. Diesbezuegliche Ausgaben bei "--help" sind entfallen.
- neue Funktion Conf_Test() zum Testen der Konfiguration.
- Conf_File ist entfallen, ist nun NGIRCd_ConfFile.
- alle Client_GetFromID() durch Client_Search() ersetzt.
- neuer Mode "s": Server Messages.
- alle Client_GetFromID() durch Client_Search() ersetzt.
- IRC_PRIVMSG() ruft nun intern Channel_Write() auf.
- Client_GetFromID() ist entfallen: Client_Search() benutzen!
- Client-Struktur um Hash-Wert ueber ID/Nick ergaenzt.
- Client_SetID() berechnet Hash-Wert ueber ID/Nick.
- Client_GetFromID() heisst nun Client_Search(), zudem wird via Hash gesucht. - Client_CheckNick() sucht nicht mehr selber. - altes Client_Search() ist entfallen (s.o.).
- Channel-Struktur um Hash-Wert ueber Namen ergaenzt.
- Neue Funktion Channel_Write().
- New_Chan() berechnet Hash-Werte ueber den Namen.
- Channel_Search() verwendet nun Hash-Werte. - Neue Funktion Channel_Write().
- externe portab-Header werden nicht mehr benoetigt/benutzt, dadurch
einige Aenderungen an diversen Source-Dateien und Headern. - Dateien enthalten keine CVS-History mehr.
- externe portab-Header werden nicht mehr benoetigt. Notwendige Teile sind
nun im ngIRCd-Source-Tree enthalten.
- ein sofortiger Re-Connect wird nur dann versucht, wenn die Vernindung
"lange genug" bereits bestanden hatte.
- IRC_PING() ist, wenn nicht im "strict RFC"-Mode, toleranter und akzptiert
beliebig viele Parameter: z.B. BitchX sendet soetwas.
- bei WHO, WHOIS und NAMES wird nun nur noch der Status "Operator" oder
"voiced" geliefert -- nicht mehr beides.
- die Pfade der Konfigurationsdatei, des MOTD und das Error-Files werden
nun aus den Vorgaben von configure ermittelt.
- die Beispiel-Konfigurationsdatei wird als ngircd.conf installiert,
wenn noch keine "echte" Konfigurationsdatei vorhanden ist.
- stderr wird nun in eine Datei umgelenkt (ngircd.err). Wenn der Server
nicht im Debug-Modus laeuft, so wird diese bei Programmende geloescht.
- Sourcen auf weitere Module fuer IRC-Befehle aufgesplitted.
- IRC-Befehl WHO implementiert.
- INSTALL um Hinweise auf portab.h etc. ergaenzt. (tags/rel-0-3-0)
- Timeouts ausgehender Verbindungen werden besser erkannt (z.B. unter Cygwin).
- Idle-Time der Hauptschleife [Conn_Handle()] erhoeht: weniger Last.
- Bei der USER-Registrierung wird NICK nicht mehr sofort geforwarded,
sondern erst dann, wenn auch ein gueltiges USER empfangen wurde.
- bei abgebrochene ausgehende Server-Verbindungen wird der naechste Ver-
bindungsversuch in RECONNECT_DELAY Sekunden (3) unternommen und nicht mehr "ConnectRetry" Sekunden gewartet.
- ausgehende Verbindungen werden nun asyncron connectiert und blockieren
nicht mehr den Server. Dadurch waren einige Aenderungen noetig. - diverse Log-Meldungen ueberarbeitet.
- gerade eben in SQUIT eingefuehrten Bug behoben: entfernte Server werden nun
nur noch geloescht, die Verbindung, von der SQUIT kam, bleibt wieder offen.
- einige unnoetige Client_NextHop()-Aufrufe entfernt.
- NAMES korrigiert und komplett implementiert.
- WHOIS wird nicht mehr automatisch an den "Original-Server" weiterge-
leitet: war eh nicht RFC-konform und machte Probleme mit Clients.
- es werden ein paar Funktionen mehr getestet: u.a. vsnprintf() und setsockopt().
- libUTIL wird eingebunden, so vorhanden (unter A/UX notwendig!)
- "Passive-Mode" implementiert: kein Auto-Conect zu anderen Servern.
- NGIRCd_DebugLevel wird (fuer VERSION-Befehl) ermittelt.
- User-Registrierung wird nicht mehr als Nick-Aenderung protokolliert,
- VERSION liefert nun doch wieder den Debug-Status im Reply.
- der Debug-Level wird bei VERSION nicht mehr geliefert. Grund: a) absolut
unnoetig und b) Compiler-Fehler, wenn ohne Debug-Code configure'd ;-))
- Version 0.2.1. (tags/rel-0-2-1)
- Tests auf netdb.h, stdlib.h, sys/wait.h, gethostbyaddr, gethostbyname,
strftime und die "libbe" unter BeOS (fuer syslog) ergaenzt.
- NICK-Aenderungen werden an alle Server und betroffene Clients gemeldet.
- Neue Funktion IRC_WriteStrRelatedPrefix().
- Version 0.2.0 (tags/rel-0-2-0)
- PONG an den Server selber wurde faelschlicherweise versucht zu forwarden.
- Channel-Modes wurden falsch geliefert (als User-Modes).
- PING und PONG werden nun auch korrekt an andere Server geforwarded.
- bei MODE-Meldungen wird der letzte Parameter nicht mehr mit ":" getrennt.
- Aenderungen und Anpassungen an Channel-Modes und Channel-User-Modes:
Modes werden besser geforwarded, lokale User, fuer die ein Channel angelegt wird, werden Channel-Operator, etc. pp. ... - NJOIN's von Servern werden nun korrekt an andere Server weitergeleitet.
- neue Funktionen Channel_ModeAdd(), Channel_ModeDel(), Channel_UserModes(),
Channel_UserModeAdd(), Channel_UserModeDel().
- neue Funktionen Channel_ModeAdd(), Channel_ModeDel(), Channel_UserModes(),
Channel_UserModeAdd(), Channel_UserModeDel(). - Modes in CL2CHAN-Struktur werden nun korrekt initialisiert.
- neue Funktion Channel_Modes() und Channel_IsValidName().
- Channel-Namen werden (besser) validiert.
- Version 0.0.1 (tags/rel-0-1-0)
- WHOIS zeigt nun auch die Channels an, in denen der jeweilige User Mitglied ist.
- zu jedem Server wird nun der "Top-Server" gespeichert, somit funktioniert LINKS wieder korrekt.
- nach einem JOIN wird die Liste der Mitglieder an den Client geschickt.
- MODE fuer Channels wird nun komplett ignoriert (keine Fehlermeldung mehr).
- IRC_WriteStrServersPrefixID() und IRC_WriteStrClientPrefixID() wieder entfernt.
- einige kleinere Fixes bezueglich Channels ...
- anderungen an den Funktions-Prototypen von IRC_WriteStrChannel() und
IRC_WriteStrChannelPrefix(), - neue: IRC_WriteStrClientPrefixID() und IRC_WriteStrServersPrefixID().
- neue Funktionen IRC_WriteStrChannelPrefix() und IRC_WriteStrChannel(),
die IRC_Write_xxx_Related() sind dafuer entfallen. - IRC_PRIVMSG() kann nun auch mit Channels als Ziel umgehen.
- CHANNEL- und CL2CHAN-Strukturen in Header verlegt,
- einige neue Funktionen (Channel_GetChannel(), Channel_FirstMember(), ...)
- Definition der CHANNEL-Struktur aus Header entfernt,
- neue Funktionen Channel_Join(), Channel_Part() und Channel_RemoveClient().
- neue Funktionen IRC_JOIN und IRC_PART begonnen, ebenso die Funktionen
IRC_WriteStrRelatedPrefix und IRC_WriteStrRelatedChannelPrefix(). - diverse Aenderungen im Zusammenhang mit Channels.
- neue Funktionen IRC_JOIN, IRC_PART, IRC_WriteStrRelatedPrefix und
IRC_WriteStrRelatedChannelPrefix().
- WHOIS wird im "Strict-RFC-Mode" nicht mehr automatisch geforwarded,
- andere Server werden nun ueber bisherige Server und User informiert.
- Es werden fuer alle Server eigene Token generiert,
- QUIT von einem Server fuer einen User wird an andere Server geforwarded, - ebenso NICK-Befehle, die "fremde" User einfuehren.
- Loglevel von Remote-Mode-Aenderungen angepasst (nun Debug).
- Im Debug-Mode werden nun auch PING's protokolliert.
- Server nimmt nun Server-Links an: PASS und SERVER entsprechend angepasst.
- MODE und NICK melden nun die Aenderungen an andere Server.
- Beispiel-Konfigurationsdatei aktualisiert. (tags/rel-0-0-2)
- Loglevel und Meldungen nochmals ueberarbeitet.
- QUIT und SQUIT forwarden nun den Grund der Trennung, - WHOIS wird nun immer an den "Original-Server" weitergeleitet.
- WHOIS erweitert: Anfragen koennen an andere Server weitergeleitet werden.
- Vorbereitungen fuer Ident-Abfragen bei neuen Client-Strukturen.
- Div. Aenderungen fuer die Server-Links (u.a. WHOIS, QUIT, NICK angepasst).
- Neue Funktionen IRC_WriteStrServer() und IRC_WriteStrServerPrefix().
- "arpa/inet.h" wird nur noch includiert, wenn vorhanden.
- Ein Fehler bei select() fuerht nun zum Abbruch von ngIRCd. - NO_ADDRESS durch NO_DATA ersetzt: ist wohl portabler.
- IRC_WriteStrXXX()-Funktionen eingefuehrt, groessere Anpassungen daran.
- neuer Befehl SQUIT, QUIT an Server-Links angepasst.
- Client-Strukruren werden nur noch ueber Funktionen angesprochen.
- Weitere Anpassungen und Erweiterungen der Server-Links.
- Client-Strukturen koennen von anderen Modulen nun nur noch ueber die
enstprechenden (zum Teil neuen) Funktionen angesprochen werden.
- neue Befehle SERVER und NJOIN begonnen,
- begonnen, diverse IRC-Befehle an Server-Links anzupassen.
- Copyright-Texte angepasst.
- neuer Befehl "ERROR".
- Asyncroner Resolver Hostname->IP.
- Server-Links begonnen zu implementieren. Die Verbindung wird aufgebaut, jedoch noch keine SERVER-Befehle verschickt. - Diverse Bug-Fixes und kleinere Erweiterungen.
- Konfigurationsdatei "Samba like" umgestellt.
- es koennen nun mehrere Server und Oprtatoren konfiguriert werden.
- Copyright-Texte aktualisiert.
- neuer Befehl ERROR.
- Copyright-Texte ergaenzt und aktualisiert,
- fehlende Dateien in Projekt aufgenommen.
- Version 0.0.1 (tags/rel-0-0-1)
- neuer Befehl NAMES, kleinere Bugfixes.
- Bug bei PING behoben: war zu restriktiv implementiert :-)
- ngt_TrimStr() hatte noch einen boesen Bug: evtl. wurde ueber den Start
des Strings nach vorne(!) hinaus gelesen. Hopsa!
- die benutzerabhaengigen Einstellungen des ProjectBuilders haben im
CVS eigentlich eher wenig verloren ...
- viele neue Befehle (WHOIS, ISON, OPER, DIE, RESTART),
- neuen Header "defines.h" mit (fast) allen Konstanten. - Code Cleanups und viele "kleine" Aenderungen & Bugfixes.
- Da hatte ich mich wohl ein wenig verrannt; jetzt sollte der Resolver
aber tatsaechlich funktionieren.
- Neue Funktion IRC_MODE() implementiert, div. Aenderungen.
- neue configure-Optione "--enable-strict-rfc".
- Fuehrende und folgende Leerzeichen etc. in Requests werden geloescht.
- Logmeldungen (mal wieder) ein wenig angepasst.
- neue Befehle NOTICE und PRIVMSG.
- Debug-Logging ein wenig reduziert.
- PING/PONG-Befehle implementiert,
- Meldungen ueberarbeitet: enthalten nun (fast) immer den Nick.
- bessere Fehler-Abfragen, diverse Bugfixes.
- Nicks werden nur einmal vergeben :-) - /MOTD wird unterstuetzt.
- Gross- und Kleinschreibung der IRC-Befehle wird ignoriert.
- bessere Debug-Ausgaben.
- USER und NICK wird nun in beliebiger Reihenfolge akzeptiert (wg. BitchX)
- MOTD-Ausgabe begonnen zu implementieren.
- in Conn_WriteStr() wurde das CR+LF nicht angehaengt!
- Fehler-Ausgaben vereinheitlicht.
- einige neue Funktionen,
- CLIENT-Struktur erweitert.
- einige neue Funktionen,
- Konstanten um "CLIENT_"-Prefix erweitert.
- Conn_WriteStr() nimmt nun variable Parameter,
- diverse kleinere Aenderungen.
- bessere Debug-Ausgaben,
- Bug im Parameter-Parser behoben (bei "langem" Parameter) - erste IRC-Befehle werden erkannt :-)
- kleinere Aenderungen an den Log-Meldungen,
- Parse_Request() wird aufgerufen.
- Lese- und Schreib-Puffer implementiert.
- einige neue (Unter-)Funktionen eingefuehrt. - diverse weitere kleinere Aenderungen.
- Begonnen, Client-spezifische Lesepuffer zu implementieren.
- Umstellung auf Datentyp "CONN_ID".
- neue Module (irc, client, channel) werden an- und abgemeldet.
- zweiter Listen-Socket wird zu Testzwecken konfiguriert.
- Conn_Handler() unterstuetzt nun einen Timeout.
- fuer Verbindungen werden keine FILE-Handles mehr benutzt. - kleinere "Code Cleanups" ;-)
- diverse Erweiterungen und Verbesserungen (u.a. sind nun mehrere
Verbindungen und Listen-Sockets moeglich).
- Log-Meldungen an syslog angepasst.
- NGIRCd_Quit ist nun das Flag zum Beenden des ngircd.
- mehr Unterfunktionen eingebaut, Modul besser strukturiert & dokumentiert.
- Anpassungen an neue Module.
- ein paar mehr Kommentare; Variablennamen verstaendlicher gemacht.
- fehlenden Header <arpa/inet.h> ergaenz. - SIGINT und SIGQUIT werden nun ebenfalls behandelt.