1
0
mirror of https://github.com/osmarks/ngircd.git synced 2025-11-05 08:22:59 +00:00

Compare commits

...

25 Commits

Author SHA1 Message Date
Alexander Barton
a119700c62 - Version angepasst. 2002-10-03 17:09:00 +00:00
Alexander Barton
b0e7f564c7 - Dokumentation aktualisiert. 2002-10-03 17:08:53 +00:00
Alexander Barton
d69410f28d - Backports aus CVS HEAD. 2002-10-03 16:13:38 +00:00
Alexander Barton
d5fa1f76bb - Versionsnummer auf 0.5.1 angehoben. 2002-10-03 16:10:25 +00:00
Alexander Barton
3dec467ebc - Dokumentation aktualisiert. 2002-10-03 16:09:50 +00:00
Alexander Barton
a5fe6d6783 Test-Suite: es werden nun nur noch 5 Sessions parallel gestartet. 2002-09-23 21:55:06 +00:00
Alexander Barton
37b579f3cd - Dokumentation aktualisiert. 2002-09-23 21:54:43 +00:00
Alexander Barton
268d02b90d - Versionsnummer auf "0.5.CVS" angepasst. 2002-09-22 21:39:23 +00:00
Alexander Barton
037418e8c0 - Dokumentation aktualisiert. 2002-09-22 21:38:34 +00:00
Alexander Barton
45c3886800 - in RPL_YOURHOST_MSG wurde ein fehlerhafter Versionsstring geliefert. 2002-09-22 21:37:06 +00:00
Alexander Barton
38f387146f - Dokumentation aktualisiert. 2002-09-20 17:20:48 +00:00
Alexander Barton
fcbd44caa9 - Version auf 0.5.0 angehoben. 2002-09-20 16:16:20 +00:00
Alexander Barton
f027308798 - Dokumentation aktualisiert. 2002-09-20 15:44:53 +00:00
Alexander Barton
462540e079 - getpid.sh wird nun auch bei "make distcheck" gefunden. 2002-09-20 15:39:55 +00:00
Alexander Barton
7721c79747 - Dokumentation aktualisiert. 2002-09-20 15:25:50 +00:00
Alexander Barton
678a4dfba0 - neues Script getpid.sh (aus HEAD): dieses ermittelt nun die PID des Servers. 2002-09-20 15:19:55 +00:00
Alexander Barton
8c956d25b7 - Backports aus CVS-HEAD: neues Script getpid.sh ermittelt nun die PID. 2002-09-20 15:18:56 +00:00
Alexander Barton
9f9f676716 - die ermittelte PID des ngIRCd wird besser validiert (leer?). 2002-09-20 13:55:51 +00:00
Alexander Barton
cf20b16d2a - Flags bei "ps" werden in anderer Reihenfolge geprueft (aus CVS-HEAD). 2002-09-20 13:46:22 +00:00
Alexander Barton
97d4e580ae - Dokumentation aktualisiert. 2002-09-19 10:18:29 +00:00
Alexander Barton
b072b7712c - Fehler bei Validierung von ServerAdminInfo2 behoben. 2002-09-19 10:17:50 +00:00
Alexander Barton
fd6a7f67ce - Dokumentation aktualisiert. 2002-09-19 09:35:21 +00:00
Alexander Barton
6c04ba84cd - Versionsnummer auf 0.5.0-pre2 angehoben. 2002-09-17 17:29:38 +00:00
Alexander Barton
ef6b7c7c63 - Fix in IRC_WriteStrServersPrefix() war "badly broken" -- behoben. 2002-09-17 17:29:20 +00:00
Alexander Barton
2592e73da0 - Dokumentation aktualisiert. 2002-09-17 17:28:45 +00:00
16 changed files with 210 additions and 61 deletions

View File

