mirror of
				https://github.com/osmarks/ngircd.git
				synced 2025-11-03 23:43:00 +00:00 
			
		
		
		
	Compare commits
	
		
			30 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					35d1c2fc06 | ||
| 
						 | 
					c557a2920e | ||
| 
						 | 
					845b295e7d | ||
| 
						 | 
					59b5b0e025 | ||
| 
						 | 
					bdd23ece63 | ||
| 
						 | 
					a119700c62 | ||
| 
						 | 
					b0e7f564c7 | ||
| 
						 | 
					d69410f28d | ||
| 
						 | 
					d5fa1f76bb | ||
| 
						 | 
					3dec467ebc | ||
| 
						 | 
					a5fe6d6783 | ||
| 
						 | 
					37b579f3cd | ||
| 
						 | 
					268d02b90d | ||
| 
						 | 
					037418e8c0 | ||
| 
						 | 
					45c3886800 | ||
| 
						 | 
					38f387146f | ||
| 
						 | 
					fcbd44caa9 | ||
| 
						 | 
					f027308798 | ||
| 
						 | 
					462540e079 | ||
| 
						 | 
					7721c79747 | ||
| 
						 | 
					678a4dfba0 | ||
| 
						 | 
					8c956d25b7 | ||
| 
						 | 
					9f9f676716 | ||
| 
						 | 
					cf20b16d2a | ||
| 
						 | 
					97d4e580ae | ||
| 
						 | 
					b072b7712c | ||
| 
						 | 
					fd6a7f67ce | ||
| 
						 | 
					6c04ba84cd | ||
| 
						 | 
					ef6b7c7c63 | ||
| 
						 | 
					2592e73da0 | 
							
								
								
									
										34
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -10,8 +10,38 @@
 | 
			
		||||
                        -- ChangeLog / Aenderungen --
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ngIRCd CVS-HEAD
 | 
			
		||||
ngIRCd 0.5.2, 04.10.2002
 | 
			
		||||
 | 
			
		||||
  - Buffer Overflow in Read_Resolver_Result() behoben.
 | 
			
		||||
  - Format-String-Bugs, die zum Abbruch des Servers fuehrten, behoben.
 | 
			
		||||
  - Maximale Laenge eines IRC-Prefix wurde falsch berechnet.
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
  - Wird der Netzwerk-Sniffer aktiviert (--sniffer), so schaltet der
 | 
			
		||||
    ngIRCd nun automatisch in den Debug-Modus.
 | 
			
		||||
@@ -254,4 +284,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.10 2002/10/04 12:43:53 alex Exp $
 | 
			
		||||
 
 | 
			
		||||
@@ -9,12 +9,12 @@
 | 
			
		||||
# 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.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
 | 
			
		||||
 | 
			
		||||
SUBDIRS = doc MacOSX src man
 | 
			
		||||
SUBDIRS = doc MacOSX src man contrib
 | 
			
		||||
 | 
			
		||||
maintainer-clean-local:
 | 
			
		||||
	rm -rf autom4te.cache
 | 
			
		||||
@@ -25,4 +25,7 @@ maintainer-clean-local:
 | 
			
		||||
lint:
 | 
			
		||||
	make -C src/ngircd lint
 | 
			
		||||
 | 
			
		||||
