Commits


Make sure SimpleMessage() sends <= 512 chars


Removed CONNECTION[].starttime, now saved in CLIENT structure.


remove Try_Write(), Call Handle_Write() directly instead.


add FreeRes_stat(), wait for resolver timeout.


Don't exit server if closing of a socket fails; instead ignore it and pray that this will be "the right thing" ...


removed "my_connects" fd_set.


fix spelling


s/malloc(x*y)/calloc(x,y)/


changed type of Conf_ListenPorts[] from "unsigned int" to UINT16.


Init_Conn_Struct(): Zero structure using memset().


Remove INT, LONG, BOOLEAN, STATIC, CONST, CHAR datatypes. use stdbool.h / inttypes.h if available.


Fixed detection of IRC lines which are too long to send. Detected by Florian Westphal, <westphal@foo.fh-furtwangen.de>.


Fixed a memory leak when resizing the connection pool and realloc() failed. Now we don't fall back to malloc(), which should be sane anyway. Patch from Florian Westphal, <westphal@foo.fh-furtwangen.de>.


Fixed indentation and added some more debug code.


Made ngIRCd compile on HP/UX 10.20 with native HP pre-ANSI C compiler and most probably other older C compilers on other systems.


Changed "read buffer" to "receive buffer" as suggested by Goetz.


Added some missing words: "address" :-)


Fixed wrong buffer size calculation for resolver results.


Fixed a warning message of the compiler when not using IDENT lookups.


Fixed resolver when using IDENT lookups, cleaned up code.


Fixed a wrong assert() which could cause the daemon to exit spuriously when closing down connections.


Fixed some warnings of non-gcc-compilers (e. g. original Apple compiler on A/UX): "warning: illegal pointer combination, op =".


Better logging while establishing and shutting down connections. Results of the resolver are now discarded after the client is registered.


Fixed (optional) TCP Wrapper test which was broken and could result in false results. Thanks to Fuminori Tanizaki <tany@mcnet.ad.jp>!


The type of service (TOS) of all sockets is set to "interactive" now.


Added optional support for IDENT lookups (configure switch "--with-ident").


Removed "USE_" prefixes of configuration #defines.


Fixed and enhanced penalty handling; changed internal time resoluiton of the server to one second. Code cleanup.


New configuration option "MaxConnectionsIP".


New configuration option "Listen" to bind the server to a specific ip.


Fixed typo in debug output.


The server tried to connect to other servers only once when DNS or socket failures occured.


Fixed up some castings.


Changed all PACKAGE's to PACKAGE_NAME and all VERSION's to PACKAGE_VERSION.


New function Conn_SyncServerStruct().


New function Simple_Message(). Better error reporting to clients on connect.


Added support for TCP Wrappers.


- Added optional support for Rendezvous.


- Conn_Close() ignores recursive calls for the same link now.


- Client structures are removed correctly now if an outgoing connection can't be estahlished.


- Changed "once"-server-config-flag into a generic flag. - Changed semantics of "NGIRCd_Passive".


- Reorganized code for new modules "conn-func.c" and "conn-func.h".


- New source files "conn-zip.c" and "conn-zip.h".


- Cleaned up handling of server configuration structures.


- If the server can't close a socket, it panics now. - Quite enhanced logging :-)


- replaced a lot of strcpy() calls with strlcpy() which is more secure.


- replaced a lot of strcat() calls with strlcat() which is more secure.


- renamed variables to fit new signal handler. - moved call to NGIRCd_Rehash() to Conn_Handler().


- new functions Conn_ResetWCounter() and Conn_WCounter().


- new allocated connection structures will be initialized correctly now.


- new file header format (in english); - new file ident semantics.


- Logging von Verbindungen, die geschlossen werden/wurden verbessert.


- Verhalten von Conn_RecvQ() und Conn_SendQ() bei Kompression korrigiert.


- neue Befehle: Conn_StartTime(), Conn_SendQ(), Conn_RecvQ(), Conn_SendMsg(), Conn_RecvMsg(), Conn_SendBytes[Zip](), Conn_RecvBytes[Zip]().


- der Server verschickt keine "NOTICE AUTH"'s mehr.


- "NOTICE AUTH" und Statistiken werden im Strict-RFC-Modus nicht mehr erzeugt.


- Vor dem Schliessen einer Verbindung wird versucht, den Buffer zu leeren.


- beim Umschalten auf Kompression wurden evtl. bereits gelesene Daten nicht entpackt, der Datenstrom war somit dann korrumpiert.