@@ -10,8 +10,32 @@
-- ChangeLog / Aenderungen -- -- ChangeLog / Aenderungen --
ngIRCd CVS-HEAD ngIRCd 0.5.1, 03.10.2002
- in RPL_YOURHOST_MSG wurde ein fehlerhafter Versionsstring geliefert.
- Test-Suite: start-server.sh, stop-server.sh und stress-server.sh koennen
nun "manuell" von der Kommandozeile gestartet werden, stress-server.sh
startet per Default nur noch 5 Sessions, eine andere Zahl kann auf der
Kommandozeile uebergeben werden (Syntax: "stress-server.sh <count>").
- In bestimmten Faellen hat der Server versucht auf einen bereits wieder
geschlossenen Socket Daten zu schreiben; das fuehrte zu einem Abbruch des
Servers durch ein assert(). Nun wird geprueft, ob der Socket noch ok ist.
- im "contrib"-Verzeichnis befindet sich nun eine RPM-Spec-Datei, aus den
.tar.gz's koennen nun mit "rpm -ta <archiv>" RPM's erzeugt werden. Danke
an Sean Reifschneider <jafo@tummy.com>!
- Syntax von RPL_MYINFO_MSG korrigiert: liefert nun vier Parameter.
ngIRCd 0.5.0, 20.09.2002
- Dokumentation aktualisiert.
- Fehler bei Validierung von "AdminInfo2" behoben.
- Test der Flags fuer "ps" in der Testsuite verbessert, ist nun zu mehr
Plattformen kompatibler.
ngIRCd 0.5.0-pre2, 17.09.2002
- Fix in IRC_WriteStrServersPrefix() war "badly broken" -- behoben.
ngIRCd 0.5.0-pre1, 16.09.2002
- Manual-Pages ngircd.8 und ngircd.conf.5 begonnen. - Manual-Pages ngircd.8 und ngircd.conf.5 begonnen.
- Wird der Netzwerk-Sniffer aktiviert (--sniffer), so schaltet der - Wird der Netzwerk-Sniffer aktiviert (--sniffer), so schaltet der
ngIRCd nun automatisch in den Debug-Modus. ngIRCd nun automatisch in den Debug-Modus.
@@ -254,4 +278,4 @@ ngIRCd 0.0.1, 31.12.2001
-- --
$Id: ChangeLog,v 1.87 2002/09/16 10:00:28 alex Exp $ $Id: ChangeLog,v 1.87.2.9 2002/10/03 17:08:53 alex Exp $

View File

@@ -9,12 +9,12 @@
# 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: Makefile.am,v 1.9 2002/03/31 20:23:06 alex Exp $ # $Id: Makefile.am,v 1.9.2.1 2002/10/03 16:13:38 alex Exp $
# #
AUTOMAKE_OPTIONS = gnu AUTOMAKE_OPTIONS = gnu
SUBDIRS = doc MacOSX src man SUBDIRS = doc MacOSX src man contrib
maintainer-clean-local: maintainer-clean-local:
rm -rf autom4te.cache rm -rf autom4te.cache
@@ -25,4 +25,7 @@ maintainer-clean-local:
lint: lint:
make -C src/ngircd lint make -C src/ngircd lint
rpm: distcheck
rpm -ta ngircd-*.tar.gz
# -eof- # -eof-

30
NEWS
View File