rpm: distcheck
 | 
			
		||||
	rpm -ta ngircd-*.tar.gz
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										34
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								NEWS
									
									
									
									
									
								
							@@ -10,31 +10,25 @@
 | 
			
		||||
                           -- 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
 | 
			
		||||
    (2.5.1, 2.6) gehoeren nun auch zu den unterstuetzten Platformen.
 | 
			
		||||
  - "persistente Channels" (Mode 'P') implementiert: diese koennen in der
 | 
			
		||||
    Konfigurationsdatei definiert werden (Sektion "Channel", vgl. Beispiel-
 | 
			
		||||
    Konfiguration "sample-ngircd.conf") und bleiben auch dann bestehen,
 | 
			
		||||
    wenn kein User mehr im Channel ist. Zu Channel-Operatoren werden bisher
 | 
			
		||||
    nur IRC-Operatoren, die den Channel betreten. Die persistenten Channels
 | 
			
		||||
    werden durch das Flag "P" gelennzeichnet, welches normal durch Channel-
 | 
			
		||||
    Op's gesetzt und geloescht werden kann.
 | 
			
		||||
  - KICK implementiert (bisher kann nur ein User aus einem Channel geckicked
 | 
			
		||||
    werden, Listen, wir im RFC vorgesehen, werden bisher nicht unterstuetzt).
 | 
			
		||||
  - INVITE, den Channel-Mode "i" sowie Invite-Lists ueber den MODE-Befehl
 | 
			
		||||
    (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"):
 | 
			
		||||
  - "persistente Channels" (Mode 'P') implementiert: diese koennen in der
 | 
			
		||||
    Konfigurationsdatei definiert werden (Sektion "Channel", vgl. Beispiel-
 | 
			
		||||
    Konfiguration "sample-ngircd.conf") und bleiben auch dann bestehen,   
 | 
			
		||||
    wenn kein User mehr im Channel ist.
 | 
			
		||||
  - neue IRC-Befehle: KICK, INVITE, ADMIN, CHANINFO; LIST wurde erweitert.  
 | 
			
		||||
    Mit dem neuen Befehl CHANINFO syncronisieren Server, die das IRC+-   
 | 
			
		||||
    Protokoll unterstuetzen, Channel-Modes und Topics. Fuer den ADMIN-Befehl
 | 
			
		||||
    gibt es neue Konfigurationsoptionen (Sektion "Global"): "AdminInfo1",
 | 
			
		||||
    "AdminInfo2" und "AdminEMail".
 | 
			
		||||
  - Invite- und Ban-Lists implementiert.   
 | 
			
		||||
  - neue Konfigurationsoption "OperCanUseMode" (Sektion "Global"):   
 | 
			
		||||
    ist sie aktiv, koennen IRC-Operatoren immer Channel-Modes setzen.
 | 
			
		||||
  - mit dem neuen Befehl CHANINFO syncronisieren Server, die das IRC+-
 | 
			
		||||
    Protokoll unterstuetzen, Channel-Modes und Topics.
 | 
			
		||||
  - Ban-Lists (setzen, erfragen und loeschen) implementiert.
 | 
			
		||||
  - ADMIN-Befehl implementiert.
 | 
			
		||||
  - "Test-Suite" begonnen: mit "make check" wird sie durchlaufen.
 | 
			
		||||
 | 
			
		||||
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 $
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
# Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
# 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.6 2002/10/04 12:47:14 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# -- Initialisierung --
 | 
			
		||||
@@ -18,7 +18,7 @@ AC_INIT
 | 
			
		||||
AC_PREREQ(2.50)
 | 
			
		||||
AC_CANONICAL_TARGET
 | 
			
		||||
AC_CONFIG_SRCDIR(src/config.h.in)
 | 
			
		||||
AM_INIT_AUTOMAKE(ngircd,0.5.0-pre2)
 | 
			
		||||
AM_INIT_AUTOMAKE(ngircd,0.5.2)
 | 
			
		||||
AM_CONFIG_HEADER(src/config.h)
 | 
			
		||||
 | 
			
		||||
# -- Templates fuer config.h --
 | 
			
		||||
@@ -194,6 +194,7 @@ AC_OUTPUT([ \
 | 
			
		||||
	src/ngircd/Makefile \
 | 
			
		||||
	src/testsuite/Makefile \
 | 
			
		||||
	man/Makefile \
 | 
			
		||||
	contrib/Makefile \
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
# -- Ergebnis --
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								contrib/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								contrib/Makefile.am
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										54
									
								
								contrib/ngircd.spec
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
%define name    ngircd
 | 
			
		||||
%define version 0.5.2
 | 
			
		||||
%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/
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: client.c,v 1.60 2002/09/03 18:54:31 alex Exp $
 | 
			
		||||
 * $Id: client.c,v 1.60.2.1 2002/10/04 12:40:58 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * client.c: Management aller Clients
 | 
			
		||||
 *
 | 
			
		||||
@@ -53,8 +53,11 @@
 | 
			
		||||
#include <exp.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define GETID_LEN (CLIENT_NICK_LEN-1) + 1 + (CLIENT_USER_LEN-1) + 1 + (CLIENT_HOST_LEN-1) + 1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
LOCAL CLIENT *This_Server, *My_Clients;
 | 
			
		||||
LOCAL CHAR GetID_Buffer[CLIENT_ID_LEN];
 | 
			
		||||
LOCAL CHAR GetID_Buffer[GETID_LEN];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
LOCAL INT Count PARAMS(( CLIENT_TYPE Type ));
 | 
			
		||||
@@ -713,7 +716,7 @@ Client_Mask( CLIENT *Client )
 | 
			
		||||
	
 | 
			
		||||
	if( Client->type == CLIENT_SERVER ) return Client->id;
 | 
			
		||||
 | 
			
		||||
	sprintf( GetID_Buffer, "%s!%s@%s", Client->id, Client->user, Client->host );
 | 
			
		||||
	snprintf( GetID_Buffer, GETID_LEN, "%s!%s@%s", Client->id, Client->user, Client->host );
 | 
			
		||||
	return GetID_Buffer;
 | 
			
		||||
} /* Client_Mask */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * 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.3 2002/10/04 13:12:46 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * conf.h: Konfiguration des ngircd
 | 
			
		||||
 */
 | 
			
		||||
@@ -67,7 +67,7 @@ Conf_Test( VOID )
 | 
			
		||||
{
 | 
			
		||||
	/* Konfiguration einlesen, ueberpruefen und ausgeben. */
 | 
			
		||||
 | 
			
		||||
	UINT i;
 | 
			
		||||
	INT i;
 | 
			
		||||
 | 
			
		||||
	Use_Log = FALSE;
 | 
			
		||||
	Set_Defaults( );
 | 
			
		||||
@@ -548,7 +548,7 @@ Validate_Config( VOID )
 | 
			
		||||
	}
 | 
			
		||||
#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 */
 | 
			
		||||
		Log( LOG_WARNING, "No server information configured but required by RFC!" );
 | 
			
		||||
@@ -584,7 +584,7 @@ va_dcl
 | 
			
		||||
	/* Im "normalen Betrieb" soll der Log-Mechanismus des ngIRCd verwendet
 | 
			
		||||
	 * werden, beim Testen der Konfiguration jedoch nicht, hier sollen alle
 | 
			
		||||
	 * Meldungen direkt auf die Konsole ausgegeben werden: */
 | 
			
		||||
	if( Use_Log ) Log( Level, msg );
 | 
			
		||||
	if( Use_Log ) Log( Level, "%s", msg );
 | 
			
		||||
	else puts( msg );
 | 
			
		||||
} /* Config_Error */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * 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.3 2002/10/04 13:12:46 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * connect.h: Verwaltung aller Netz-Verbindungen ("connections")
 | 
			
		||||
 */
 | 
			
		||||
@@ -359,7 +359,6 @@ va_dcl
 | 
			
		||||
	va_list ap;
 | 
			
		||||
 | 
			
		||||
	assert( Idx >= 0 );
 | 
			
		||||
	assert( My_Connections[Idx].sock > NONE );
 | 
			
		||||
	assert( Format != NULL );
 | 
			
		||||
 | 
			
		||||
#ifdef PROTOTYPES
 | 
			
		||||
@@ -393,10 +392,20 @@ Conn_Write( CONN_ID Idx, CHAR *Data, INT Len )
 | 
			
		||||
	 * der Client disconnectiert und FALSE geliefert. */
 | 
			
		||||
 | 
			
		||||
	assert( Idx >= 0 );
 | 
			
		||||
	assert( My_Connections[Idx].sock > NONE );
 | 
			
		||||
	assert( Data != NULL );
 | 
			
		||||
	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 diese gesendet werden koennen */
 | 
			
		||||
	if( My_Connections[Idx].wdatalen > 0 )
 | 
			
		||||
@@ -1124,7 +1133,7 @@ Read_Resolver_Result( INT r_fd )
 | 
			
		||||
	FD_CLR( r_fd, &Resolver_FDs );
 | 
			
		||||
 | 
			
		||||
	/* Anfrage vom Parent lesen */
 | 
			
		||||
	len = read( r_fd, result, HOST_LEN);
 | 
			
		||||
	len = read( r_fd, result, HOST_LEN - 1 );
 | 
			
		||||
	if( len < 0 )
 | 
			
		||||
	{
 | 
			
		||||
		/* Fehler beim Lesen aus der Pipe */
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * 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
 | 
			
		||||
 */
 | 
			
		||||
@@ -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 ));
 | 
			
		||||
 | 
			
		||||
	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_MYINFO_MSG, Client_ID( Client ), Client_ID( Client_ThisServer( )), VERSION, USERMODES, CHANMODES )) return FALSE;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: irc-server.c,v 1.17 2002/09/07 17:57:31 alex Exp $
 | 
			
		||||
 * $Id: irc-server.c,v 1.17.2.2 2002/10/04 13:12:46 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * irc-server.c: IRC-Befehle fuer Server-Links
 | 
			
		||||
 */
 | 
			
		||||
