mirror of
https://github.com/osmarks/ngircd.git
synced 2025-10-01 00:12:24 +00:00
Compare commits
15 Commits
rel-0-12-0
...
branch-0-4
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a0318e8d0b | ||
![]() |
d0084cfae2 | ||
![]() |
880d35f82b | ||
![]() |
83e49bf74b | ||
![]() |
b6f53b6f82 | ||
![]() |
ab52d2b818 | ||
![]() |
aaf42ae77b | ||
![]() |
fa30f2a0d2 | ||
![]() |
1fa46bedbe | ||
![]() |
d772acf9d6 | ||
![]() |
15f380592d | ||
![]() |
54b9381dd0 | ||
![]() |
889b7ef48f | ||
![]() |
31c8078706 | ||
![]() |
34eb2528d0 |
38
ChangeLog
38
ChangeLog
@@ -10,12 +10,36 @@
|
|||||||
-- ChangeLog / Aenderungen --
|
-- ChangeLog / Aenderungen --
|
||||||
|
|
||||||
|
|
||||||
ngIRCd 0.3.x, ??.??.2002
|
ngIRCd 0.4.3, 11.06.2002
|
||||||
|
|
||||||
|
- Bei PRIVMSG und NOTICE hat der ngIRCd nicht ueberpruft, ob das Ziel
|
||||||
|
ueberhaupt ein User ist. War es keiner, so fuehrte dies zu einem
|
||||||
|
Abbruch des Servers [es wurde assert() aufgerufen].
|
||||||
|
|
||||||
|
ngIRCd 0.4.2, 29.04.2002
|
||||||
|
|
||||||
|
- LUSERS verzaehlt sich bei eigenen Server-Links nicht mehr.
|
||||||
|
- QUIT wird nun auch von noch nicht registrierten Clients akzeptiert.
|
||||||
|
- IRC-Funktion LIST implementiert; bisher werden allerdings noch keine
|
||||||
|
Regular Expressions (bis auf "*") unterstuetzt.
|
||||||
|
|
||||||
|
ngIRCd 0.4.1, 08.04.2002
|
||||||
|
|
||||||
|
- Bei Server-Links wird nicht mehr an Hand der Anzahl der Parameter
|
||||||
|
eines empfangenen SERVER-Befehls, sondern "intern" erkannt, ob es
|
||||||
|
sich um eine ein- oder ausgehende Verbindung handelt und somit das
|
||||||
|
eigene PASS-SERVER-Paar gesendet werden muss oder nicht. Da sich
|
||||||
|
verschiedene Versionen des Original-ircd's anders verhalten, schlug
|
||||||
|
die Anmeldung je nach Gehenseite evtl. fehl.
|
||||||
|
- Bei einem NICK-Befehl eines lokalen Client konnte der Server ab-
|
||||||
|
stuerzen, da ein Format-String einer Log-Meldung fehlerhaft war.
|
||||||
|
|
||||||
|
ngIRCd 0.4.0, 01.04.2002
|
||||||
|
|
||||||
- IRC-Befehle nochmal auf weitere Source-Dateien aufgespalten.
|
- IRC-Befehle nochmal auf weitere Source-Dateien aufgespalten.
|
||||||
- WHO implementiert (bisher ohne komplette Unerstuetzung von Masks).
|
- WHO implementiert (bisher ohne komplette Unterstuetzung von Masks).
|
||||||
- Der AWAY-Mode wurde nicht ueber mehrere Server-Links weitergegeben.
|
- Der AWAY-Mode wurde nicht ueber mehrere Server-Links weitergegeben.
|
||||||
- stderr wird nun in eine Datei umgelenkt (/usr/local/var/ngircd.err).
|
- stderr wird nun in eine Datei umgelenkt (/tmp/ngircd-<PID>.err).
|
||||||
Laeuft der Server nicht im Debug-Modus, so wird diese bei Programm-
|
Laeuft der Server nicht im Debug-Modus, so wird diese bei Programm-
|
||||||
ende geloescht. Sollte der Server abstuerzen, finden sich hier evtl.
|
ende geloescht. Sollte der Server abstuerzen, finden sich hier evtl.
|
||||||
zusaetzliche Informationen.
|
zusaetzliche Informationen.
|
||||||
@@ -23,7 +47,6 @@ ngIRCd 0.3.x, ??.??.2002
|
|||||||
- die Beispiel-Konfigurationsdatei (doc/sample-ngircd.conf) wird als
|
- die Beispiel-Konfigurationsdatei (doc/sample-ngircd.conf) wird als
|
||||||
ngircd.conf installiert, wenn noch keine "echte" Konfigurationsdatei
|
ngircd.conf installiert, wenn noch keine "echte" Konfigurationsdatei
|
||||||
vorhanden ist.
|
vorhanden ist.
|
||||||
- bei "ngircd --help" werden nun die eincompilierten Pfade angezeigt.
|
|
||||||
- bei WHO, WHOIS und NAMES wird nun nur noch der Status "Operator" oder
|
- bei WHO, WHOIS und NAMES wird nun nur noch der Status "Operator" oder
|
||||||
"voiced" geliefert -- nicht mehr beides.
|
"voiced" geliefert -- nicht mehr beides.
|
||||||
- Server-Gruppen implementiert: es wird immer nur zu einem Server in
|
- Server-Gruppen implementiert: es wird immer nur zu einem Server in
|
||||||
@@ -31,19 +54,20 @@ ngIRCd 0.3.x, ??.??.2002
|
|||||||
nicht, so wird der naechste probiert (Variable "Group" in der Kon-
|
nicht, so wird der naechste probiert (Variable "Group" in der Kon-
|
||||||
figurationsdatei, Sektion [Server]).
|
figurationsdatei, Sektion [Server]).
|
||||||
- IRC_PING() ist, wenn nicht im "strict RFC"-Mode, toleranter und ak-
|
- IRC_PING() ist, wenn nicht im "strict RFC"-Mode, toleranter und ak-
|
||||||
zeptiert beliebig viele Parameter: z.B. BitchX sendet soetwas.
|
zeptiert beliebig viele Parameter (z.B. BitchX sendet soetwas).
|
||||||
- die "Portab-Header" werden nicht mehr benoetigt, die System-Erkennung
|
- die "Portab-Header" werden nicht mehr benoetigt, die System-Erkennung
|
||||||
wird nun ausschliesslich vom configure-Script durchgefuehrt. System-
|
wird nun ausschliesslich vom configure-Script durchgefuehrt. System-
|
||||||
abhaengige Definitionen finden sich nun unter src/portrab/.
|
abhaengige Definitionen finden sich nun unter src/portrab/.
|
||||||
- Clients und Channels werden nicht mehr ueber ihren Namen, sondern
|
- Clients und Channels werden nicht mehr ueber ihren Namen, sondern
|
||||||
einen Hash-Wert gesucht: sollte deutlich schneller sein.
|
einen Hash-Wert gesucht: sollte deutlich schneller sein.
|
||||||
- neuer Kommandozeilen-Parameter "--configtest": die Konfiguration wird
|
- neuer Kommandozeilen-Parameter "--configtest": die Konfiguration wird
|
||||||
gelesen und die dann verwendeten Werte angezeigt.
|
gelesen und dann die verwendeten Werte angezeigt.
|
||||||
- Client-Mode "s" (Server Notices) implementiert.
|
- Client-Mode "s" (Server Notices) implementiert.
|
||||||
- mit dem neuen Kommandozeilen-Parameter "--config"/"-f" kann eine
|
- mit dem neuen Kommandozeilen-Parameter "--config"/"-f" kann eine
|
||||||
alternative Konfigurationsdatei angegeben werden.
|
alternative Konfigurationsdatei angegeben werden.
|
||||||
- nach dem Start kann der ngIRCd, wenn er mit root-Rechten laeuft,
|
- nach dem Start kann der ngIRCd, wenn er mit root-Rechten laeuft,
|
||||||
zu einer anderen User-ID und Group-ID wechseln.
|
zu einer anderen User-ID und Group-ID wechseln.
|
||||||
|
- URL der Homepage wird u.a. bei "--version" mit angezeigt.
|
||||||
|
|
||||||
ngIRCd 0.3.0, 02.03.2002
|
ngIRCd 0.3.0, 02.03.2002
|
||||||
|
|
||||||
@@ -174,4 +198,4 @@ ngIRCd 0.0.1, 31.12.2001
|
|||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
$Id: ChangeLog,v 1.54 2002/03/29 23:41:23 alex Exp $
|
$Id: ChangeLog,v 1.54.2.6 2002/06/11 20:29:44 alex Exp $
|
||||||
|
112
INSTALL
112
INSTALL
@@ -8,36 +8,29 @@
|
|||||||
der GNU General Public License.
|
der GNU General Public License.
|
||||||
|
|
||||||
-- INSTALL / Installation --
|
-- INSTALL / Installation --
|
||||||
|
|
||||||
|
Ilja Osthoff, <ilja@glide.ath.cx>
|
||||||
|
|
||||||
|
|
||||||
ngIRCd ist fuer UNIXoide-Systeme konzipiert. Dieser Text beschreibt den
|
I. Standard-Installation
|
||||||
"Standardfall": ein UNIX bzw. UNIX-aehnliches System, das von GNU automake
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
und GNU autoconf ("configure") unterstuetzt wird.
|
|
||||||
|
ngIRCd ist fuer UNIXoide-Systeme konzipiert worden, das bedeutet, dass die
|
||||||
|
Installation auf einem modernen UNIX-aehnlichen System kein Problem dar-
|
||||||
|
stellen sollte. Das System muss nur von GNU automake und GNU autoconf
|
||||||
|
("configure") unterstuetzt werden.
|
||||||
|
|
||||||
|
Die Standard-Installation sieht so aus:
|
||||||
|
|
||||||
|
1) tar xzf ngircd-<Version>.tar.gz
|
||||||
|
2) cd ngircd-<Version>
|
||||||
|
3) ./autogen.sh [nur erforderlich, wenn ueber CVS bezogen]
|
||||||
|
4) ./configure
|
||||||
|
5) make
|
||||||
|
6) make install
|
||||||
|
|
||||||
|
|
||||||
I. Voraussetzungen
|
zu 3): "autogen.sh"
|
||||||
~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
ngIRCd benoetigt "Alex' Portability Headers" (portab.h). Diese koennen von
|
|
||||||
der Homepage heruntergeladen werden:
|
|
||||||
|
|
||||||
<http://arthur.ath.cx/~alex/ngircd/#download>
|
|
||||||
|
|
||||||
Vor dem configure-Lauf des ngIRCd muessen dies Header auf dem System in-
|
|
||||||
stalliert sein, anonsten bricht configure ab.
|
|
||||||
|
|
||||||
|
|
||||||
II. Quick Start
|
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
In der Regel sind folgende Schritte ausreichend:
|
|
||||||
|
|
||||||
1) ./autogen.sh [nur erforderlich, wenn ueber CVS bezogen]
|
|
||||||
2) ./configure
|
|
||||||
3) make
|
|
||||||
|
|
||||||
|
|
||||||
zu 1) autogen.sh:
|
|
||||||
|
|
||||||
Der erste Schritt, autogen.sh, ist nur notwendig, wenn das configure-Script
|
Der erste Schritt, autogen.sh, ist nur notwendig, wenn das configure-Script
|
||||||
noch nicht vorhanden ist. Dies ist nie bei offiziellen ("stabilen") Versionen
|
noch nicht vorhanden ist. Dies ist nie bei offiziellen ("stabilen") Versionen
|
||||||
@@ -54,7 +47,7 @@ Versionen!) benoetigt.
|
|||||||
(nochmal: "Endanwender" mussen diesen Schritt i.d.R. nicht ausfuehren!)
|
(nochmal: "Endanwender" mussen diesen Schritt i.d.R. nicht ausfuehren!)
|
||||||
|
|
||||||
|
|
||||||
zu 2) ./configure:
|
zu 4): "./configure"
|
||||||
|
|
||||||
Mit dem configure-Script wird ngIRCd, wie GNU Software meistens, an das
|
Mit dem configure-Script wird ngIRCd, wie GNU Software meistens, an das
|
||||||
lokale System angepasst und die erforderlichen Makefile's erzeugt.
|
lokale System angepasst und die erforderlichen Makefile's erzeugt.
|
||||||
@@ -64,10 +57,22 @@ erkennen und entsprechend reagieren. Sollte dies einmal nicht der Fall sein,
|
|||||||
so zeigt "./configure --help" moegliche Optionen.
|
so zeigt "./configure --help" moegliche Optionen.
|
||||||
|
|
||||||
|
|
||||||
zu 3) make:
|
zu 5): "make"
|
||||||
|
|
||||||
Der make-Befehl bearbeitet die vom configure-Script erzeugten Makefile's und
|
Der make-Befehl bearbeitet die vom configure-Script erzeugten Makefile's und
|
||||||
uebersetzt die comBase-Library und die Testprogramme.
|
uebersetzt den ngIRCd.
|
||||||
|
|
||||||
|
|
||||||
|
zu 6): "make install"
|
||||||
|
|
||||||
|
Mit "make install" wird der Server und ggf. eine Beispiels-Konfiguration
|
||||||
|
im System installiert; hierzu sind in der Regel root-Rechte erforderlich.
|
||||||
|
Eine bereits vorhandene Konfigurationsdatei wird nie ueberschrieben.
|
||||||
|
|
||||||
|
Folgende Dateien werden installiert:
|
||||||
|
|
||||||
|
- /usr/local/sbin/ngircd: ausfuehrbarer Server
|
||||||
|
- /usr/local/etc/ngircd.conf: Beispiel-Konfiguration, wenn nicht vorhanden
|
||||||
|
|
||||||
|
|
||||||
III. Nuetzliche make-Targets
|
III. Nuetzliche make-Targets
|
||||||
@@ -86,5 +91,52 @@ nuetzlichen Targets:
|
|||||||
Naechster Schritt: -> ./autogen.sh
|
Naechster Schritt: -> ./autogen.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IV. Konfigurationsdatei ngircd.conf
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
In der Konfigurationsdatei werden Kommentare durch "#" oder durch ";"
|
||||||
|
eingeleitet. Dieses dient nur der besseren Lesbarkeit.
|
||||||
|
|
||||||
|
Die Datei ist in drei Abschnitte unterteilt: [Global], [Operator] und
|
||||||
|
[Server]. Im [Global]-Teil werden die grundlegenden Einstellungen vor-
|
||||||
|
genommen, z.B. der Server-Name und die Ports, auf denen er Verbindungen
|
||||||
|
annehmen soll. In [Operator]-Abschnitten werden Server-Operatoren fest-
|
||||||
|
gelegt und unter [Server] werden die Einstellungen fuer die Verbindung
|
||||||
|
mit anderen Servern konfiguriert.
|
||||||
|
|
||||||
|
Die Bedeutung der einzelnen Variablen ist in der Beispiel-Konfiguration
|
||||||
|
"doc/sample-ngircd.conf" erklaert, die bei "make install" auch als
|
||||||
|
"ngircd.conf" in /usr/local/etc installiert wird, wenn dort noch keine
|
||||||
|
Konfigurationsdatei vorhanden ist.
|
||||||
|
|
||||||
|
|
||||||
|
V. Kommandozeilen-Optionen
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Folgende Parameter koennen dem ngIRCd u.a. uebergeben werden:
|
||||||
|
|
||||||
|
-f, --config <file>
|
||||||
|
Der Daemon wird angewiesen, statt der Standard-Konfigurationsdatei
|
||||||
|
/usr/local/etc/ngircd.conf die Datei <file> einzulesen.
|
||||||
|
|
||||||
|
-n, --nodaemon
|
||||||
|
ngIRCd soll im Fordergrund laufen; alle Meldungen werden zusaetzlich
|
||||||
|
zum Syslog auch auf der Konsole ausgegeben.
|
||||||
|
|
||||||
|
-p, --passive
|
||||||
|
Verbindungen zu anderen Servern (wie in der Konfigurationsdatei in
|
||||||
|
[Server]-Abschnitten definiert) werden nicht automatisch hergestellt.
|
||||||
|
|
||||||
|
--configtest
|
||||||
|
Die Konfigurationsdatei wird eingelesen, ueberprueft und so aus-
|
||||||
|
gegeben, wie sie vom ngIRCd interpretiert wurde. Danach beendet
|
||||||
|
sich der Server wieder.
|
||||||
|
|
||||||
|
Mit dem Parameter "--help" werden alle unterstuetzten Parameter angezeigt,
|
||||||
|
mit "--version" die Versionsnummer. Bei beiden Parametern beendet sich der
|
||||||
|
Server nach der Ausgabe wieder.
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
$Id: INSTALL,v 1.5 2002/03/03 13:07:01 alex Exp $
|
$Id: INSTALL,v 1.6.2.1 2002/05/08 15:47:06 alex Exp $
|
||||||
|
8
NEWS
8
NEWS
@@ -10,10 +10,10 @@
|
|||||||
-- NEWS / Neuigkeiten --
|
-- NEWS / Neuigkeiten --
|
||||||
|
|
||||||
|
|
||||||
ngIRCd 0.3.x, ??.??.2002
|
ngIRCd 0.4.0, 01.04.2002
|
||||||
|
|
||||||
- WHO implementiert (bisher ohne komplette Unerstuetzung von Masks).
|
- WHO implementiert (bisher ohne komplette Unterstuetzung von Masks).
|
||||||
- stderr wird nun in eine Datei umgelenkt (/usr/local/var/ngircd.err).
|
- stderr wird nun in eine Datei umgelenkt (/ngircd-<PID>.err).
|
||||||
Laeuft der Server nicht im Debug-Modus, so wird diese bei Programm-
|
Laeuft der Server nicht im Debug-Modus, so wird diese bei Programm-
|
||||||
ende geloescht. Sollte der Server abstuerzen, finden sich hier evtl.
|
ende geloescht. Sollte der Server abstuerzen, finden sich hier evtl.
|
||||||
zusaetzliche Informationen.
|
zusaetzliche Informationen.
|
||||||
@@ -85,4 +85,4 @@ ngIRCd 0.0.1, 31.12.2001
|
|||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
$Id: NEWS,v 1.25 2002/03/29 23:41:23 alex Exp $
|
$Id: NEWS,v 1.25.2.3 2002/04/01 17:18:03 alex Exp $
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
# Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
# Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
# der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
# der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
#
|
#
|
||||||
# $Id: configure.in,v 1.39 2002/03/30 18:02:39 alex Exp $
|
# $Id: configure.in,v 1.39.2.5 2002/06/11 20:29:44 alex Exp $
|
||||||
#
|
#
|
||||||
|
|
||||||
# -- Initialisierung --
|
# -- Initialisierung --
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
AC_INIT
|
AC_INIT
|
||||||
AC_CANONICAL_TARGET
|
AC_CANONICAL_TARGET
|
||||||
AC_CONFIG_SRCDIR(src/config.h.in)
|
AC_CONFIG_SRCDIR(src/config.h.in)
|
||||||
AM_INIT_AUTOMAKE(ngircd,0.3.0-CVS)
|
AM_INIT_AUTOMAKE(ngircd,0.4.3)
|
||||||
AM_CONFIG_HEADER(src/config.h)
|
AM_CONFIG_HEADER(src/config.h)
|
||||||
|
|
||||||
# -- Templates fuer config.h --
|
# -- Templates fuer config.h --
|
||||||
|
@@ -18,7 +18,7 @@ Folgende Software wird jedoch benoetigt:
|
|||||||
- GNU C Compiler (gcc)
|
- GNU C Compiler (gcc)
|
||||||
Bezugsquellen:
|
Bezugsquellen:
|
||||||
http://www.rezepte-im-web.de/appleux/gcc281.tar.gz
|
http://www.rezepte-im-web.de/appleux/gcc281.tar.gz
|
||||||
ftp://arthur.ath.cx/pub/AUX/Software/Development/gcc281.tar.gz
|
ftp://arthur.ath.cx/pub/AUX/Software/Development/gcc-2.8.1-auxbin.tar.gz
|
||||||
|
|
||||||
- GNU make
|
- GNU make
|
||||||
Bezugsquellen:
|
Bezugsquellen:
|
||||||
@@ -30,6 +30,13 @@ Folgende Software wird jedoch benoetigt:
|
|||||||
http://www.rezepte-im-web.de/appleux/sed-3.02.tar.gz
|
http://www.rezepte-im-web.de/appleux/sed-3.02.tar.gz
|
||||||
ftp://arthur.ath.cx/pub/AUX/Software/Tools/sed-3.02.tar.gz
|
ftp://arthur.ath.cx/pub/AUX/Software/Tools/sed-3.02.tar.gz
|
||||||
|
|
||||||
|
- install (z.B. aus den GNU fileutils)
|
||||||
|
Ein install, welches entweder so "broken" ist, dass configure das eigene
|
||||||
|
Shell-Script waehlt, oder eines, das funktioniert. Leider ist mindestens
|
||||||
|
ein Binary im Umlauf, das Probleme macht.
|
||||||
|
Bezugsquelle:
|
||||||
|
ftp://arthur.ath.cx/pub/UNIX/AUX/Software/Tools/fileutils-4.0.tar.gz
|
||||||
|
|
||||||
- libUTIL.a
|
- libUTIL.a
|
||||||
Bezugsquellen:
|
Bezugsquellen:
|
||||||
http://ftp.mayn.de/pub/apple/apple_unix/Sys_stuff/libUTIL-2.1.tar.gz
|
http://ftp.mayn.de/pub/apple/apple_unix/Sys_stuff/libUTIL-2.1.tar.gz
|
||||||
@@ -39,9 +46,26 @@ Nachdem diese Pakete entsprechend installiert sind, reicht ein ganz normales
|
|||||||
"./configure" und "make" aus, um den ngIRCd unter A/UX zu compilieren.
|
"./configure" und "make" aus, um den ngIRCd unter A/UX zu compilieren.
|
||||||
|
|
||||||
|
|
||||||
|
Noch ein paar Hinweise, wenn es doch (noch) nicht klappt:
|
||||||
|
|
||||||
|
- auf dem System muss entweder ein install vorhanden sein, welches so
|
||||||
|
"broken" ist, dass configure das eigene Shell-Skript waehlt, oder eben
|
||||||
|
eines, welches funktioniert. Leider ist mindestens ein Binary im Um-
|
||||||
|
lauf, welches Probleme verursacht. Das Binary aus folgenden GNU
|
||||||
|
fileutils funktioniert hier aber z.B.:
|
||||||
|
ftp://arthur.ath.cx/pub/UNIX/AUX/Software/Tools/fileutils-4.0.tar.gz
|
||||||
|
|
||||||
|
- das sich im Umlauf befindende vorcompilierte Binary der alten Bash sollte
|
||||||
|
unbedingt ausserhalb von /bin (z.B. unter /usr/local/bin) installiert
|
||||||
|
werden. Ansonsten waehlt es das configure-Script als Shell aus, leider
|
||||||
|
funktioniert das aber nicht.
|
||||||
|
Das config.status-Script sollte mit der ksh als Interpreter erstellt
|
||||||
|
worden sein (siehe erste Zeile davon!).
|
||||||
|
|
||||||
|
|
||||||
Hier die Zeiten von Alex System (Macintosh SE/30, 32 MB, A/UX 3.0.1):
|
Hier die Zeiten von Alex System (Macintosh SE/30, 32 MB, A/UX 3.0.1):
|
||||||
configure: 7:33, make: 12:02
|
configure: 7:33, make: 12:02
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
$Id: README-AUX.txt,v 1.1 2002/02/25 14:02:32 alex Exp $
|
$Id: README-AUX.txt,v 1.1.2.2 2002/04/29 14:44:24 alex Exp $
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: channel.c,v 1.20 2002/03/25 16:54:26 alex Exp $
|
* $Id: channel.c,v 1.20.2.1 2002/04/29 14:11:23 alex Exp $
|
||||||
*
|
*
|
||||||
* channel.c: Management der Channels
|
* channel.c: Management der Channels
|
||||||
*/
|
*/
|
||||||
@@ -171,6 +171,24 @@ GLOBAL INT Channel_Count( VOID )
|
|||||||
} /* Channel_Count */
|
} /* Channel_Count */
|
||||||
|
|
||||||
|
|
||||||
|
GLOBAL INT Channel_MemberCount( CHANNEL *Chan )
|
||||||
|
{
|
||||||
|
CL2CHAN *cl2chan;
|
||||||
|
INT count;
|
||||||
|
|
||||||
|
assert( Chan != NULL );
|
||||||
|
|
||||||
|
count = 0;
|
||||||
|
cl2chan = My_Cl2Chan;
|
||||||
|
while( cl2chan )
|
||||||
|
{
|
||||||
|
if( cl2chan->channel == Chan ) count++;
|
||||||
|
cl2chan = cl2chan->next;
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
} /* Channel_MemberCount */
|
||||||
|
|
||||||
|
|
||||||
GLOBAL CHAR *Channel_Name( CHANNEL *Chan )
|
GLOBAL CHAR *Channel_Name( CHANNEL *Chan )
|
||||||
{
|
{
|
||||||
assert( Chan != NULL );
|
assert( Chan != NULL );
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: channel.h,v 1.16 2002/03/25 19:11:01 alex Exp $
|
* $Id: channel.h,v 1.16.2.1 2002/04/29 14:11:23 alex Exp $
|
||||||
*
|
*
|
||||||
* channel.h: Management der Channels (Header)
|
* channel.h: Management der Channels (Header)
|
||||||
*/
|
*/
|
||||||
@@ -59,6 +59,7 @@ GLOBAL BOOLEAN Channel_Part( CLIENT *Client, CLIENT *Origin, CHAR *Name, CHAR *R
|
|||||||
GLOBAL VOID Channel_RemoveClient( CLIENT *Client, CHAR *Reason );
|
GLOBAL VOID Channel_RemoveClient( CLIENT *Client, CHAR *Reason );
|
||||||
|
|
||||||
GLOBAL INT Channel_Count( VOID );
|
GLOBAL INT Channel_Count( VOID );
|
||||||
|
GLOBAL INT Channel_MemberCount( CHANNEL *Chan );
|
||||||
|
|
||||||
GLOBAL CHAR *Channel_Name( CHANNEL *Chan );
|
GLOBAL CHAR *Channel_Name( CHANNEL *Chan );
|
||||||
GLOBAL CHAR *Channel_Modes( CHANNEL *Chan );
|
GLOBAL CHAR *Channel_Modes( CHANNEL *Chan );
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: client.c,v 1.53 2002/03/27 20:52:58 alex Exp $
|
* $Id: client.c,v 1.53.2.1 2002/04/29 14:11:23 alex Exp $
|
||||||
*
|
*
|
||||||
* client.c: Management aller Clients
|
* client.c: Management aller Clients
|
||||||
*
|
*
|
||||||
@@ -798,7 +798,17 @@ GLOBAL INT Client_MyServiceCount( VOID )
|
|||||||
|
|
||||||
GLOBAL INT Client_MyServerCount( VOID )
|
GLOBAL INT Client_MyServerCount( VOID )
|
||||||
{
|
{
|
||||||
return MyCount( CLIENT_SERVER );
|
CLIENT *c;
|
||||||
|
INT cnt;
|
||||||
|
|
||||||
|
cnt = 0;
|
||||||
|
c = My_Clients;
|
||||||
|
while( c )
|
||||||
|
{
|
||||||
|
if(( c->type == CLIENT_SERVER ) && ( c->hops == 1 )) cnt++;
|
||||||
|
c = (CLIENT *)c->next;
|
||||||
|
}
|
||||||
|
return cnt;
|
||||||
} /* Client_MyServerCount */
|
} /* Client_MyServerCount */
|
||||||
|
|
||||||
|
|
||||||
@@ -867,7 +877,7 @@ LOCAL INT Count( CLIENT_TYPE Type )
|
|||||||
c = My_Clients;
|
c = My_Clients;
|
||||||
while( c )
|
while( c )
|
||||||
{
|
{
|
||||||
if( c && ( c->type == Type )) cnt++;
|
if( c->type == Type ) cnt++;
|
||||||
c = (CLIENT *)c->next;
|
c = (CLIENT *)c->next;
|
||||||
}
|
}
|
||||||
return cnt;
|
return cnt;
|
||||||
@@ -883,7 +893,7 @@ LOCAL INT MyCount( CLIENT_TYPE Type )
|
|||||||
c = My_Clients;
|
c = My_Clients;
|
||||||
while( c )
|
while( c )
|
||||||
{
|
{
|
||||||
if( c && ( c->introducer == This_Server ) && ( c->type == Type )) cnt++;
|
if(( c->introducer == This_Server ) && ( c->type == Type )) cnt++;
|
||||||
c = (CLIENT *)c->next;
|
c = (CLIENT *)c->next;
|
||||||
}
|
}
|
||||||
return cnt;
|
return cnt;
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: conn.c,v 1.60 2002/03/30 13:40:56 alex Exp $
|
* $Id: conn.c,v 1.60.2.1 2002/04/08 18:07:42 alex Exp $
|
||||||
*
|
*
|
||||||
* connect.h: Verwaltung aller Netz-Verbindungen ("connections")
|
* connect.h: Verwaltung aller Netz-Verbindungen ("connections")
|
||||||
*/
|
*/
|
||||||
@@ -976,6 +976,7 @@ LOCAL VOID New_Server( INT Server, CONN_ID Idx )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Client_SetIntroducer( c, c );
|
Client_SetIntroducer( c, c );
|
||||||
|
Client_SetToken( c, TOKEN_OUTBOUND );
|
||||||
|
|
||||||
/* Verbindung registrieren */
|
/* Verbindung registrieren */
|
||||||
My_Connections[Idx].sock = new_sock;
|
My_Connections[Idx].sock = new_sock;
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: defines.h,v 1.21 2002/03/29 22:55:02 alex Exp $
|
* $Id: defines.h,v 1.21.2.1 2002/04/08 18:07:42 alex Exp $
|
||||||
*
|
*
|
||||||
* defines.h: (globale) Konstanten
|
* defines.h: (globale) Konstanten
|
||||||
*/
|
*/
|
||||||
@@ -28,9 +28,9 @@
|
|||||||
|
|
||||||
#define MAX_LISTEN_PORTS 16 /* max. Anzahl von Listen-Ports */
|
#define MAX_LISTEN_PORTS 16 /* max. Anzahl von Listen-Ports */
|
||||||
|
|
||||||
#define MAX_OPERATORS 8 /* max. Anzahl konfigurierbarer Operatoren */
|
#define MAX_OPERATORS 16 /* max. Anzahl konfigurierbarer Operatoren */
|
||||||
|
|
||||||
#define MAX_SERVERS 8 /* max. Anzahl konfigurierbarer Server ("Peers") */
|
#define MAX_SERVERS 16 /* max. Anzahl konfigurierbarer Server ("Peers") */
|
||||||
|
|
||||||
#define MAX_CONNECTIONS 100 /* max. Anzahl von Verbindungen an diesem Server */
|
#define MAX_CONNECTIONS 100 /* max. Anzahl von Verbindungen an diesem Server */
|
||||||
|
|
||||||
@@ -75,6 +75,8 @@
|
|||||||
|
|
||||||
#define MAX_LOG_MSG_LEN 256 /* max. Laenge einer Log-Meldung */
|
#define MAX_LOG_MSG_LEN 256 /* max. Laenge einer Log-Meldung */
|
||||||
|
|
||||||
|
#define TOKEN_OUTBOUND -2 /* Kennzeichnung fuer ausgehende Server-Links im Aufbau */
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: irc-channel.c,v 1.3 2002/03/25 17:08:54 alex Exp $
|
* $Id: irc-channel.c,v 1.3.2.1 2002/04/29 14:11:23 alex Exp $
|
||||||
*
|
*
|
||||||
* irc-channel.c: IRC-Channel-Befehle
|
* irc-channel.c: IRC-Channel-Befehle
|
||||||
*/
|
*/
|
||||||
@@ -218,4 +218,45 @@ GLOBAL BOOLEAN IRC_TOPIC( CLIENT *Client, REQUEST *Req )
|
|||||||
} /* IRC_TOPIC */
|
} /* IRC_TOPIC */
|
||||||
|
|
||||||
|
|
||||||
|
GLOBAL BOOLEAN IRC_LIST( CLIENT *Client, REQUEST *Req )
|
||||||
|
{
|
||||||
|
CHAR *pattern;
|
||||||
|
CHANNEL *chan;
|
||||||
|
|
||||||
|
assert( Client != NULL );
|
||||||
|
assert( Req != NULL );
|
||||||
|
|
||||||
|
if( Client_Type( Client ) != CLIENT_USER ) return IRC_WriteStrClient( Client, ERR_NOTREGISTERED_MSG, Client_ID( Client ));
|
||||||
|
|
||||||
|
/* Falsche Anzahl Parameter? */
|
||||||
|
if( Req->argc > 1 ) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command );
|
||||||
|
|
||||||
|
if( Req->argc > 0 ) pattern = strtok( Req->argv[0], "," );
|
||||||
|
else pattern = "*";
|
||||||
|
|
||||||
|
while( pattern )
|
||||||
|
{
|
||||||
|
/* alle Channel durchgehen */
|
||||||
|
chan = Channel_First( );
|
||||||
|
while( chan )
|
||||||
|
{
|
||||||
|
/* Passt die Suchmaske auf diesen Channel? Bisher werden hier
|
||||||
|
* "regular expressions" aber noch nicht unterstuetzt ... */
|
||||||
|
if(( strcasecmp( pattern, Channel_Name( chan )) == 0 ) || ( strcmp( pattern, "*" ) == 0 ))
|
||||||
|
{
|
||||||
|
/* Treffer! */
|
||||||
|
if( ! IRC_WriteStrClient( Client, RPL_LIST_MSG, Client_ID( Client), Channel_Name( chan ), Channel_MemberCount( chan ), Channel_Topic( chan ))) return DISCONNECTED;
|
||||||
|
}
|
||||||
|
chan = Channel_Next( chan );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* naechsten Namen ermitteln */
|
||||||
|
if( Req->argc > 0 ) pattern = strtok( NULL, "," );
|
||||||
|
else pattern = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return IRC_WriteStrClient( Client, RPL_LISTEND_MSG, Client_ID( Client ));
|
||||||
|
} /* IRC_LIST */
|
||||||
|
|
||||||
|
|
||||||
/* -eof- */
|
/* -eof- */
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: irc-channel.h,v 1.2 2002/03/12 14:37:52 alex Exp $
|
* $Id: irc-channel.h,v 1.2.2.1 2002/04/29 14:11:23 alex Exp $
|
||||||
*
|
*
|
||||||
* irc-channel.h: IRC-Channel-Befehle (Header)
|
* irc-channel.h: IRC-Channel-Befehle (Header)
|
||||||
*/
|
*/
|
||||||
@@ -26,6 +26,7 @@ GLOBAL BOOLEAN IRC_JOIN( CLIENT *Client, REQUEST *Req );
|
|||||||
GLOBAL BOOLEAN IRC_PART( CLIENT *Client, REQUEST *Req );
|
GLOBAL BOOLEAN IRC_PART( CLIENT *Client, REQUEST *Req );
|
||||||
GLOBAL BOOLEAN IRC_TOPIC( CLIENT *Client, REQUEST *Req );
|
GLOBAL BOOLEAN IRC_TOPIC( CLIENT *Client, REQUEST *Req );
|
||||||
|
|
||||||
|
GLOBAL BOOLEAN IRC_LIST( CLIENT *Client, REQUEST *Req );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: irc-login.c,v 1.11 2002/03/26 23:58:34 alex Exp $
|
* $Id: irc-login.c,v 1.11.2.1 2002/04/08 18:07:42 alex Exp $
|
||||||
*
|
*
|
||||||
* irc-login.c: Anmeldung und Abmeldung im IRC
|
* irc-login.c: Anmeldung und Abmeldung im IRC
|
||||||
*/
|
*/
|
||||||
@@ -116,7 +116,7 @@ GLOBAL BOOLEAN IRC_NICK( CLIENT *Client, REQUEST *Req )
|
|||||||
* wenn wir es nicht so machen. Ob es so okay ist? Hm ... */
|
* wenn wir es nicht so machen. Ob es so okay ist? Hm ... */
|
||||||
if( strcmp( Client_ID( target ), Req->argv[0] ) == 0 ) return CONNECTED;
|
if( strcmp( Client_ID( target ), Req->argv[0] ) == 0 ) return CONNECTED;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* pruefen, ob Nick bereits vergeben. Speziallfall: der Client
|
/* pruefen, ob Nick bereits vergeben. Speziallfall: der Client
|
||||||
* will nur die Gross- und Kleinschreibung aendern. Das darf
|
* will nur die Gross- und Kleinschreibung aendern. Das darf
|
||||||
* er natuerlich machen :-) */
|
* er natuerlich machen :-) */
|
||||||
@@ -140,8 +140,16 @@ GLOBAL BOOLEAN IRC_NICK( CLIENT *Client, REQUEST *Req )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Nick-Aenderung */
|
/* Nick-Aenderung */
|
||||||
if( Client_Conn( target ) > NONE ) Log( LOG_INFO, "User \"%s\" changed nick (connection %d): \"%s\" -> \"%s\".", Client_Mask( target ), Client_ID( target ), Req->argv[0], Client_Conn( target ));
|
if( Client_Conn( target ) > NONE )
|
||||||
else Log( LOG_DEBUG, "User \"%s\" changed nick: \"%s\" -> \"%s\".", Client_Mask( target ), Client_ID( target ), Req->argv[0] );
|
{
|
||||||
|
/* lokaler Client */
|
||||||
|
Log( LOG_INFO, "User \"%s\" changed nick (connection %d): \"%s\" -> \"%s\".", Client_Mask( target ), Client_Conn( target ), Client_ID( target ), Req->argv[0] );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Remote-Client */
|
||||||
|
Log( LOG_DEBUG, "User \"%s\" changed nick: \"%s\" -> \"%s\".", Client_Mask( target ), Client_ID( target ), Req->argv[0] );
|
||||||
|
}
|
||||||
|
|
||||||
/* alle betroffenen User und Server ueber Nick-Aenderung informieren */
|
/* alle betroffenen User und Server ueber Nick-Aenderung informieren */
|
||||||
if( Client_Type( Client ) == CLIENT_USER ) IRC_WriteStrClientPrefix( Client, Client, "NICK :%s", Req->argv[0] );
|
if( Client_Type( Client ) == CLIENT_USER ) IRC_WriteStrClientPrefix( Client, Client, "NICK :%s", Req->argv[0] );
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: irc-mode.h,v 1.2 2002/03/12 14:37:52 alex Exp $
|
* $Id: irc-mode.h,v 1.2.2.1 2002/04/08 18:07:42 alex Exp $
|
||||||
*
|
*
|
||||||
* irc-mode.h: IRC-Befehle zur Mode-Aenderung (MODE, AWAY, ...) (Header)
|
* irc-mode.h: IRC-Befehle zur Mode-Aenderung (MODE, AWAY, ...) (Header)
|
||||||
*/
|
*/
|
||||||
@@ -29,4 +29,4 @@ GLOBAL BOOLEAN IRC_AWAY( CLIENT *Client, REQUEST *Req );
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* -eof- */
|
/* -eof- */
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: irc-oper.c,v 1.3 2002/03/27 20:52:58 alex Exp $
|
* $Id: irc-oper.c,v 1.3.2.1 2002/04/08 18:07:42 alex Exp $
|
||||||
*
|
*
|
||||||
* irc-oper.c: IRC-Operator-Befehle
|
* irc-oper.c: IRC-Operator-Befehle
|
||||||
*/
|
*/
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include "imp.h"
|
#include "imp.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#include "ngircd.h"
|
#include "ngircd.h"
|
||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: irc-server.c,v 1.8 2002/03/27 20:52:58 alex Exp $
|
* $Id: irc-server.c,v 1.8.2.1 2002/04/08 18:07:42 alex Exp $
|
||||||
*
|
*
|
||||||
* irc-server.c: IRC-Befehle fuer Server-Links
|
* irc-server.c: IRC-Befehle fuer Server-Links
|
||||||
*/
|
*/
|
||||||
@@ -80,10 +80,11 @@ GLOBAL BOOLEAN IRC_SERVER( CLIENT *Client, REQUEST *Req )
|
|||||||
Client_SetHops( Client, 1 );
|
Client_SetHops( Client, 1 );
|
||||||
Client_SetInfo( Client, Req->argv[Req->argc - 1] );
|
Client_SetInfo( Client, Req->argv[Req->argc - 1] );
|
||||||
|
|
||||||
/* Meldet sich der Server bei uns an? */
|
/* Meldet sich der Server bei uns an (d.h., bauen nicht wir
|
||||||
if( Req->argc == 2 )
|
* selber die Verbindung zu einem anderen Server auf)? */
|
||||||
|
if( Client_Token( Client ) != TOKEN_OUTBOUND )
|
||||||
{
|
{
|
||||||
/* Unseren SERVER- und PASS-Befehl senden */
|
/* Eingehende Verbindung: Unseren SERVER- und PASS-Befehl senden */
|
||||||
ok = TRUE;
|
ok = TRUE;
|
||||||
if( ! IRC_WriteStrClient( Client, "PASS %s "PASSSERVERADD, Conf_Server[i].pwd )) ok = FALSE;
|
if( ! IRC_WriteStrClient( Client, "PASS %s "PASSSERVERADD, Conf_Server[i].pwd )) ok = FALSE;
|
||||||
else ok = IRC_WriteStrClient( Client, "SERVER %s 1 :%s", Conf_ServerName, Conf_ServerInfo );
|
else ok = IRC_WriteStrClient( Client, "SERVER %s 1 :%s", Conf_ServerName, Conf_ServerInfo );
|
||||||
@@ -95,7 +96,12 @@ GLOBAL BOOLEAN IRC_SERVER( CLIENT *Client, REQUEST *Req )
|
|||||||
Client_SetIntroducer( Client, Client );
|
Client_SetIntroducer( Client, Client );
|
||||||
Client_SetToken( Client, 1 );
|
Client_SetToken( Client, 1 );
|
||||||
}
|
}
|
||||||
else Client_SetToken( Client, atoi( Req->argv[1] ));
|
else
|
||||||
|
{
|
||||||
|
/* Ausgehende verbindung, SERVER und PASS wurden von uns bereits
|
||||||
|
* an die Gegenseite uerbermittelt */
|
||||||
|
Client_SetToken( Client, atoi( Req->argv[1] ));
|
||||||
|
}
|
||||||
|
|
||||||
Log( LOG_NOTICE|LOG_snotice, "Server \"%s\" registered (connection %d, 1 hop - direct link).", Client_ID( Client ), Client_Conn( Client ));
|
Log( LOG_NOTICE|LOG_snotice, "Server \"%s\" registered (connection %d, 1 hop - direct link).", Client_ID( Client ), Client_Conn( Client ));
|
||||||
|
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: irc.c,v 1.89 2002/03/25 17:04:02 alex Exp $
|
* $Id: irc.c,v 1.89.2.1 2002/06/11 17:52:23 alex Exp $
|
||||||
*
|
*
|
||||||
* irc.c: IRC-Befehle
|
* irc.c: IRC-Befehle
|
||||||
*/
|
*/
|
||||||
@@ -74,6 +74,9 @@ GLOBAL BOOLEAN IRC_PRIVMSG( CLIENT *Client, REQUEST *Req )
|
|||||||
cl = Client_Search( Req->argv[0] );
|
cl = Client_Search( Req->argv[0] );
|
||||||
if( cl )
|
if( cl )
|
||||||
{
|
{
|
||||||
|
/* Okay, Ziel ist ein Client. Aber ist es auch ein User? */
|
||||||
|
if( Client_Type( cl ) != CLIENT_USER ) return IRC_WriteStrClient( from, ERR_NOSUCHNICK_MSG, Client_ID( from ), Req->argv[0] );
|
||||||
|
|
||||||
/* Okay, Ziel ist ein User */
|
/* Okay, Ziel ist ein User */
|
||||||
if(( Client_Type( Client ) != CLIENT_SERVER ) && ( strchr( Client_Modes( cl ), 'a' )))
|
if(( Client_Type( Client ) != CLIENT_SERVER ) && ( strchr( Client_Modes( cl ), 'a' )))
|
||||||
{
|
{
|
||||||
@@ -110,7 +113,7 @@ GLOBAL BOOLEAN IRC_NOTICE( CLIENT *Client, REQUEST *Req )
|
|||||||
if( ! from ) return IRC_WriteStrClient( Client, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->prefix );
|
if( ! from ) return IRC_WriteStrClient( Client, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->prefix );
|
||||||
|
|
||||||
to = Client_Search( Req->argv[0] );
|
to = Client_Search( Req->argv[0] );
|
||||||
if( to )
|
if(( to ) && ( Client_Type( to ) == CLIENT_USER ))
|
||||||
{
|
{
|
||||||
/* Okay, Ziel ist ein User */
|
/* Okay, Ziel ist ein User */
|
||||||
return IRC_WriteStrClientPrefix( to, from, "NOTICE %s :%s", Client_ID( to ), Req->argv[1] );
|
return IRC_WriteStrClientPrefix( to, from, "NOTICE %s :%s", Client_ID( to ), Req->argv[1] );
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: messages.h,v 1.37 2002/03/12 22:08:24 alex Exp $
|
* $Id: messages.h,v 1.37.2.1 2002/04/29 14:11:23 alex Exp $
|
||||||
*
|
*
|
||||||
* irc.h: IRC-Befehle (Header)
|
* irc.h: IRC-Befehle (Header)
|
||||||
*/
|
*/
|
||||||
@@ -95,6 +95,12 @@
|
|||||||
#define RPL_WHOISCHANNELS "319"
|
#define RPL_WHOISCHANNELS "319"
|
||||||
#define RPL_WHOISCHANNELS_MSG RPL_WHOISCHANNELS" %s %s :"
|
#define RPL_WHOISCHANNELS_MSG RPL_WHOISCHANNELS" %s %s :"
|
||||||
|
|
||||||
|
#define RPL_LIST "322"
|
||||||
|
#define RPL_LIST_MSG RPL_LIST" %s %s %d :%s"
|
||||||
|
|
||||||
|
#define RPL_LISTEND "323"
|
||||||
|
#define RPL_LISTEND_MSG RPL_LISTEND" %s :End of LIST"
|
||||||
|
|
||||||
#define RPL_CHANNELMODEIS "324"
|
#define RPL_CHANNELMODEIS "324"
|
||||||
#define RPL_CHANNELMODEIS_MSG RPL_CHANNELMODEIS" %s %s +%s"
|
#define RPL_CHANNELMODEIS_MSG RPL_CHANNELMODEIS" %s %s +%s"
|
||||||
|
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: ngircd.c,v 1.41 2002/03/31 13:20:42 alex Exp $
|
* $Id: ngircd.c,v 1.41.2.2 2002/04/08 18:07:42 alex Exp $
|
||||||
*
|
*
|
||||||
* ngircd.c: Hier beginnt alles ;-)
|
* ngircd.c: Hier beginnt alles ;-)
|
||||||
*/
|
*/
|
||||||
@@ -21,6 +21,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@@ -435,7 +436,8 @@ LOCAL VOID Initialize_Listen_Ports( VOID )
|
|||||||
LOCAL VOID Show_Version( VOID )
|
LOCAL VOID Show_Version( VOID )
|
||||||
{
|
{
|
||||||
puts( NGIRCd_Version( ));
|
puts( NGIRCd_Version( ));
|
||||||
puts( "Copyright (c)2001,2002 by Alexander Barton (alex@barton.de).\n" );
|
puts( "Copyright (c)2001,2002 by Alexander Barton (<alex@barton.de>)." );
|
||||||
|
puts( "Homepage: <http://arthur.ath.cx/~alex/ngircd/>\n" );
|
||||||
puts( "This is free software; see the source for copying conditions. There is NO" );
|
puts( "This is free software; see the source for copying conditions. There is NO" );
|
||||||
puts( "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." );
|
puts( "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." );
|
||||||
} /* Show_Version */
|
} /* Show_Version */
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
|
||||||
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
|
||||||
*
|
*
|
||||||
* $Id: parse.c,v 1.31 2002/03/25 17:13:46 alex Exp $
|
* $Id: parse.c,v 1.31.2.1 2002/04/29 14:11:23 alex Exp $
|
||||||
*
|
*
|
||||||
* parse.c: Parsen der Client-Anfragen
|
* parse.c: Parsen der Client-Anfragen
|
||||||
*/
|
*/
|
||||||
@@ -292,6 +292,7 @@ LOCAL BOOLEAN Handle_Request( CONN_ID Idx, REQUEST *Req )
|
|||||||
else if( strcasecmp( Req->command, "AWAY" ) == 0 ) return IRC_AWAY( client, Req );
|
else if( strcasecmp( Req->command, "AWAY" ) == 0 ) return IRC_AWAY( client, Req );
|
||||||
else if( strcasecmp( Req->command, "TOPIC" ) == 0 ) return IRC_TOPIC( client, Req );
|
else if( strcasecmp( Req->command, "TOPIC" ) == 0 ) return IRC_TOPIC( client, Req );
|
||||||
else if( strcasecmp( Req->command, "WHO" ) == 0 ) return IRC_WHO( client, Req );
|
else if( strcasecmp( Req->command, "WHO" ) == 0 ) return IRC_WHO( client, Req );
|
||||||
|
else if( strcasecmp( Req->command, "LIST" ) == 0 ) return IRC_LIST( client, Req );
|
||||||
|
|
||||||
/* Unbekannter Befehl */
|
/* Unbekannter Befehl */
|
||||||
if( Client_Type( client ) != CLIENT_SERVER ) IRC_WriteStrClient( client, ERR_UNKNOWNCOMMAND_MSG, Client_ID( client ), Req->command );
|
if( Client_Type( client ) != CLIENT_SERVER ) IRC_WriteStrClient( client, ERR_UNKNOWNCOMMAND_MSG, Client_ID( client ), Req->command );
|
||||||
|
Reference in New Issue
Block a user