@@ -10,31 +10,25 @@
-- NEWS / Neuigkeiten -- -- NEWS / Neuigkeiten --
ngIRCd CVS-HEAD ngIRCd 0.5.0, 20.09.2002
- Manual-Pages ngircd.8 und ngircd.conf.5 begonnen.
- AIX (3.2.5), HP-UX (10.20), IRIX (6.5), NetBSD (1.5.3/m68k) und Solaris - AIX (3.2.5), HP-UX (10.20), IRIX (6.5), NetBSD (1.5.3/m68k) und Solaris
(2.5.1, 2.6) gehoeren nun auch zu den unterstuetzten Platformen. (2.5.1, 2.6) gehoeren nun auch zu den unterstuetzten Platformen.
- Unter A/UX (und evtl. weiteren Systemen) kompiliert der ngIRCd nun mit
dem "nativen" (ggf. pre-ANSI) Compiler.
- "persistente Channels" (Mode 'P') implementiert: diese koennen in der - "persistente Channels" (Mode 'P') implementiert: diese koennen in der
Konfigurationsdatei definiert werden (Sektion "Channel", vgl. Beispiel- Konfigurationsdatei definiert werden (Sektion "Channel", vgl. Beispiel-
Konfiguration "sample-ngircd.conf") und bleiben auch dann bestehen, Konfiguration "sample-ngircd.conf") und bleiben auch dann bestehen,
wenn kein User mehr im Channel ist. Zu Channel-Operatoren werden bisher wenn kein User mehr im Channel ist.
nur IRC-Operatoren, die den Channel betreten. Die persistenten Channels - neue IRC-Befehle: KICK, INVITE, ADMIN, CHANINFO; LIST wurde erweitert.
werden durch das Flag "P" gelennzeichnet, welches normal durch Channel- Mit dem neuen Befehl CHANINFO syncronisieren Server, die das IRC+-
Op's gesetzt und geloescht werden kann. Protokoll unterstuetzen, Channel-Modes und Topics. Fuer den ADMIN-Befehl
- KICK implementiert (bisher kann nur ein User aus einem Channel geckicked gibt es neue Konfigurationsoptionen (Sektion "Global"): "AdminInfo1",
werden, Listen, wir im RFC vorgesehen, werden bisher nicht unterstuetzt). "AdminInfo2" und "AdminEMail".
- INVITE, den Channel-Mode "i" sowie Invite-Lists ueber den MODE-Befehl - Invite- und Ban-Lists implementiert.
(setzen, erfragen und loeschen) implementiert.
- Unter A/UX (und evtl. weiteren Systemen) kompiliert der ngIRCd nun mit
dem "nativen" (ggf. pre-ANSI) Compiler.
- LIST versteht nun Wildcards und kann an andere Server geforwarded werden.
- neue Konfigurationsoption "OperCanUseMode" (Sektion "Global"): - neue Konfigurationsoption "OperCanUseMode" (Sektion "Global"):
ist sie aktiv, koennen IRC-Operatoren immer Channel-Modes setzen. ist sie aktiv, koennen IRC-Operatoren immer Channel-Modes setzen.
- mit dem neuen Befehl CHANINFO syncronisieren Server, die das IRC+- - "Test-Suite" begonnen: mit "make check" wird sie durchlaufen.
Protokoll unterstuetzen, Channel-Modes und Topics.
- Ban-Lists (setzen, erfragen und loeschen) implementiert.
- ADMIN-Befehl implementiert.
ngIRCd 0.4.2, 29.04.2002 ngIRCd 0.4.2, 29.04.2002
@@ -116,4 +110,4 @@ ngIRCd 0.0.1, 31.12.2001
-- --
$Id: NEWS,v 1.38 2002/09/16 11:03:05 alex Exp $ $Id: NEWS,v 1.38.2.4 2002/10/03 16:09:50 alex Exp $

View File

@@ -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.59 2002/09/17 17:12:24 alex Exp $ # $Id: configure.in,v 1.58.2.4 2002/10/03 16:10:25 alex Exp $
# #
# -- Initialisierung -- # -- Initialisierung --
@@ -18,7 +18,7 @@ AC_INIT
AC_PREREQ(2.50) AC_PREREQ(2.50)
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.5.0-pre2) AM_INIT_AUTOMAKE(ngircd,0.5.1)
AM_CONFIG_HEADER(src/config.h) AM_CONFIG_HEADER(src/config.h)
# -- Templates fuer config.h -- # -- Templates fuer config.h --
@@ -194,6 +194,7 @@ AC_OUTPUT([ \
src/ngircd/Makefile \ src/ngircd/Makefile \
src/testsuite/Makefile \ src/testsuite/Makefile \
man/Makefile \ man/Makefile \
contrib/Makefile \
]) ])
# -- Ergebnis -- # -- Ergebnis --

20
contrib/Makefile.am Normal file
View File

@@ -0,0 +1,20 @@
#
# ngIRCd -- The Next Generation IRC Daemon
# Copyright (c)2001,2002 by Alexander Barton (alex@barton.de)
#
# Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen
# der GNU General Public License (GPL), wie von der Free Software Foundation
# herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2
# der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version.
# Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
# der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
#
# $Id: Makefile.am,v 1.1.2.1 2002/10/03 16:13:38 alex Exp $
#
EXTRA_DIST = ngircd.spec
maintainer-clean-local:
rm -f Makefile Makefile.in
# -eof-