@@ -188,7 +188,7 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req )
 | 
			
		||||
				if( strlen( str ) > ( LINE_LEN - CLIENT_NICK_LEN - 8 ))
 | 
			
		||||
				{
 | 
			
		||||
					/* Zeile senden */
 | 
			
		||||
					if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
 | 
			
		||||
					if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
 | 
			
		||||
					sprintf( str, "NJOIN %s :", Channel_Name( chan ));
 | 
			
		||||
				}
 | 
			
		||||
				
 | 
			
		||||
@@ -199,7 +199,7 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req )
 | 
			
		||||
			if( str[strlen( str ) - 1] != ':')
 | 
			
		||||
			{
 | 
			
		||||
				/* Ja; Also senden ... */
 | 
			
		||||
				if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
 | 
			
		||||
				if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/* naechsten Channel suchen */
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * 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.3 2002/10/04 13:12:46 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * irc-write.c: IRC-Texte und Befehle ueber Netzwerk versenden
 | 
			
		||||
 */
 | 
			
		||||
@@ -62,7 +62,7 @@ va_dcl
 | 
			
		||||
	va_end( ap );
 | 
			
		||||
 | 
			
		||||
	/* an den Client selber */
 | 
			
		||||
	ok = IRC_WriteStrClientPrefix( Client, Client_ThisServer( ), buffer );
 | 
			
		||||
	ok = IRC_WriteStrClientPrefix( Client, Client_ThisServer( ), "%s", buffer );
 | 
			
		||||
 | 
			
		||||
	return ok;
 | 
			
		||||
} /* IRC_WriteStrClient */
 | 
			
		||||