- Unterstuetzung fuer komprimierte Server-Server-Links implementiert.


- volle Lesebuffer und Timeouts behandelt Conn_Handle() nun besser. - Handle_Buffer() liefert nun ein Ergebnis.


- select() in Try_Write() hat falschen (keinen!) Timeout verwendet; - der Timeout fuer das select() in Conn_Handler() ist nun TIME_RES (=2).


- neue Funktionen Conn_InitListeners() und Conn_ExitListeners().


- Logging vom Resolver und Connection-Statistiken verbessert.


- angenommene Socketes werden nun korrekt auf "non-blocking" gestellt; - beim Senden und Empfangen wird EAGAIN ("Blockierung") nun abgefangen.


- Server identifizieren sich nun mit asyncronen Passwoertern.


- Fehler-Handling von connect() gefixed: der Server kann sich nun auch unter A/UX wieder zu anderen verbinden.


- Neue Funktion Conn_SetServer(). - Einige assert()'s aufgeraumt.


- Semantik der Conn_xxxFlag()-Funktionen geaendert.


- Connection-Strukturen werden nun "pool-weise" verwaltet; der Pool wird bei Bedarf bis zu einem konfigurierten Limit vergroessert. - neue Funktionen Conn_First(), Conn_Next(), Conn_ClearFlags(), Conn_Flag() und Conn_SetFlag().


- Verbindungsstatistik ein wenig klarer formuliert.


- Anpassungen bzw. Fixes fuer "strict RFC"-Mode.


- ausgehende Verbindungen mit ID 0 konnten nicht aufgebaut werden ... :-/ - einige Debug-Ausgaben erweitert.


- Segfault unter hoher Netzaktivitaet behoben: in Conn_Close() wird die Connection-Struktur nun frueher als "ungueltig" markiert. - besseres Error-Logging.


- Es wird nun laenger auf Resolver-Ergebnisse gewartet, der Login aber sofort fortgesetzt, so ein Ergebnis eintrifft.


- "schneller Server-Reconnect" wird nun nur dann ausgefuehrt, wenn die Verbindung zuvor "lange genug" aufgebaut war (z.B. also nicht mehr, wenn der Peer sofort beim Connect ein fatales ERROR liefert).


- double in DOUBLE geaendert (ist in portab.h nun definiert).


- verwendete Datentypen aufgeraumt: beispielsweise INT32 ist nun oft ein LONG.


- Client wird nun via NOTICEs ueber Resolver-Status informiert.


- Connection-Statistik implementiert. - Server-NOTICEs haben nun ein "Text-Prefix".


- buffer overflow behoben.


- fehlerhaften "Socket-Test-Patch" korrigiert.


- Conn_Write() prueft nun, ob der Socket noch offen ist, ehe Daten gesendet werden.


- Penalty-Delays gelten nun auch für Schreibvorgaenge. - Conn_Handler() besser strukturiert ...


- "Timing" mal wieder geaendert: sollte schon 1 Sekunde sein, sonst kommen z.B. die PING-Timeouts falsch.


- "Timing" von Conn_Handler() geaendert: der Daemon sollte nun noch weniger CPU-Zeit brauchen :-)


- PASS-Befehl auf NGIRCd_ProtoID umgestellt.


- neue Funktion Conn_SetPenalty() zum Setzen von sog. "Penalty Zeiten"; wird bisher nur beim Connect verwendet (eine Sekunde).


- Syntax von Conn_Handler() geaendert: kein Timeout mehr. - Log-Meldungen bezueglich Server-Restart verbessert. - Timeout von select() auf eine Sekunde erhoeht.


- Weitere Anpassungen an pre-ANSI-Compiler.


- Anpassungen an pre-ANSI-Compiler, - Includes aufgeraumt: Header includieren keine anderen mehr.


- bessere Reaktionen, wenn DNS-Abfragen fehlschlagen.


- inet_aton() wird nur noch verwendet, wenn vorhanden; ansonsten inet_addr().


- h_error wird nur noch ausgewertet, wenn vorhanden.


- ausgehende, sich im Aufbau befindende Server-Links werden nun mit einem speziellen Token (TOKEN_OUTBOUND) versehen, damit der Server sie spaeter als solche wieder erkennen kann.


- falschen Patch rueckgaengig gemacht ...


- in das "Error-File" werden wieder "kritische" Meldungen geschrieben.


- Conn_NewListener() erwartet den Port nun als "unsigned int".


- Ping-Timeouts geben als Debug-Meldung den konfigurierten Timeout mit aus.