54
contrib/ngircd.spec Normal file
View File

@@ -0,0 +1,54 @@
%define name ngircd
%define version 0.5.1
%define release 1
%define prefix %{_prefix}
Summary: Next Generation Internet Relay Chat Daemon
Name: %{name}
Version: %{version}
Release: %{release}
Copyright: GPL
Group: Networking/Daemons
URL: http://arthur.ath.cx/~alex/ngircd/
Source: %{name}-%{version}.tar.gz
Packager: Sean Reifschneider <jafo-rpms@tummy.com>
BuildRoot: /var/tmp/%{name}-root
%description
ngIRCd is a free open source daemon for Internet Relay Chat (IRC),
developed under the GNU General Public License (GPL). It's written from
scratch and is not based upon the original IRCd like many others.
Why should you use ngIRCd? Because ...
* ... there are no problems with servers on changing or non-static IP
addresses.
* ... there is a small and lean configuration file.
* ... there is a free, modern and open source C source code.
* ... it is still under active development.
%prep
%setup
%build
%configure
make
%install
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf "$RPM_BUILD_ROOT"
%makeinstall
(
cd "$RPM_BUILD_ROOT"
( cd usr/sbin; mv *-ngircd ngircd )
( cd usr/share/man/man5; mv *-ngircd.conf.5 ngircd.conf.5 )
( cd usr/share/man/man8; mv *-ngircd.8 ngircd.8 )
)
%clean
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf "$RPM_BUILD_ROOT"
%files
%defattr(755,root,root)
%doc AUTHORS COPYING ChangeLog INSTALL NEWS README
%config(noreplace) /etc
%{_prefix}/sbin
%attr(644,root,root) %{_prefix}/share/man/

View File