@@ -128,7 +128,7 @@ va_dcl
 | 
			
		||||
	vsnprintf( buffer, 1000, Format, ap );
 | 
			
		||||
	va_end( ap );
 | 
			
		||||
 | 
			
		||||
	return IRC_WriteStrChannelPrefix( Client, Chan, Client_ThisServer( ), Remote, buffer );
 | 
			
		||||
	return IRC_WriteStrChannelPrefix( Client, Chan, Client_ThisServer( ), Remote, "%s", buffer );
 | 
			
		||||
} /* IRC_WriteStrChannel */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -233,7 +233,7 @@ va_dcl
 | 
			
		||||
	va_end( ap );
 | 
			
		||||
 | 
			
		||||
	/* an den Client selber */
 | 
			
		||||
	IRC_WriteStrServersPrefix( ExceptOf, Client_ThisServer( ), buffer );
 | 
			
		||||
	IRC_WriteStrServersPrefix( ExceptOf, Client_ThisServer( ), "%s", buffer );
 | 
			
		||||
} /* IRC_WriteStrServers */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -263,7 +263,7 @@ va_dcl
 | 
			
		||||
	vsnprintf( buffer, 1000, Format, ap );
 | 
			
		||||
	va_end( ap );
 | 
			
		||||
 | 
			
		||||
	IRC_WriteStrServersPrefixFlag( ExceptOf, Prefix, '\0', buffer );
 | 
			
		||||
	IRC_WriteStrServersPrefixFlag( ExceptOf, Prefix, '\0', "%s", buffer );
 | 
			
		||||
} /* IRC_WriteStrServersPrefix */
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
@@ -301,7 +301,7 @@ va_dcl
 | 
			
		||||
		if(( Client_Type( c ) == CLIENT_SERVER ) && ( Client_Conn( c ) > NONE ) && ( c != Client_ThisServer( )) && ( c != ExceptOf ))
 | 
			
		||||
		{
 | 
			
		||||
			/* Ziel-Server gefunden. Nun noch pruefen, ob Flags stimmen */
 | 
			
		||||
			if(( Flag == '\0' ) || ( strchr( Client_Flags( c ), Flag ) != NULL )) IRC_WriteStrClientPrefix( c, Prefix, buffer );
 | 
			
		||||
			if(( Flag == '\0' ) || ( strchr( Client_Flags( c ), Flag ) != NULL )) IRC_WriteStrClientPrefix( c, Prefix, "%s", buffer );
 | 
			
		||||
		}
 | 
			
		||||
		c = Client_Next( c );
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: irc.c,v 1.95 2002/09/16 09:14:45 alex Exp $
 | 
			
		||||
 * $Id: irc.c,v 1.95.2.2 2002/10/04 13:12:46 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * irc.c: IRC-Befehle
 | 
			
		||||
 */
 | 
			
		||||