- einige assert()-Pruefungen in Conn_WriteStr() ergaenzt.


- A/UX kennt O_NONBLOCK nicht? Oder in einem anderen Header? ...?


- Test, ob bereits ein Server einer Gruppe aktiv ist, korrigiert.


- Projektdatei an neue Quellcode-Struktur angepasst.


- externe portab-Header werden nicht mehr benoetigt/benutzt, dadurch einige Aenderungen an diversen Source-Dateien und Headern. - Dateien enthalten keine CVS-History mehr.


- Client_Destroy() hat neuen Paramter: QUITs fuer Clients verschicken?


- ein sofortiger Re-Connect wird nur dann versucht, wenn die Vernindung "lange genug" bereits bestanden hatte.


*** empty log message ***


- Handling von "--version" und "--help" nochmal geaendert ...


- Logging geaendert: detaillierter im Syslog, "allgemeiner" fuer Clients.


- Aenderung des Idle-Verhalten revidiert: das war ein Schnellschuss :-/


- Timeouts ausgehender Verbindungen werden besser erkannt (z.B. unter Cygwin). - Idle-Time der Hauptschleife [Conn_Handle()] erhoeht: weniger Last.


- bei abgebrochene ausgehende Server-Verbindungen wird der naechste Ver- bindungsversuch in RECONNECT_DELAY Sekunden (3) unternommen und nicht mehr "ConnectRetry" Sekunden gewartet.


- der Wert der Konfigurations-Variable "ConnectRetry" wird besser beachtet.


- ausgehende Verbindungen werden nun asyncron connectiert und blockieren nicht mehr den Server. Dadurch waren einige Aenderungen noetig. - diverse Log-Meldungen ueberarbeitet.


- Logging bei Timeout von Verbindungen geaendert.


- an Conn_Close() werden zwei weitere Fehlermeldungen zum Forwarden uebergeben.


- Ergebnistyp von Conn_GetIdle() und Conn_LastPing() auf "time_t" geaendert.


- Bei ausgehenden Verbindungen wird der Ziel-Port ins Log geschrieben.


- "Passive-Mode" implementiert: kein Auto-Conect zu anderen Servern.


- neue Funktion Conn_LastPing().


- der Sniffer wird nun nur noch aktiviert, wenn auf Kommandozeile angegeben.


- PASSSERVERADD definiert, wird beim PASS-Befehl an Server verwendet.


- Loglevel und Meldungen nochmals geaendert. Level passen nun besser.


- Vorbereitungen fuer Ident-Abfragen bei neuen Client-Strukturen.


- Fehlerpruefung bei select() in der "Hauptschleife" korrigiert.


- "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.


- Loglevel ein wenig angepasst.


- Client-Strukruren werden nur noch ueber Funktionen angesprochen.


- diverse Aenderungen und Umsetellungen fuer Server-Links.


- 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.


- neue Defines fuer max. Anzahl Server und Operatoren.


- #include's fuer stdlib.h ergaenzt.


- viele neue Befehle (WHOIS, ISON, OPER, DIE, RESTART), - neuen Header "defines.h" mit (fast) allen Konstanten. - Code Cleanups und viele "kleine" Aenderungen & Bugfixes.


- Unterstuetzung fuer die Konfigurationsdatei eingebaut.


- bessere Dokumentation des Modules bzw. der Funktionen.


- kleinere Aenderungen ("clean-ups") bei Logging (Resolver).


- Da hatte ich mich wohl ein wenig verrannt; jetzt sollte der Resolver aber tatsaechlich funktionieren.


- asyncronen Resolver (IP->Name) implementiert, dadurch div. Aenderungen.


- Loglevel (nochmal) angepasst.


- bei "Null-Requests" wird nichts mehr geloggt. Uberfluessig, da normal.


- vergessene Variable bei Ping-Timeout-Logmeldung ergaenzt. Opsa.


- "Code Cleanups".


- Verbindungen mit Lesefehlern werden nun korrekt terminiert.


- PING/PONG-Timeout implementiert.


- buffer werden nun periodisch geprueft, keine haengenden Clients mehr.


- Conn_Close() eingefuehrt: war die lokale Funktion Close_Connection().


- in Conn_WriteStr() wurde das CR+LF nicht angehaengt! - Fehler-Ausgaben vereinheitlicht.


- Conn_WriteStr() nimmt nun variable Parameter, - diverse kleinere Aenderungen.


- 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".


- boesen "Speicherschiesser" in Log() gefixt.


- 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).


- Modul zur Verwaltung aller Netzwerk-Verbindungen begonnen.