@@ -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: conf.c,v 1.29 2002/09/16 09:13:06 alex Exp $ * $Id: conf.c,v 1.29.2.1 2002/09/19 10:17:50 alex Exp $
* *
* conf.h: Konfiguration des ngircd * conf.h: Konfiguration des ngircd
*/ */
@@ -548,7 +548,7 @@ Validate_Config( VOID )
} }
#endif #endif
if( ! Conf_ServerAdmin1[0] && ! Conf_ServerAdmin1[0] && ! Conf_ServerAdminMail[0] ) if( ! Conf_ServerAdmin1[0] && ! Conf_ServerAdmin2[0] && ! Conf_ServerAdminMail[0] )
{ {
/* Keine Server-Information konfiguriert */ /* Keine Server-Information konfiguriert */
Log( LOG_WARNING, "No server information configured but required by RFC!" ); Log( LOG_WARNING, "No server information configured but required by RFC!" );

View File

@@ -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.72 2002/09/07 22:34:44 alex Exp $ * $Id: conn.c,v 1.72.2.1 2002/10/03 16:13:38 alex Exp $
* *
* connect.h: Verwaltung aller Netz-Verbindungen ("connections") * connect.h: Verwaltung aller Netz-Verbindungen ("connections")
*/ */
@@ -359,7 +359,6 @@ va_dcl
va_list ap; va_list ap;
assert( Idx >= 0 ); assert( Idx >= 0 );
assert( My_Connections[Idx].sock > NONE );
assert( Format != NULL ); assert( Format != NULL );
#ifdef PROTOTYPES #ifdef PROTOTYPES
@@ -393,10 +392,20 @@ Conn_Write( CONN_ID Idx, CHAR *Data, INT Len )
* der Client disconnectiert und FALSE geliefert. */ * der Client disconnectiert und FALSE geliefert. */
assert( Idx >= 0 ); assert( Idx >= 0 );
assert( My_Connections[Idx].sock > NONE );
assert( Data != NULL ); assert( Data != NULL );
assert( Len > 0 ); assert( Len > 0 );
/* Ist der entsprechende Socket ueberhaupt noch offen?
* In einem "Handler-Durchlauf" kann es passieren, dass
* dem nicht mehr so ist, wenn einer von mehreren
* Conn_Write()'s fehlgeschlagen ist. In diesem Fall
* wird hier einfach ein Fehler geliefert. */
if( My_Connections[Idx].sock <= NONE )
{
Log( LOG_DEBUG, "Skipped write on closed socket (connection %d).", Idx );
return FALSE;
}
/* pruefen, ob Daten im Schreibpuffer sind. Wenn ja, zunaechst /* pruefen, ob Daten im Schreibpuffer sind. Wenn ja, zunaechst
* pruefen, ob diese gesendet werden koennen */ * pruefen, ob diese gesendet werden koennen */
if( My_Connections[Idx].wdatalen > 0 ) if( My_Connections[Idx].wdatalen > 0 )

View File

@@ -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.21 2002/09/09 03:34:33 alex Exp $ * $Id: irc-login.c,v 1.21.2.1 2002/09/22 21:37:06 alex Exp $
* *
* irc-login.c: Anmeldung und Abmeldung im IRC * irc-login.c: Anmeldung und Abmeldung im IRC
*/ */
@@ -441,7 +441,7 @@ Hello_User( CLIENT *Client )
IRC_WriteStrServers( NULL, "NICK %s 1 %s %s 1 +%s :%s", Client_ID( Client ), Client_User( Client ), Client_Hostname( Client ), Client_Modes( Client ), Client_Info( Client )); IRC_WriteStrServers( NULL, "NICK %s 1 %s %s 1 +%s :%s", Client_ID( Client ), Client_User( Client ), Client_Hostname( Client ), Client_Modes( Client ), Client_Info( Client ));
if( ! IRC_WriteStrClient( Client, RPL_WELCOME_MSG, Client_ID( Client ), Client_Mask( Client ))) return FALSE; if( ! IRC_WriteStrClient( Client, RPL_WELCOME_MSG, Client_ID( Client ), Client_Mask( Client ))) return FALSE;
if( ! IRC_WriteStrClient( Client, RPL_YOURHOST_MSG, Client_ID( Client ), Client_ID( Client_ThisServer( )), VERSION, TARGET_CPU, TARGET_CPU, TARGET_OS )) return FALSE; if( ! IRC_WriteStrClient( Client, RPL_YOURHOST_MSG, Client_ID( Client ), Client_ID( Client_ThisServer( )), VERSION, TARGET_CPU, TARGET_VENDOR, TARGET_OS )) return FALSE;
if( ! IRC_WriteStrClient( Client, RPL_CREATED_MSG, Client_ID( Client ), NGIRCd_StartStr )) return FALSE; if( ! IRC_WriteStrClient( Client, RPL_CREATED_MSG, Client_ID( Client ), NGIRCd_StartStr )) return FALSE;
if( ! IRC_WriteStrClient( Client, RPL_MYINFO_MSG, Client_ID( Client ), Client_ID( Client_ThisServer( )), VERSION, USERMODES, CHANMODES )) return FALSE; if( ! IRC_WriteStrClient( Client, RPL_MYINFO_MSG, Client_ID( Client ), Client_ID( Client_ThisServer( )), VERSION, USERMODES, CHANMODES )) return FALSE;

View File

@@ -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-write.c,v 1.8 2002/09/17 17:11:56 alex Exp $ * $Id: irc-write.c,v 1.7.2.1 2002/09/17 17:29:20 alex Exp $
* *
* irc-write.c: IRC-Texte und Befehle ueber Netzwerk versenden * irc-write.c: IRC-Texte und Befehle ueber Netzwerk versenden
*/ */

View File

@@ -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.46 2002/09/16 09:23:40 alex Exp $ * $Id: messages.h,v 1.46.2.1 2002/10/03 16:13:38 alex Exp $
* *
* irc.h: IRC-Befehle (Header) * irc.h: IRC-Befehle (Header)
*/ */
@@ -21,8 +21,8 @@
#define RPL_WELCOME_MSG "001 %s :Welcome to the Internet Relay Network %s" #define RPL_WELCOME_MSG "001 %s :Welcome to the Internet Relay Network %s"
#define RPL_YOURHOST_MSG "002 %s :Your host is %s, running ngircd %s-%s/%s/%s" #define RPL_YOURHOST_MSG "002 %s :Your host is %s, running ngircd %s-%s/%s/%s"
#define RPL_CREATED_MSG "003 %s :This server was started %s" #define RPL_CREATED_MSG "003 %s :This server has been started %s"
#define RPL_MYINFO_MSG "004 %s :%s ngircd-%s %s %s" #define RPL_MYINFO_MSG "004 %s %s ngircd-%s %s %s"
#define RPL_UMODEIS_MSG "211 %s +%s" #define RPL_UMODEIS_MSG "211 %s +%s"
#define RPL_LUSERCLIENT_MSG "251 %s :There are %d users and %d services on %d servers" #define RPL_LUSERCLIENT_MSG "251 %s :There are %d users and %d services on %d servers"
#define RPL_LUSEROP_MSG "252 %s %d :operator(s) online" #define RPL_LUSEROP_MSG "252 %s %d :operator(s) online"

View File

@@ -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: Makefile.am,v 1.3 2002/09/12 02:26:17 alex Exp $ # $Id: Makefile.am,v 1.3.2.2 2002/09/20 15:39:55 alex Exp $
# #
AUTOMAKE_OPTIONS = ../portab/ansi2knr AUTOMAKE_OPTIONS = ../portab/ansi2knr
@@ -17,21 +17,24 @@ AUTOMAKE_OPTIONS = ../portab/ansi2knr
INCLUDES = -I$(srcdir)/../portab INCLUDES = -I$(srcdir)/../portab
EXTRA_DIST = \ EXTRA_DIST = \
getpid.sh \
start-server.sh stop-server.sh tests.sh stress-server.sh \ start-server.sh stop-server.sh tests.sh stress-server.sh \
connect-test.e channel-test.e mode-test.e \ connect-test.e channel-test.e mode-test.e \
stress-A.e stress-B.e check-idle.e \ stress-A.e stress-B.e check-idle.e \
ngircd-test.conf ngircd-test.conf
clean-local: clean-local:
rm -rf logs tests *-test ngircd-test.log ngircd-test.motd ngircd-TEST procs.tmp rm -rf logs tests *-test ngircd-test.log ngircd-test.motd \
ngircd-TEST* procs.tmp
maintainer-clean-local: maintainer-clean-local:
rm -f Makefile Makefile.in rm -f Makefile Makefile.in
check_SCRIPTS = ngircd-TEST tests.sh check_SCRIPTS = ngircd-TEST-Binary tests.sh
ngircd-TEST: ngircd-TEST-Binary:
ln -s ../ngircd/ngircd ngircd-TEST cp ../ngircd/ngircd ngircd-TEST
[ -f getpid.sh ] || ln -s $(srcdir)/getpid.sh .
connect-test: tests.sh connect-test: tests.sh
ln -s $(srcdir)/tests.sh connect-test ln -s $(srcdir)/tests.sh connect-test

28
src/testsuite/getpid.sh Executable file
View File

@@ -0,0 +1,28 @@
#!/bin/sh
# ngIRCd Test Suite
# $Id: getpid.sh,v 1.1.2.1 2002/09/20 15:19:55 alex Exp $
# wurde ein Name uebergeben?
[ $# -ne 1 ] && exit 1
# Flags fuer "ps" ermitteln
if [ `uname` = "FreeBSD" ]; then
PS_FLAGS=-a; PS_PIDCOL=1
else
PS_FLAGS=-f; PS_PIDCOL=2
ps $PS_FLAGS > /dev/null 2>&1
if [ $? -ne 0 ]; then PS_FLAGS=a; PS_PIDCOL=1; fi
fi
# PID ermitteln
ps $PS_FLAGS > procs.tmp
pid=`cat procs.tmp | grep "$1" | awk "{ print \\\$$PS_PIDCOL }" | sort -n | head -n 1`
# ermittelte PID validieren
[ "$pid" -gt 1 ] > /dev/null 2>&1
[ $? -ne 0 ] && exit 1
echo $pid
exit 0
# -eof-

View File

@@ -1,22 +1,32 @@
#!/bin/sh #!/bin/sh
# ngIRCd Test Suite # ngIRCd Test Suite
# $Id: start-server.sh,v 1.5 2002/09/16 09:53:16 alex Exp $ # $Id: start-server.sh,v 1.5.2.4 2002/10/03 16:13:38 alex Exp $
[ -z "$srcdir" ] && srcdir=`dirname $0`
echo " starting server ..." echo " starting server ..."
rm -rf logs # alte Logfiles loeschen
rm -rf logs *.log
# pruefen, ob getpid.sh gueltige PID's liefert. Wenn dem nicht so ist,
# wird kein ngIRCd gestartet, da dieser ansonsten nicht mehr am Ende
# des Testlaufs beendet werden koennte!
./getpid.sh make > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo " error: getpid.sh FAILED!"
exit 1
fi
# MOTD fuer Test-Server erzeugen
echo "This is an ngIRCd Test Server" > ngircd-test.motd echo "This is an ngIRCd Test Server" > ngircd-test.motd
# Test-Server starten ...
./ngircd-TEST -np -f ${srcdir}/ngircd-test.conf > ngircd-test.log 2>&1 & ./ngircd-TEST -np -f ${srcdir}/ngircd-test.conf > ngircd-test.log 2>&1 &
sleep 1 sleep 1
PS_FLAGS=a; PS_PIDCOL=1 # validieren, dass Server laeuft
ps a > /dev/null 2>&1 pid=`./getpid.sh ngircd-TEST`
if [ $? -ne 0 ]; then PS_FLAGS=-f; PS_PIDCOL=2; fi [ -n "$pid" ] && kill -0 $pid > /dev/null 2>&1 || exit 1
ps $PS_FLAGS > procs.tmp
pid=`cat procs.tmp | grep ngircd-TEST | awk "{ print \\\$$PS_PIDCOL }"`
kill -0 $pid > /dev/null 2>&1
# -eof- # -eof-

View File

@@ -1,15 +1,17 @@
#!/bin/sh #!/bin/sh
# ngIRCd Test Suite # ngIRCd Test Suite
# $Id: stop-server.sh,v 1.4 2002/09/16 09:53:16 alex Exp $ # $Id: stop-server.sh,v 1.4.2.4 2002/10/03 16:13:38 alex Exp $
[ -z "$srcdir" ] && srcdir=`dirname $0`
echo " stopping server ..." echo " stopping server ..."
PS_FLAGS=a; PS_PIDCOL=1 # Test-Server stoppen ...
ps a > /dev/null 2>&1 pid=`./getpid.sh ngircd-TEST`
if [ $? -ne 0 ]; then PS_FLAGS=-f; PS_PIDCOL=2; fi [ -n "$pid" ] && kill $pid > /dev/null 2>&1 || exit 1
sleep 1
ps $PS_FLAGS > procs.tmp # jetzt duerfte der Prozess nicht mehr laufen
pid=`cat procs.tmp | grep ngircd-TEST | awk "{ print \\\$$PS_PIDCOL }"` kill -0 $pid > /dev/null 2>&1 && exit 1 || exit 0
kill $pid > /dev/null 2>&1
# -eof- # -eof-

View File

@@ -1,9 +1,10 @@
#!/bin/sh #!/bin/sh
# ngIRCd Test Suite # ngIRCd Test Suite
# $Id: stress-server.sh,v 1.4 2002/09/16 09:54:17 alex Exp $ # $Id: stress-server.sh,v 1.4.2.2 2002/10/03 16:13:38 alex Exp $
if [ `uname` = "Darwin" -o `uname` = "IRIX" -o `uname` = "IRIX64" ]; then CLIENTS=5 [ -z "$srcdir" ] && srcdir=`dirname $0`
else CLIENTS=50; fi
[ $1 -gt 0 ] 2> /dev/null && CLIENTS=$1 || CLIENTS=5
name=`basename $0` name=`basename $0`
test=`echo ${name} | cut -d '.' -f 1` test=`echo ${name} | cut -d '.' -f 1`