@@ -206,7 +206,7 @@ IRC_NAMES( CLIENT *Client, REQUEST *Req )
 | 
			
		||||
			if( strlen( rpl ) > ( LINE_LEN - CLIENT_NICK_LEN - 4 ))
 | 
			
		||||
			{
 | 
			
		||||
				/* Zeile wird zu lang: senden! */
 | 
			
		||||
				if( ! IRC_WriteStrClient( from, rpl )) return DISCONNECTED;
 | 
			
		||||
				if( ! IRC_WriteStrClient( from, "%s", rpl )) return DISCONNECTED;
 | 
			
		||||
				sprintf( rpl, RPL_NAMREPLY_MSG, Client_ID( from ), "*", "*" );
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
@@ -217,7 +217,7 @@ IRC_NAMES( CLIENT *Client, REQUEST *Req )
 | 
			
		||||
	if( rpl[strlen( rpl ) - 1] != ':')
 | 
			
		||||
	{
 | 
			
		||||
		/* es wurden User gefunden */
 | 
			
		||||
		if( ! IRC_WriteStrClient( from, rpl )) return DISCONNECTED;
 | 
			
		||||
		if( ! IRC_WriteStrClient( from, "%s", rpl )) return DISCONNECTED;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return IRC_WriteStrClient( from, RPL_ENDOFNAMES_MSG, Client_ID( from ), "*" );
 | 
			
		||||
@@ -259,7 +259,7 @@ IRC_ISON( CLIENT *Client, REQUEST *Req )
 | 
			
		||||
	}
 | 
			
		||||
	if( rpl[strlen( rpl ) - 1] == ' ' ) rpl[strlen( rpl ) - 1] = '\0';
 | 
			
		||||
 | 
			
		||||
	return IRC_WriteStrClient( Client, rpl, Client_ID( Client ) );
 | 
			
		||||
	return IRC_WriteStrClient( Client, "%s", rpl, Client_ID( Client ) );
 | 
			
		||||
} /* IRC_ISON */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -325,7 +325,7 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req )
 | 
			
		||||
		if( strlen( str ) > ( LINE_LEN - CHANNEL_NAME_LEN - 4 ))
 | 
			
		||||
		{
 | 
			
		||||
			/* Zeile wird zu lang: senden! */
 | 
			
		||||
			if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
 | 
			
		||||
			if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
 | 
			
		||||
			sprintf( str, RPL_WHOISCHANNELS_MSG, Client_ID( from ), Client_ID( c ));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@@ -335,7 +335,7 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req )
 | 
			
		||||
	if( str[strlen( str ) - 1] != ':')
 | 
			
		||||
	{
 | 
			
		||||
		/* Es sind noch Daten da, die gesendet werden muessen */
 | 
			
		||||
		if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
 | 
			
		||||
		if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/* IRC-Operator? */
 | 
			
		||||
@@ -477,7 +477,7 @@ IRC_USERHOST( CLIENT *Client, REQUEST *Req )
 | 
			
		||||
	}
 | 
			
		||||
	if( rpl[strlen( rpl ) - 1] == ' ' ) rpl[strlen( rpl ) - 1] = '\0';
 | 
			
		||||
 | 
			
		||||
	return IRC_WriteStrClient( Client, rpl, Client_ID( Client ) );
 | 
			
		||||
	return IRC_WriteStrClient( Client, "%s", rpl, Client_ID( Client ) );
 | 
			
		||||
} /* IRC_USERHOST */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -768,7 +768,7 @@ IRC_Send_NAMES( CLIENT *Client, CHANNEL *Chan )
 | 
			
		||||
			if( strlen( str ) > ( LINE_LEN - CLIENT_NICK_LEN - 4 ))
 | 
			
		||||
			{
 | 
			
		||||
				/* Zeile wird zu lang: senden! */
 | 
			
		||||
				if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
 | 
			
		||||
				if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
 | 
			
		||||
				sprintf( str, RPL_NAMREPLY_MSG, Client_ID( Client ), "=", Channel_Name( Chan ));
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
@@ -779,7 +779,7 @@ IRC_Send_NAMES( CLIENT *Client, CHANNEL *Chan )
 | 
			
		||||
	if( str[strlen( str ) - 1] != ':')
 | 
			
		||||
	{
 | 
			
		||||
		/* Es sind noch Daten da, die gesendet werden muessen */
 | 
			
		||||
		if( ! IRC_WriteStrClient( Client, str )) return DISCONNECTED;
 | 
			
		||||
		if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return CONNECTED;
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: lists.c,v 1.8 2002/09/08 17:06:07 alex Exp $
 | 
			
		||||
 * $Id: lists.c,v 1.8.2.2 2002/10/04 13:12:46 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * lists.c: Verwaltung der "IRC-Listen": Ban, Invite, ...
 | 
			
		||||
 */
 | 
			
		||||
@@ -317,13 +317,13 @@ GLOBAL CHAR *
 | 
			
		||||
Lists_MakeMask( CHAR *Pattern )
 | 
			
		||||
{
 | 
			
		||||
	/* Hier wird aus einem "beliebigen" Pattern eine gueltige IRC-Mask erzeugt.
 | 
			
		||||
	* Diese ist aber nur bis zum naechsten Aufruf von Lists_MakeMask() gueltig,
 | 
			
		||||
	* da ein einziger globaler Puffer verwendet wird. ->Umkopieren!*/
 | 
			
		||||
	 * Diese ist aber nur bis zum naechsten Aufruf von Lists_MakeMask() gueltig,
 | 
			
		||||
	 * da ein einziger globaler Puffer verwendet wird. ->Umkopieren!*/
 | 
			
		||||
 | 
			
		||||
	STATIC CHAR TheMask[MASK_LEN];
 | 
			
		||||
	CHAR *excl, *at;
 | 
			
		||||
 | 
			
		||||
	assert( Pattern );
 | 
			
		||||
	assert( Pattern != NULL );
 | 
			
		||||
 | 
			
		||||
	excl = strchr( Pattern, '!' );
 | 
			
		||||
	at = strchr( Pattern, '@' );
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: log.c,v 1.37 2002/09/09 22:55:21 alex Exp $
 | 
			
		||||
 * $Id: log.c,v 1.37.2.2 2002/10/04 13:12:46 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * log.c: Logging-Funktionen
 | 
			
		||||
 */
 | 
			
		||||
@@ -185,7 +185,7 @@ va_dcl
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		/* Syslog */
 | 
			
		||||
		syslog( Level, msg );
 | 
			
		||||
		syslog( Level, "%s", msg );
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * 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)
 | 
			
		||||
 */
 | 
			
		||||
@@ -21,8 +21,8 @@
 | 
			
		||||
 | 
			
		||||
#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_CREATED_MSG			"003 %s :This server was started %s"
 | 
			
		||||
#define RPL_MYINFO_MSG			"004 %s :%s ngircd-%s %s %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_UMODEIS_MSG			"211 %s +%s"
 | 
			
		||||
#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"
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: ngircd.c,v 1.54 2002/09/07 17:57:17 alex Exp $
 | 
			
		||||
 * $Id: ngircd.c,v 1.54.2.2 2002/10/04 13:12:46 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * ngircd.c: Hier beginnt alles ;-)
 | 
			
		||||
 */
 | 
			
		||||
@@ -159,7 +159,7 @@ main( int argc, const char *argv[] )
 | 
			
		||||
						NGIRCd_ConfFile[FNAME_LEN - 1] = '\0';
 | 
			
		||||
 | 
			
		||||
						/* zum uebernaechsten Parameter */
 | 
			
		||||
						i++; n = strlen( argv[i] );
 | 
			
		||||
						i++; n = (INT32)strlen( argv[i] );
 | 
			
		||||
						ok = TRUE;
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
@@ -451,7 +451,7 @@ Initialize_Listen_Ports( VOID )
 | 
			
		||||
	/* Ports, auf denen der Server Verbindungen entgegennehmen
 | 
			
		||||
	 * soll, initialisieren */
 | 
			
		||||
	
 | 
			
		||||
	UINT created, i;
 | 
			
		||||
	INT created, i;
 | 
			
		||||
 | 
			
		||||
	created = 0;
 | 
			
		||||
	for( i = 0; i < Conf_ListenPorts_Count; i++ )
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
 * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
 | 
			
		||||
 * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: parse.c,v 1.41 2002/09/16 09:20:27 alex Exp $
 | 
			
		||||
 * $Id: parse.c,v 1.41.2.2 2002/10/04 13:12:46 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * parse.c: Parsen der Client-Anfragen
 | 
			
		||||
 */
 | 
			
		||||
@@ -311,7 +311,7 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
 | 
			
		||||
			else strcat( str, " :" );
 | 
			
		||||
			strcat( str, Req->argv[i] );
 | 
			
		||||
		}
 | 
			
		||||
		return IRC_WriteStrClientPrefix( target, prefix, str );
 | 
			
		||||
		return IRC_WriteStrClientPrefix( target, prefix, "%s", str );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if( strcasecmp( Req->command, "PASS" ) == 0 ) return IRC_PASS( client, Req );
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
# 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.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
 | 
			
		||||
@@ -17,21 +17,24 @@ AUTOMAKE_OPTIONS = ../portab/ansi2knr
 | 
			
		||||
INCLUDES = -I$(srcdir)/../portab
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = \
 | 
			
		||||
	getpid.sh \
 | 
			
		||||
	start-server.sh stop-server.sh tests.sh stress-server.sh \
 | 
			
		||||
	connect-test.e channel-test.e mode-test.e \
 | 
			
		||||
	stress-A.e stress-B.e check-idle.e \
 | 
			
		||||
	ngircd-test.conf
 | 
			
		||||
 | 
			
		||||
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:
 | 
			
		||||
	rm -f Makefile Makefile.in
 | 
			
		||||
 | 
			
		||||
check_SCRIPTS = ngircd-TEST tests.sh
 | 
			
		||||
check_SCRIPTS = ngircd-TEST-Binary tests.sh
 | 
			
		||||
 | 
			
		||||
ngircd-TEST:
 | 
			
		||||
	ln -s ../ngircd/ngircd ngircd-TEST
 | 
			
		||||
ngircd-TEST-Binary:
 | 
			
		||||
	cp ../ngircd/ngircd ngircd-TEST
 | 
			
		||||
	[ -f getpid.sh ] || ln -s $(srcdir)/getpid.sh .
 | 
			
		||||
 | 
			
		||||
connect-test: tests.sh
 | 
			
		||||
	ln -s $(srcdir)/tests.sh connect-test
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								src/testsuite/getpid.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										28
									
								
								src/testsuite/getpid.sh
									
									
									
									
									
										Executable 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-
 | 
			
		||||
@@ -1,22 +1,32 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# 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 ..."
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
# Test-Server starten ...
 | 
			
		||||
./ngircd-TEST -np -f ${srcdir}/ngircd-test.conf > ngircd-test.log 2>&1 &
 | 
			
		||||
sleep 1
 | 
			
		||||
 | 
			
		||||
PS_FLAGS=a; PS_PIDCOL=1
 | 
			
		||||
ps a > /dev/null 2>&1
 | 
			
		||||
if [ $? -ne 0 ]; then PS_FLAGS=-f; PS_PIDCOL=2; fi
 | 
			
		||||
 | 
			
		||||
ps $PS_FLAGS > procs.tmp
 | 
			
		||||
pid=`cat procs.tmp | grep ngircd-TEST | awk "{ print \\\$$PS_PIDCOL }"`
 | 
			
		||||
kill -0 $pid > /dev/null 2>&1
 | 
			
		||||
# validieren, dass Server laeuft
 | 
			
		||||
pid=`./getpid.sh ngircd-TEST`
 | 
			
		||||
[ -n "$pid" ] && kill -0 $pid > /dev/null 2>&1 || exit 1
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,17 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# 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 ..."
 | 
			
		||||
 | 
			
		||||
PS_FLAGS=a; PS_PIDCOL=1
 | 
			
		||||
ps a > /dev/null 2>&1
 | 
			
		||||
if [ $? -ne 0 ]; then PS_FLAGS=-f; PS_PIDCOL=2; fi
 | 
			
		||||
# Test-Server stoppen ...
 | 
			
		||||
pid=`./getpid.sh ngircd-TEST`
 | 
			
		||||
[ -n "$pid" ] && kill $pid > /dev/null 2>&1 || exit 1
 | 
			
		||||
sleep 1
 | 
			
		||||
 | 
			
		||||
ps $PS_FLAGS > procs.tmp
 | 
			
		||||
pid=`cat procs.tmp | grep ngircd-TEST | awk "{ print \\\$$PS_PIDCOL }"`
 | 
			
		||||
kill $pid > /dev/null 2>&1
 | 
			
		||||
# jetzt duerfte der Prozess nicht mehr laufen
 | 
			
		||||
kill -0 $pid > /dev/null 2>&1 && exit 1 || exit 0
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,10 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# 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
 | 
			
		||||
else CLIENTS=50; fi
 | 
			
		||||
[ -z "$srcdir" ] && srcdir=`dirname $0`
 | 
			
		||||
 | 
			
		||||
[ $1 -gt 0 ] 2> /dev/null && CLIENTS=$1 || CLIENTS=5
 | 
			
		||||
 | 
			
		||||
name=`basename $0`
 | 
			
		||||
test=`echo ${name} | cut -d '.' -f 1`
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user