mirror of
				https://github.com/osmarks/ngircd.git
				synced 2025-11-03 23:43:00 +00:00 
			
		
		
		
	Compare commits
	
		
			27 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					e04d74ad3b | ||
| 
						 | 
					002d9299a6 | ||
| 
						 | 
					33cec4efd9 | ||
| 
						 | 
					0999dc7907 | ||
| 
						 | 
					35fe11fea4 | ||
| 
						 | 
					180fdb542b | ||
| 
						 | 
					9cb9cca536 | ||
| 
						 | 
					593cc7b4e2 | ||
| 
						 | 
					0be284db30 | ||
| 
						 | 
					e2e89067ae | ||
| 
						 | 
					f632ca2645 | ||
| 
						 | 
					12497e1dd2 | ||
| 
						 | 
					cabd09d9ae | ||
| 
						 | 
					98b92e112a | ||
| 
						 | 
					2d524b1958 | ||
| 
						 | 
					d989166d3f | ||
| 
						 | 
					f7c63e9237 | ||
| 
						 | 
					0958133a0a | ||
| 
						 | 
					205fea28b3 | ||
| 
						 | 
					8cd18eb6b4 | ||
| 
						 | 
					7f66fd908e | ||
| 
						 | 
					3c33a41fe8 | ||
| 
						 | 
					0d0cdf4831 | ||
| 
						 | 
					030fef4a8a | ||
| 
						 | 
					15d31d31db | ||
| 
						 | 
					2a3ec21702 | ||
| 
						 | 
					9f9576ce31 | 
							
								
								
									
										2
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								AUTHORS
									
									
									
									
									
								
							@@ -31,4 +31,4 @@ Andrew Tridgell & Martin Pool: strl{cpy|cat}()-functions
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
$Id: AUTHORS,v 1.9 2004/05/07 11:19:20 alex Exp $
 | 
			
		||||
$Id: AUTHORS,v 1.8.2.1 2004/05/07 11:24:17 alex Exp $
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -10,8 +10,27 @@
 | 
			
		||||
                               -- ChangeLog --
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ngIRCd CVSHEAD
 | 
			
		||||
ngircd 0.8.1 (2004-12-25)
 | 
			
		||||
 | 
			
		||||
  - Autoconf: Updated config.guess and config.sub
 | 
			
		||||
  - Added some more debug code ...
 | 
			
		||||
  - Fixed wrong variable names in output of "ngircd --configtest".
 | 
			
		||||
  - Debian: Fxied the name of the "default file" in the init script for
 | 
			
		||||
    ngircd-full packages. And do the test if the binary is executable after
 | 
			
		||||
    reading this file.
 | 
			
		||||
  - Enhanced the "test suite": please have a look at src/testsuite/README!
 | 
			
		||||
 | 
			
		||||
ngircd 0.8.0 (2004-06-26)
 | 
			
		||||
 | 
			
		||||
  - Fixed wrong buffer size calculation for results of the resolver.
 | 
			
		||||
 | 
			
		||||
  ngircd 0.8.0-pre2 (2004-05-16)
 | 
			
		||||
  - Enhanced logging to console when running in "no-detached mode": added
 | 
			
		||||
    PID and log messages of resolver sub-processes.
 | 
			
		||||
  - Fixed host name lookups when using IDENT user lookups.
 | 
			
		||||
  - "make clean" and "make maintainer-clean" remove more files mow.
 | 
			
		||||
 | 
			
		||||
  ngIRCd 0.8.0-pre1 (2004-05-07)
 | 
			
		||||
  - Two new configuration options: "ChrootDir" and "MotdPhrase", thanks to
 | 
			
		||||
    Benjamin Pineau <ben@zouh.org>. Now you can force the daemon to change
 | 
			
		||||
    its root and working directory to something "safe". MotdPhrase is used
 | 
			
		||||
@@ -521,4 +540,4 @@ ngIRCd 0.0.1, 31.12.2001
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
$Id: ChangeLog,v 1.234 2004/05/07 11:19:20 alex Exp $
 | 
			
		||||
$Id: ChangeLog,v 1.233.2.11 2004/12/25 00:20:57 alex Exp $
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								INSTALL
									
									
									
									
									
								
							@@ -46,6 +46,20 @@ files (using a distribution archive or CVS) is as following:
 | 
			
		||||
  3) make
 | 
			
		||||
  4) make install
 | 
			
		||||
 | 
			
		||||
(Please see details below!)
 | 
			
		||||
 | 
			
		||||
Now the newly compiled executable "ngircd" is installed in its standard
 | 
			
		||||
location, /usr/local/sbin/.
 | 
			
		||||
 | 
			
		||||
The next step is to configure and afterwards starting the daemon. Please
 | 
			
		||||
have a look at the ngircd(8) and ngircd.conf(5) manual pages for details
 | 
			
		||||
and all possible options.
 | 
			
		||||
 | 
			
		||||
If no previous version of the configuration file exists (the standard name
 | 
			
		||||
is /usr/local/etc/ngircd.conf), a sample configuration file containing all
 | 
			
		||||
possible options will be installed there. You'll find its template in the
 | 
			
		||||
doc/ directory: sample-ngircd.conf.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
1): "autogen.sh"
 | 
			
		||||
 | 
			
		||||
@@ -163,4 +177,4 @@ number. In both cases the server exits after the output.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
$Id: INSTALL,v 1.19 2004/05/07 11:19:20 alex Exp $
 | 
			
		||||
$Id: INSTALL,v 1.18.2.2 2004/09/03 20:02:02 alex Exp $
 | 
			
		||||
 
 | 
			
		||||
@@ -8,18 +8,21 @@
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
# Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
#
 | 
			
		||||
# $Id: Makefile.am,v 1.14 2004/01/01 22:24:48 alex Exp $
 | 
			
		||||
# $Id: Makefile.am,v 1.14.2.1 2004/05/11 00:38:17 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
AUTOMAKE_OPTIONS = gnu
 | 
			
		||||
 | 
			
		||||
SUBDIRS = doc src man contrib
 | 
			
		||||
 | 
			
		||||
clean-local:
 | 
			
		||||
	rm -f build-stamp*
 | 
			
		||||
 | 
			
		||||
maintainer-clean-local:
 | 
			
		||||
	rm -rf autom4te.cache
 | 
			
		||||
	rm -f Makefile.in Makefile aclocal.m4 configure
 | 
			
		||||
	rm -f mkinstalldirs missing depcomp install-sh
 | 
			
		||||
	rm -f config.log build-stamp* debian
 | 
			
		||||
	rm -f config.log debian
 | 
			
		||||
 | 
			
		||||
lint:
 | 
			
		||||
	make -C src/ngircd lint
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								NEWS
									
									
									
									
									
								
							@@ -10,7 +10,7 @@
 | 
			
		||||
                                  -- NEWS --
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ngIRCd CVSHEAD
 | 
			
		||||
ngIRCd 0.8.0 (2004-06-26)
 | 
			
		||||
 | 
			
		||||
  - Two new configuration options: "ChrootDir" and "MotdPhrase", thanks to
 | 
			
		||||
    Benjamin Pineau <ben@zouh.org>. Now you can force the daemon to change
 | 
			
		||||
@@ -189,4 +189,4 @@ ngIRCd 0.0.1, 31.12.2001
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
$Id: NEWS,v 1.65 2004/05/07 11:19:20 alex Exp $
 | 
			
		||||
$Id: NEWS,v 1.64.2.3 2004/06/26 09:12:38 alex Exp $
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								README
									
									
									
									
									
								
							@@ -84,4 +84,4 @@ mail to: <alex@barton.de> or <alex@arthur.ath.cx>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
$Id: README,v 1.19 2004/05/07 11:19:20 alex Exp $
 | 
			
		||||
$Id: README,v 1.18.2.1 2004/05/07 11:24:17 alex Exp $
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										95
									
								
								config.guess
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										95
									
								
								config.guess
									
									
									
									
										vendored
									
									
								
							@@ -1,9 +1,9 @@
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
# Attempt to guess a canonical system name.
 | 
			
		||||
#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 | 
			
		||||
#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 | 
			
		||||
#   2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
timestamp='2004-01-05'
 | 
			
		||||
timestamp='2004-08-13'
 | 
			
		||||
 | 
			
		||||
# This file is free software; you can redistribute it and/or modify it
 | 
			
		||||
# under the terms of the GNU General Public License as published by
 | 
			
		||||
@@ -53,7 +53,7 @@ version="\
 | 
			
		||||
GNU config.guess ($timestamp)
 | 
			
		||||
 | 
			
		||||
Originally written by Per Bothner.
 | 
			
		||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
 | 
			
		||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 | 
			
		||||
Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
This is free software; see the source for copying conditions.  There is NO
 | 
			
		||||
@@ -197,15 +197,21 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 | 
			
		||||
	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 | 
			
		||||
	echo "${machine}-${os}${release}"
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    amd64:OpenBSD:*:*)
 | 
			
		||||
	echo x86_64-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    amiga:OpenBSD:*:*)
 | 
			
		||||
	echo m68k-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    arc:OpenBSD:*:*)
 | 
			
		||||
	echo mipsel-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
    cats:OpenBSD:*:*)
 | 
			
		||||
	echo arm-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    hp300:OpenBSD:*:*)
 | 
			
		||||
	echo m68k-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    luna88k:OpenBSD:*:*)
 | 
			
		||||
    	echo m88k-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    mac68k:OpenBSD:*:*)
 | 
			
		||||
	echo m68k-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
@@ -221,28 +227,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 | 
			
		||||
    mvmeppc:OpenBSD:*:*)
 | 
			
		||||
	echo powerpc-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    pegasos:OpenBSD:*:*)
 | 
			
		||||
	echo powerpc-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    pmax:OpenBSD:*:*)
 | 
			
		||||
	echo mipsel-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    sgi:OpenBSD:*:*)
 | 
			
		||||
	echo mipseb-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	echo mips64-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    sun3:OpenBSD:*:*)
 | 
			
		||||
	echo m68k-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    wgrisc:OpenBSD:*:*)
 | 
			
		||||
	echo mipsel-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    *:OpenBSD:*:*)
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    *:ekkoBSD:*:*)
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    macppc:MirBSD:*:*)
 | 
			
		||||
	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    *:MirBSD:*:*)
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    alpha:OSF1:*:*)
 | 
			
		||||
	if test $UNAME_RELEASE = "V4.0"; then
 | 
			
		||||
	case $UNAME_RELEASE in
 | 
			
		||||
	*4.0)
 | 
			
		||||
		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
 | 
			
		||||
	fi
 | 
			
		||||
		;;
 | 
			
		||||
	*5.*)
 | 
			
		||||
	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
 | 
			
		||||
		;;
 | 
			
		||||
	esac
 | 
			
		||||
	# According to Compaq, /usr/sbin/psrinfo has been available on
 | 
			
		||||
	# OSF/1 and Tru64 systems produced since 1995.  I hope that
 | 
			
		||||
	# covers most systems running today.  This code pipes the CPU
 | 
			
		||||
@@ -280,14 +291,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 | 
			
		||||
	    "EV7.9 (21364A)")
 | 
			
		||||
		UNAME_MACHINE="alphaev79" ;;
 | 
			
		||||
	esac
 | 
			
		||||
	# A Pn.n version is a patched version.
 | 
			
		||||
	# A Vn.n version is a released version.
 | 
			
		||||
	# A Tn.n version is a released field test version.
 | 
			
		||||
	# A Xn.n version is an unreleased experimental baselevel.
 | 
			
		||||
	# 1.2 uses "1.2" for uname -r.
 | 
			
		||||
	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    Alpha*:OpenVMS:*:*)
 | 
			
		||||
	echo alpha-hp-vms
 | 
			
		||||
	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    Alpha\ *:Windows_NT*:*)
 | 
			
		||||
	# How do we know it's Interix rather than the generic POSIX subsystem?
 | 
			
		||||
@@ -405,6 +414,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 | 
			
		||||
    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
 | 
			
		||||
        echo m68k-unknown-mint${UNAME_RELEASE}
 | 
			
		||||
        exit 0 ;;
 | 
			
		||||
    m68k:machten:*:*)
 | 
			
		||||
	echo m68k-apple-machten${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    powerpc:machten:*:*)
 | 
			
		||||
	echo powerpc-apple-machten${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
@@ -740,7 +752,7 @@ EOF
 | 
			
		||||
	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    *:UNICOS/mp:*:*)
 | 
			
		||||
	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 | 
			
		||||
	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 | 
			
		||||
	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
 | 
			
		||||
@@ -763,21 +775,7 @@ EOF
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    *:FreeBSD:*:*)
 | 
			
		||||
	# Determine whether the default compiler uses glibc.
 | 
			
		||||
	eval $set_cc_for_build
 | 
			
		||||
	sed 's/^	//' << EOF >$dummy.c
 | 
			
		||||
	#include <features.h>
 | 
			
		||||
	#if __GLIBC__ >= 2
 | 
			
		||||
	LIBC=gnu
 | 
			
		||||
	#else
 | 
			
		||||
	LIBC=
 | 
			
		||||
	#endif
 | 
			
		||||
EOF
 | 
			
		||||
	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
 | 
			
		||||
	# GNU/KFreeBSD systems have a "k" prefix to indicate we are using
 | 
			
		||||
	# FreeBSD's kernel, but not the complete OS.
 | 
			
		||||
	case ${LIBC} in gnu) kernel_only='k' ;; esac
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    i*:CYGWIN*:*)
 | 
			
		||||
	echo ${UNAME_MACHINE}-pc-cygwin
 | 
			
		||||
@@ -829,6 +827,9 @@ EOF
 | 
			
		||||
    ia64:Linux:*:*)
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-linux-gnu
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    m32r*:Linux:*:*)
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-linux-gnu
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    m68*:Linux:*:*)
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-linux-gnu
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
@@ -1069,9 +1070,9 @@ EOF
 | 
			
		||||
    M680?0:D-NIX:5.3:*)
 | 
			
		||||
	echo m68k-diab-dnix
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    M68*:*:R3V[567]*:*)
 | 
			
		||||
    M68*:*:R3V[5678]*:*)
 | 
			
		||||
	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
 | 
			
		||||
    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
 | 
			
		||||
    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
 | 
			
		||||
	OS_REL=''
 | 
			
		||||
	test -r /etc/.relid \
 | 
			
		||||
	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 | 
			
		||||
@@ -1169,9 +1170,10 @@ EOF
 | 
			
		||||
	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    *:Darwin:*:*)
 | 
			
		||||
	case `uname -p` in
 | 
			
		||||
	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 | 
			
		||||
	case $UNAME_PROCESSOR in
 | 
			
		||||
	    *86) UNAME_PROCESSOR=i686 ;;
 | 
			
		||||
	    powerpc) UNAME_PROCESSOR=powerpc ;;
 | 
			
		||||
	    unknown) UNAME_PROCESSOR=powerpc ;;
 | 
			
		||||
	esac
 | 
			
		||||
	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
@@ -1230,9 +1232,16 @@ EOF
 | 
			
		||||
    SEI:*:*:SEIUX)
 | 
			
		||||
        echo mips-sei-seiux${UNAME_RELEASE}
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    *:DRAGONFLY:*:*)
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE}
 | 
			
		||||
    *:DragonFly:*:*)
 | 
			
		||||
	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
 | 
			
		||||
	exit 0 ;;
 | 
			
		||||
    *:*VMS:*:*)
 | 
			
		||||
    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
 | 
			
		||||
	case "${UNAME_MACHINE}" in
 | 
			
		||||
	    A*) echo alpha-dec-vms && exit 0 ;;
 | 
			
		||||
	    I*) echo ia64-dec-vms && exit 0 ;;
 | 
			
		||||
	    V*) echo vax-dec-vms && exit 0 ;;
 | 
			
		||||
	esac
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
#echo '(No uname command or uname output not recognized.)' 1>&2
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										57
									
								
								config.sub
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										57
									
								
								config.sub
									
									
									
									
										vendored
									
									
								
							@@ -1,9 +1,9 @@
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
# Configuration validation subroutine script.
 | 
			
		||||
#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 | 
			
		||||
#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 | 
			
		||||
#   2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
timestamp='2004-01-05'
 | 
			
		||||
timestamp='2004-06-24'
 | 
			
		||||
 | 
			
		||||
# This file is (in principle) common to ALL GNU software.
 | 
			
		||||
# The presence of a machine in this file suggests that SOME GNU software
 | 
			
		||||
@@ -70,7 +70,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 | 
			
		||||
version="\
 | 
			
		||||
GNU config.sub ($timestamp)
 | 
			
		||||
 | 
			
		||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
 | 
			
		||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 | 
			
		||||
Free Software Foundation, Inc.
 | 
			
		||||
 | 
			
		||||
This is free software; see the source for copying conditions.  There is NO
 | 
			
		||||
@@ -145,7 +145,7 @@ case $os in
 | 
			
		||||
	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 | 
			
		||||
	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 | 
			
		||||
	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
 | 
			
		||||
	-apple | -axis)
 | 
			
		||||
	-apple | -axis | -knuth | -cray)
 | 
			
		||||
		os=
 | 
			
		||||
		basic_machine=$1
 | 
			
		||||
		;;
 | 
			
		||||
@@ -237,7 +237,7 @@ case $basic_machine in
 | 
			
		||||
	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 | 
			
		||||
	| i370 | i860 | i960 | ia64 \
 | 
			
		||||
	| ip2k | iq2000 \
 | 
			
		||||
	| m32r | m68000 | m68k | m88k | mcore \
 | 
			
		||||
	| m32r | m32rle | m68000 | m68k | m88k | mcore \
 | 
			
		||||
	| mips | mipsbe | mipseb | mipsel | mipsle \
 | 
			
		||||
	| mips16 \
 | 
			
		||||
	| mips64 | mips64el \
 | 
			
		||||
@@ -262,7 +262,7 @@ case $basic_machine in
 | 
			
		||||
	| pyramid \
 | 
			
		||||
	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
 | 
			
		||||
	| sh64 | sh64le \
 | 
			
		||||
	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
 | 
			
		||||
	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
 | 
			
		||||
	| strongarm \
 | 
			
		||||
	| tahoe | thumb | tic4x | tic80 | tron \
 | 
			
		||||
	| v850 | v850e \
 | 
			
		||||
@@ -300,7 +300,7 @@ case $basic_machine in
 | 
			
		||||
	| avr-* \
 | 
			
		||||
	| bs2000-* \
 | 
			
		||||
	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
 | 
			
		||||
	| clipper-* | cydra-* \
 | 
			
		||||
	| clipper-* | craynv-* | cydra-* \
 | 
			
		||||
	| d10v-* | d30v-* | dlx-* \
 | 
			
		||||
	| elxsi-* \
 | 
			
		||||
	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
 | 
			
		||||
@@ -308,7 +308,7 @@ case $basic_machine in
 | 
			
		||||
	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 | 
			
		||||
	| i*86-* | i860-* | i960-* | ia64-* \
 | 
			
		||||
	| ip2k-* | iq2000-* \
 | 
			
		||||
	| m32r-* \
 | 
			
		||||
	| m32r-* | m32rle-* \
 | 
			
		||||
	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
 | 
			
		||||
	| m88110-* | m88k-* | mcore-* \
 | 
			
		||||
	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 | 
			
		||||
@@ -326,8 +326,9 @@ case $basic_machine in
 | 
			
		||||
	| mipsisa64sb1-* | mipsisa64sb1el-* \
 | 
			
		||||
	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
 | 
			
		||||
	| mipstx39-* | mipstx39el-* \
 | 
			
		||||
	| mmix-* \
 | 
			
		||||
	| msp430-* \
 | 
			
		||||
	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
 | 
			
		||||
	| none-* | np1-* | ns16k-* | ns32k-* \
 | 
			
		||||
	| orion-* \
 | 
			
		||||
	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 | 
			
		||||
	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 | 
			
		||||
@@ -336,7 +337,7 @@ case $basic_machine in
 | 
			
		||||
	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
 | 
			
		||||
	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 | 
			
		||||
	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
 | 
			
		||||
	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
 | 
			
		||||
	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
 | 
			
		||||
	| tahoe-* | thumb-* \
 | 
			
		||||
	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
 | 
			
		||||
	| tron-* \
 | 
			
		||||
@@ -363,6 +364,9 @@ case $basic_machine in
 | 
			
		||||
		basic_machine=a29k-amd
 | 
			
		||||
		os=-udi
 | 
			
		||||
		;;
 | 
			
		||||
    	abacus)
 | 
			
		||||
		basic_machine=abacus-unknown
 | 
			
		||||
		;;
 | 
			
		||||
	adobe68k)
 | 
			
		||||
		basic_machine=m68010-adobe
 | 
			
		||||
		os=-scout
 | 
			
		||||
@@ -442,12 +446,24 @@ case $basic_machine in
 | 
			
		||||
		basic_machine=j90-cray
 | 
			
		||||
		os=-unicos
 | 
			
		||||
		;;
 | 
			
		||||
	craynv)
 | 
			
		||||
		basic_machine=craynv-cray
 | 
			
		||||
		os=-unicosmp
 | 
			
		||||
		;;
 | 
			
		||||
	cr16c)
 | 
			
		||||
		basic_machine=cr16c-unknown
 | 
			
		||||
		os=-elf
 | 
			
		||||
		;;
 | 
			
		||||
	crds | unos)
 | 
			
		||||
		basic_machine=m68k-crds
 | 
			
		||||
		;;
 | 
			
		||||
	cris | cris-* | etrax*)
 | 
			
		||||
		basic_machine=cris-axis
 | 
			
		||||
		;;
 | 
			
		||||
	crx)
 | 
			
		||||
		basic_machine=crx-unknown
 | 
			
		||||
		os=-elf
 | 
			
		||||
		;;
 | 
			
		||||
	da30 | da30-*)
 | 
			
		||||
		basic_machine=m68k-da30
 | 
			
		||||
		;;
 | 
			
		||||
@@ -648,10 +664,6 @@ case $basic_machine in
 | 
			
		||||
	mips3*)
 | 
			
		||||
		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
 | 
			
		||||
		;;
 | 
			
		||||
	mmix*)
 | 
			
		||||
		basic_machine=mmix-knuth
 | 
			
		||||
		os=-mmixware
 | 
			
		||||
		;;
 | 
			
		||||
	monitor)
 | 
			
		||||
		basic_machine=m68k-rom68k
 | 
			
		||||
		os=-coff
 | 
			
		||||
@@ -732,10 +744,6 @@ case $basic_machine in
 | 
			
		||||
	np1)
 | 
			
		||||
		basic_machine=np1-gould
 | 
			
		||||
		;;
 | 
			
		||||
	nv1)
 | 
			
		||||
		basic_machine=nv1-cray
 | 
			
		||||
		os=-unicosmp
 | 
			
		||||
		;;
 | 
			
		||||
	nsr-tandem)
 | 
			
		||||
		basic_machine=nsr-tandem
 | 
			
		||||
		;;
 | 
			
		||||
@@ -1048,6 +1056,9 @@ case $basic_machine in
 | 
			
		||||
	romp)
 | 
			
		||||
		basic_machine=romp-ibm
 | 
			
		||||
		;;
 | 
			
		||||
	mmix)
 | 
			
		||||
		basic_machine=mmix-knuth
 | 
			
		||||
		;;
 | 
			
		||||
	rs6000)
 | 
			
		||||
		basic_machine=rs6000-ibm
 | 
			
		||||
		;;
 | 
			
		||||
@@ -1070,7 +1081,7 @@ case $basic_machine in
 | 
			
		||||
	sh64)
 | 
			
		||||
		basic_machine=sh64-unknown
 | 
			
		||||
		;;
 | 
			
		||||
	sparc | sparcv9 | sparcv9b)
 | 
			
		||||
	sparc | sparcv8 | sparcv9 | sparcv9b)
 | 
			
		||||
		basic_machine=sparc-sun
 | 
			
		||||
		;;
 | 
			
		||||
	cydra)
 | 
			
		||||
@@ -1143,8 +1154,9 @@ case $os in
 | 
			
		||||
	      | -aos* \
 | 
			
		||||
	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 | 
			
		||||
	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 | 
			
		||||
	      | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \
 | 
			
		||||
	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 | 
			
		||||
	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
 | 
			
		||||
	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 | 
			
		||||
	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 | 
			
		||||
	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 | 
			
		||||
	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 | 
			
		||||
	      | -chorusos* | -chorusrdb* \
 | 
			
		||||
@@ -1362,6 +1374,9 @@ case $basic_machine in
 | 
			
		||||
	*-ibm)
 | 
			
		||||
		os=-aix
 | 
			
		||||
		;;
 | 
			
		||||
    	*-knuth)
 | 
			
		||||
		os=-mmixware
 | 
			
		||||
		;;
 | 
			
		||||
	*-wec)
 | 
			
		||||
		os=-proelf
 | 
			
		||||
		;;
 | 
			
		||||
 
 | 
			
		||||
@@ -8,13 +8,13 @@
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
# Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
#
 | 
			
		||||
# $Id: configure.in,v 1.102 2004/04/11 13:20:24 alex Exp $
 | 
			
		||||
# $Id: configure.in,v 1.102.2.5 2004/12/25 00:20:57 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# -- Initialisation --
 | 
			
		||||
 | 
			
		||||
AC_PREREQ(2.50)
 | 
			
		||||
AC_INIT(ngircd, CVSHEAD)
 | 
			
		||||
AC_INIT(ngircd, 0.8.1)
 | 
			
		||||
AC_CONFIG_SRCDIR(src/ngircd/ngircd.c)
 | 
			
		||||
AC_CANONICAL_TARGET
 | 
			
		||||
AM_INIT_AUTOMAKE(1.6)
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
# Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
#
 | 
			
		||||
# $Id: Makefile.am,v 1.3 2004/01/13 01:10:11 alex Exp $
 | 
			
		||||
# $Id: Makefile.am,v 1.3.2.1 2004/05/11 00:38:17 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = rules changelog compat control copyright \
 | 
			
		||||
@@ -16,11 +16,12 @@ EXTRA_DIST = rules changelog compat control copyright \
 | 
			
		||||
 | 
			
		||||
maintainer-clean-local:
 | 
			
		||||
	rm -f Makefile Makefile.in
 | 
			
		||||
 | 
			
		||||
clean-local:
 | 
			
		||||
	rm -f ngircd.postinst.debhelper ngircd.postrm.debhelper \
 | 
			
		||||
	 ngircd.prerm.debhelper ngircd.substvars
 | 
			
		||||
	rm -f ngircd-full.postinst.debhelper ngircd-full.postrm.debhelper \
 | 
			
		||||
	 ngircd-full.prerm.debhelper ngircd-full.substvars
 | 
			
		||||
 | 
			
		||||
	rm -rf ngircd ngircd-full
 | 
			
		||||
	rm -f files
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,22 @@
 | 
			
		||||
ngircd (0.8.1-0ab1) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * New "upstream release".
 | 
			
		||||
 | 
			
		||||
 -- Alexander Barton <alex@Arthur.Ath.CX>  Sat, 25 Dec 2004 01:18:32 +0100
 | 
			
		||||
 | 
			
		||||
ngircd (0.8.0-0ab2) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Added missing commas to debian control file, fixes bug #56.
 | 
			
		||||
    Thanks to Kevin Otte.
 | 
			
		||||
 | 
			
		||||
 -- Alexander Barton <alex@Arthur.Ath.CX>  Thu, 15 Jul 2004 10:53:39 +0200
 | 
			
		||||
 | 
			
		||||
ngircd (0.8.0-0ab1) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * New upstream version.
 | 
			
		||||
 | 
			
		||||
 -- Alexander Barton <alex@Arthur.Ath.CX>  Sat, 26 Jun 2004 11:25:59 +0200
 | 
			
		||||
 | 
			
		||||
ngircd (0.7.7+HEAD-0ab5) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Updates from CVS HEAD branch, most notably: "INVITE- and BAN-lists
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ Standards-Version: 3.5.8
 | 
			
		||||
 | 
			
		||||
Package: ngircd
 | 
			
		||||
Architecture: any
 | 
			
		||||
Depends: ${shlibs:Depends} ${misc:Depends}
 | 
			
		||||
Depends: ${shlibs:Depends}, ${misc:Depends}
 | 
			
		||||
Description: A lightweight daemon for the Internet Relay Chat (IRC)
 | 
			
		||||
 ngIRCd is a free open source daemon for the Internet Relay Chat (IRC)
 | 
			
		||||
 network. It is written from scratch and is not based upon the original
 | 
			
		||||
@@ -27,7 +27,7 @@ Description: A lightweight daemon for the Internet Relay Chat (IRC)
 | 
			
		||||
 | 
			
		||||
Package: ngircd-full
 | 
			
		||||
Architecture: any
 | 
			
		||||
Depends: ${shlibs:Depends} ${misc:Depends}
 | 
			
		||||
Depends: ${shlibs:Depends}, ${misc:Depends}
 | 
			
		||||
Conflicts: ngircd
 | 
			
		||||
Description: A lightweight daemon for the Internet Relay Chat (IRC)
 | 
			
		||||
 ngIRCd is a free open source daemon for the Internet Relay Chat (IRC)
 | 
			
		||||
 
 | 
			
		||||
@@ -2,18 +2,19 @@
 | 
			
		||||
#
 | 
			
		||||
# ngIRCd start and stop script for Debian-based systems
 | 
			
		||||
#
 | 
			
		||||
# $Id: ngircd.init,v 1.1 2003/12/31 17:20:11 alex Exp $
 | 
			
		||||
# $Id: ngircd.init,v 1.1.2.1 2004/09/06 00:36:49 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 | 
			
		||||
DAEMON=/usr/sbin/ngircd
 | 
			
		||||
NAME=ngIRCd
 | 
			
		||||
BASENAME=`basename $0`
 | 
			
		||||
DESC="IRC daemon"
 | 
			
		||||
PARAMS=""
 | 
			
		||||
 | 
			
		||||
test -x $DAEMON || exit 0
 | 
			
		||||
test -f /etc/default/$BASENAME && . /etc/default/$BASENAME
 | 
			
		||||
 | 
			
		||||
test -f /etc/default/ngircd && . /etc/default/ngircd
 | 
			
		||||
test -x $DAEMON || exit 0
 | 
			
		||||
 | 
			
		||||
Check_Config()
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,13 @@
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
# Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
#
 | 
			
		||||
# $Id: Makefile.am,v 1.1 2004/02/29 17:19:43 alex Exp $
 | 
			
		||||
# $Id: Makefile.am,v 1.1.2.1 2004/05/11 00:38:17 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
clean-local:
 | 
			
		||||
	rm -rf build
 | 
			
		||||
 | 
			
		||||
maintainer-clean-local:
 | 
			
		||||
	rm -f Makefile Makefile.in
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
%define name    ngircd
 | 
			
		||||
%define version CVSHEAD
 | 
			
		||||
%define version 0.8.1
 | 
			
		||||
%define release 1
 | 
			
		||||
%define prefix  %{_prefix}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,20 +26,24 @@ list can be updated. Thanks for your help!
 | 
			
		||||
                                                                    | | | |
 | 
			
		||||
Platform                    Compiler     ngIRCd     Date     Tester C M T R See
 | 
			
		||||
--------------------------- ------------ ---------- -------- ------ - - - - ---
 | 
			
		||||
hppa/unknown/openbsd3.5     gcc 2.95.3   CVSHEAD    04-05-25 alex   Y Y Y Y
 | 
			
		||||
hppa1.1/unknown/linux-gnu   gcc 3.3.3    0.8.0      04-05-30 alex   Y Y Y Y
 | 
			
		||||
i386/pc/solaris2.9          gcc 3.2.2    CVSHEAD    04-02-24 alex   Y Y Y Y
 | 
			
		||||
i386/unknown/freebsd5.0     gcc 3.2.1    0.7.0      03-05-15 alex   Y Y Y Y
 | 
			
		||||
i386/unknown/gnu0.3         gcc 3.2.3    CVSHEAD    03-05-05 alex   Y Y n Y
 | 
			
		||||
i386/unknown/freebsd5.2.1   gcc 3.3.3    0.8.0      04-05-30 alex   Y Y Y Y
 | 
			
		||||
i386/unknown/gnu0.3         gcc 3.3.3    0.8.0      04-05-30 alex   Y Y n Y
 | 
			
		||||
i386/unknown/netbsdelf1.6.1 gcc 2.95.3   CVSHEAD    04-02-24 alex   Y Y Y Y
 | 
			
		||||
i686/pc/cygwin              gcc 3.2      0.7.x-CVS  03-04-24 alex   Y Y n Y
 | 
			
		||||
i686/pc/linux-gnu           gcc 2.95     0.7.0      03-05-15 alex   Y Y Y Y (1)
 | 
			
		||||
i686/pc/linux-gnu           gcc 3.3.3    CVSHEAD    04-02-22 alex   Y Y Y Y (1)
 | 
			
		||||
i686/pc/cygwin              gcc 3.3.1    0.8.0      04-05-30 alex   Y Y n Y
 | 
			
		||||
i686/pc/linux-gnu           gcc 2.95.4   0.8.0      04-05-30 alex   Y Y Y Y (1)
 | 
			
		||||
i686/pc/linux-gnu           gcc 3.3.3    0.8.0      04-05-30 alex   Y Y Y Y (1)
 | 
			
		||||
m68k/apple/aux3.1.1         Orig. A/UX   0.7.x-CVS  03-04-22 alex   Y Y Y Y (2)
 | 
			
		||||
m68k/hp/hp-ux9.10           Orig. HPUX   0.7.x-CVS  03-04-30 goetz  Y Y Y Y
 | 
			
		||||
m88k/dg/dgux5.4R3.10        gcc 2.5.8    CVSHEAD    04-03-15 alex   Y Y ? ?
 | 
			
		||||
powerpc/apple/darwin6.5     gcc 3.1      0.7.x-CVS  03-04-23 alex   Y Y Y Y
 | 
			
		||||
powerpc/apple/darwin7.2.0   gcc 3.3      CVSHEAD    04-02-22 alex   Y Y Y Y
 | 
			
		||||
powerpc/apple/darwin7.4.0   gcc 3.3      0.8.0      04-05-30 alex   Y Y Y Y
 | 
			
		||||
powerpc/unknown/linux-gnu   gcc 3.3.3    0.8.0      04-05-30 alex   Y Y Y Y
 | 
			
		||||
sparc/sun/solaris2.6        gcc 2.95.3   0.7.x-CVS  03-04-22 alex   Y Y Y Y
 | 
			
		||||
sparc/sun/solaris2.7        gcc 3.3      CVSHEAD    04-02-24 alex   Y Y Y Y
 | 
			
		||||
sparc/sun/solaris2.7        gcc 3.3      0.8.0      04-05-30 alex   Y Y Y Y
 | 
			
		||||
sparc/unkn./netbsdelf1.6.1  gcc 2.95.3   0.8.0      04-05-30 alex   Y Y Y Y
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Notes
 | 
			
		||||
@@ -56,4 +60,4 @@ Notes
 | 
			
		||||
			
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
$Id: Platforms.txt,v 1.11 2004/04/05 11:11:05 alex Exp $
 | 
			
		||||
$Id: Platforms.txt,v 1.11.2.1 2004/11/09 10:58:01 alex Exp $
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
# $Id: sample-ngircd.conf,v 1.26 2004/05/07 11:19:20 alex Exp $
 | 
			
		||||
# $Id: sample-ngircd.conf,v 1.25.2.1 2004/05/07 11:24:17 alex Exp $
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# This is a sample configuration file for the ngIRCd, which must be adepted
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
.\"
 | 
			
		||||
.\" $Id: ngircd.conf.5,v 1.13 2004/05/07 11:19:20 alex Exp $
 | 
			
		||||
.\" $Id: ngircd.conf.5,v 1.12.2.1 2004/05/07 11:24:18 alex Exp $
 | 
			
		||||
.\"
 | 
			
		||||
.TH ngircd.conf 5 "Mai 2003" ngircd "ngIRCd Manual"
 | 
			
		||||
.SH NAME
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
#include "portab.h"
 | 
			
		||||
 | 
			
		||||
static char UNUSED id[] = "$Id: conf.c,v 1.64 2004/05/07 11:19:21 alex Exp $";
 | 
			
		||||
static char UNUSED id[] = "$Id: conf.c,v 1.63.2.2 2004/09/27 11:30:52 alex Exp $";
 | 
			
		||||
 | 
			
		||||
#include "imp.h"
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
@@ -107,8 +107,8 @@ Conf_Test( VOID )
 | 
			
		||||
	else puts( "Ok, dump of your server configuration follows:\n" );
 | 
			
		||||
 | 
			
		||||
	puts( "[GLOBAL]" );
 | 
			
		||||
	printf( "  ServerName = %s\n", Conf_ServerName );
 | 
			
		||||
	printf( "  ServerInfo = %s\n", Conf_ServerInfo );
 | 
			
		||||
	printf( "  Name = %s\n", Conf_ServerName );
 | 
			
		||||
	printf( "  Info = %s\n", Conf_ServerInfo );
 | 
			
		||||
	printf( "  Password = %s\n", Conf_ServerPwd );
 | 
			
		||||
	printf( "  AdminInfo1 = %s\n", Conf_ServerAdmin1 );
 | 
			
		||||
	printf( "  AdminInfo2 = %s\n", Conf_ServerAdmin2 );
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 * Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: conf.h,v 1.29 2004/05/07 11:19:21 alex Exp $
 | 
			
		||||
 * $Id: conf.h,v 1.28.2.1 2004/05/07 11:24:18 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * Configuration management (header)
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
 | 
			
		||||
#include "portab.h"
 | 
			
		||||
 | 
			
		||||
static char UNUSED id[] = "$Id: conn.c,v 1.134 2004/04/25 14:06:12 alex Exp $";
 | 
			
		||||
static char UNUSED id[] = "$Id: conn.c,v 1.134.2.3 2004/12/25 00:00:42 alex Exp $";
 | 
			
		||||
 | 
			
		||||
#include "imp.h"
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
@@ -628,6 +628,9 @@ Conn_Close( CONN_ID Idx, CHAR *LogMsg, CHAR *FwdMsg, BOOLEAN InformClient )
 | 
			
		||||
	{
 | 
			
		||||
		/* Conn_Close() has been called recursively for this link;
 | 
			
		||||
		 * probabe reason: Try_Write() failed  -- see below. */
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
		Log( LOG_DEBUG, "Recursive request to close connection: %d", Idx );
 | 
			
		||||
#endif
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -723,6 +726,10 @@ Conn_Close( CONN_ID Idx, CHAR *LogMsg, CHAR *FwdMsg, BOOLEAN InformClient )
 | 
			
		||||
 | 
			
		||||
	/* Clean up connection structure (=free it) */
 | 
			
		||||
	Init_Conn_Struct( Idx );
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
	Log( LOG_DEBUG, "Shutdown of connection %d completed.", Idx );
 | 
			
		||||
#endif
 | 
			
		||||
} /* Conn_Close */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -1272,22 +1279,20 @@ Handle_Buffer( CONN_ID Idx )
 | 
			
		||||
				/* Mit dem letzten Befehl wurde Socket-Kompression aktiviert.
 | 
			
		||||
				 * Evtl. schon vom Socket gelesene Daten in den Unzip-Puffer
 | 
			
		||||
				 * umkopieren, damit diese nun zunaechst entkomprimiert werden */
 | 
			
		||||
				if( My_Connections[Idx].rdatalen > ZREADBUFFER_LEN )
 | 
			
		||||
				{
 | 
			
		||||
					if( My_Connections[Idx].rdatalen > ZREADBUFFER_LEN )
 | 
			
		||||
					{
 | 
			
		||||
						/* Hupsa! Soviel Platz haben wir aber gar nicht! */
 | 
			
		||||
						Log( LOG_ALERT, "Can't move read buffer: No space left in unzip buffer (need %d bytes)!", My_Connections[Idx].rdatalen );
 | 
			
		||||
						return FALSE;
 | 
			
		||||
					}
 | 
			
		||||
					memcpy( My_Connections[Idx].zip.rbuf, My_Connections[Idx].rbuf, My_Connections[Idx].rdatalen );
 | 
			
		||||
					My_Connections[Idx].zip.rdatalen = My_Connections[Idx].rdatalen;
 | 
			
		||||
					My_Connections[Idx].rdatalen = 0;
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
					Log( LOG_DEBUG, "Moved already received data (%d bytes) to uncompression buffer.", My_Connections[Idx].zip.rdatalen );
 | 
			
		||||
#endif
 | 
			
		||||
					/* Hupsa! Soviel Platz haben wir aber gar nicht! */
 | 
			
		||||
					Log( LOG_ALERT, "Can't move read buffer: No space left in unzip buffer (need %d bytes)!", My_Connections[Idx].rdatalen );
 | 
			
		||||
					return FALSE;
 | 
			
		||||
				}
 | 
			
		||||
				memcpy( My_Connections[Idx].zip.rbuf, My_Connections[Idx].rbuf, My_Connections[Idx].rdatalen );
 | 
			
		||||
				My_Connections[Idx].zip.rdatalen = My_Connections[Idx].rdatalen;
 | 
			
		||||
				My_Connections[Idx].rdatalen = 0;
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
				Log( LOG_DEBUG, "Moved already received data (%d bytes) to uncompression buffer.", My_Connections[Idx].zip.rdatalen );
 | 
			
		||||
#endif /* DEBUG */
 | 
			
		||||
			}
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* ZLIB */
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if( action ) result = TRUE;
 | 
			
		||||
@@ -1600,35 +1605,28 @@ Init_Socket( INT Sock )
 | 
			
		||||
LOCAL VOID
 | 
			
		||||
Read_Resolver_Result( INT r_fd )
 | 
			
		||||
{
 | 
			
		||||
	/* Ergebnis von Resolver Sub-Prozess aus Pipe lesen
 | 
			
		||||
	 * und entsprechende Connection aktualisieren */
 | 
			
		||||
	/* Read result of resolver sub-process from pipe and update the
 | 
			
		||||
	 * apropriate connection/client structure(s): hostname and/or
 | 
			
		||||
	 * IDENT user name.*/
 | 
			
		||||
 | 
			
		||||
	CHAR result[HOST_LEN];
 | 
			
		||||
	CLIENT *c;
 | 
			
		||||
	INT len, i, n;
 | 
			
		||||
 | 
			
		||||
	FD_CLR( r_fd, &Resolver_FDs );
 | 
			
		||||
 | 
			
		||||
	/* Read result from pipe */
 | 
			
		||||
	len = read( r_fd, result, HOST_LEN - 1 );
 | 
			
		||||
	if( len < 0 )
 | 
			
		||||
	{
 | 
			
		||||
		/* Error! */
 | 
			
		||||
		close( r_fd );
 | 
			
		||||
		Log( LOG_CRIT, "Resolver: Can't read result: %s!", strerror( errno ));
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	result[len] = '\0';
 | 
			
		||||
	RES_STAT *s;
 | 
			
		||||
	CHAR *ptr;
 | 
			
		||||
 | 
			
		||||
	/* Search associated connection ... */
 | 
			
		||||
	for( i = 0; i < Pool_Size; i++ )
 | 
			
		||||
	{
 | 
			
		||||
		if(( My_Connections[i].sock != NONE ) && ( My_Connections[i].res_stat ) && ( My_Connections[i].res_stat->pipe[0] == r_fd )) break;
 | 
			
		||||
		if(( My_Connections[i].sock != NONE )
 | 
			
		||||
		  && ( My_Connections[i].res_stat != NULL )
 | 
			
		||||
		  && ( My_Connections[i].res_stat->pipe[0] == r_fd ))
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
	if( i >= Pool_Size )
 | 
			
		||||
	{
 | 
			
		||||
		/* Ops, none found? Probably the connection has already
 | 
			
		||||
		 * been closed. */
 | 
			
		||||
		 * been closed!? We'll ignore that ... */
 | 
			
		||||
		FD_CLR( r_fd, &Resolver_FDs );
 | 
			
		||||
		close( r_fd );
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
		Log( LOG_DEBUG, "Resolver: Got result for unknown connection!?" );
 | 
			
		||||
@@ -1636,61 +1634,102 @@ Read_Resolver_Result( INT r_fd )
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Get resolver structure */
 | 
			
		||||
	s = My_Connections[i].res_stat;
 | 
			
		||||
	assert( s != NULL );
 | 
			
		||||
 | 
			
		||||
	/* Read result from pipe */
 | 
			
		||||
	len = read( r_fd, s->buffer + s->bufpos, sizeof( s->buffer ) - s->bufpos - 1 );
 | 
			
		||||
	if( len < 0 )
 | 
			
		||||
	{
 | 
			
		||||
		/* Error! */
 | 
			
		||||
		close( r_fd );
 | 
			
		||||
		Log( LOG_CRIT, "Resolver: Can't read result: %s!", strerror( errno ));
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	s->bufpos += len;
 | 
			
		||||
	s->buffer[s->bufpos] = '\0';
 | 
			
		||||
 | 
			
		||||
	/* If the result string is incomplete, return to main loop and
 | 
			
		||||
	 * wait until we can read in more bytes. */
 | 
			
		||||
#ifdef IDENTAUTH
 | 
			
		||||
try_resolve:
 | 
			
		||||
#endif
 | 
			
		||||
	ptr = strchr( s->buffer, '\n' );
 | 
			
		||||
	if( ! ptr ) return;
 | 
			
		||||
	*ptr = '\0';
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
	Log( LOG_DEBUG, "Resolver: %s is \"%s\".", My_Connections[i].host, result );
 | 
			
		||||
	Log( LOG_DEBUG, "Got result from resolver: \"%s\" (%d bytes), stage %d.", s->buffer, len, s->stage );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* Clean up ... */
 | 
			
		||||
	close( My_Connections[i].res_stat->pipe[0] );
 | 
			
		||||
	close( My_Connections[i].res_stat->pipe[1] );
 | 
			
		||||
	free( My_Connections[i].res_stat );
 | 
			
		||||
	My_Connections[i].res_stat = NULL;
 | 
			
		||||
 | 
			
		||||
	/* Okay, we got a complete result: this is a host name for outgoing
 | 
			
		||||
	 * connections and a host name or IDENT user name (if enabled) for
 | 
			
		||||
	 * incoming conneciions.*/
 | 
			
		||||
	if( My_Connections[i].sock > NONE )
 | 
			
		||||
	{
 | 
			
		||||
		/* Incoming connection */
 | 
			
		||||
#ifdef IDENTAUTH
 | 
			
		||||
		CHAR *ident;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		/* Search client ... */
 | 
			
		||||
		c = Client_GetFromConn( i );
 | 
			
		||||
		assert( c != NULL );
 | 
			
		||||
 | 
			
		||||
		/* Only update client information of unregistered clients */
 | 
			
		||||
		if( Client_Type( c ) != CLIENT_UNKNOWN )
 | 
			
		||||
		if( Client_Type( c ) == CLIENT_UNKNOWN )
 | 
			
		||||
		{
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
			Log( LOG_DEBUG, "Resolver: discarding result for already registered connection %d.", i );
 | 
			
		||||
#endif
 | 
			
		||||
			return;
 | 
			
		||||
		}		
 | 
			
		||||
 | 
			
		||||
		/* Set hostname */
 | 
			
		||||
		strlcpy( My_Connections[i].host, result, sizeof( My_Connections[i].host ));
 | 
			
		||||
		Client_SetHostname( c, result );
 | 
			
		||||
			if( s->stage == 0 )
 | 
			
		||||
			{
 | 
			
		||||
				/* host name */
 | 
			
		||||
				strlcpy( My_Connections[i].host, s->buffer, sizeof( My_Connections[i].host ));
 | 
			
		||||
				Client_SetHostname( c, s->buffer );
 | 
			
		||||
 | 
			
		||||
#ifdef IDENTAUTH
 | 
			
		||||
		ident = strchr( result, 0 );
 | 
			
		||||
		ident++;
 | 
			
		||||
				/* clean up buffer for IDENT result */
 | 
			
		||||
				len = strlen( s->buffer ) + 1;
 | 
			
		||||
				memmove( s->buffer, s->buffer + len, sizeof( s->buffer ) - len );
 | 
			
		||||
				s->bufpos -= len;
 | 
			
		||||
 | 
			
		||||
		/* Do we have a result of the IDENT lookup? If so, set it as the user name */
 | 
			
		||||
		if( *ident )
 | 
			
		||||
		{
 | 
			
		||||
			Log( LOG_INFO, "IDENT lookup for connection %ld: \"%s\".", i, ident );
 | 
			
		||||
			Client_SetUser( c, ident, TRUE );
 | 
			
		||||
				/* Don't close pipe and clean up, but
 | 
			
		||||
				 * instead wait for IDENT result */
 | 
			
		||||
				s->stage = 1;
 | 
			
		||||
				goto try_resolve;
 | 
			
		||||
			}
 | 
			
		||||
			else if( s->stage == 1 )
 | 
			
		||||
			{
 | 
			
		||||
				/* IDENT user name */
 | 
			
		||||
				if( s->buffer[0] )
 | 
			
		||||
				{
 | 
			
		||||
					Log( LOG_INFO, "IDENT lookup for connection %ld: \"%s\".", i, s->buffer );
 | 
			
		||||
					Client_SetUser( c, s->buffer, TRUE );
 | 
			
		||||
				}
 | 
			
		||||
				else Log( LOG_INFO, "IDENT lookup for connection %ld: no result.", i );
 | 
			
		||||
#endif
 | 
			
		||||
			}
 | 
			
		||||
			else Log( LOG_ERR, "Resolver: got result for unknown stage %d!?", s->stage );
 | 
			
		||||
		}
 | 
			
		||||
		else Log( LOG_INFO, "IDENT lookup for connection %ld: no result.", i );
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
		else Log( LOG_DEBUG, "Resolver: discarding result for already registered connection %d.", i );
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		/* Outgoing connection (server link!): set IP address */
 | 
			
		||||
		/* Outgoing connection (server link): set the IP address
 | 
			
		||||
		 * so that we can connect to it in the main loop. */
 | 
			
		||||
 | 
			
		||||
		/* Search server ... */
 | 
			
		||||
		n = Conf_GetServer( i );
 | 
			
		||||
		assert( n > NONE );
 | 
			
		||||
		strlcpy( Conf_Server[n].ip, result, sizeof( Conf_Server[n].ip ));
 | 
			
		||||
 | 
			
		||||
		strlcpy( Conf_Server[n].ip, s->buffer, sizeof( Conf_Server[n].ip ));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Clean up ... */
 | 
			
		||||
	FD_CLR( r_fd, &Resolver_FDs );
 | 
			
		||||
	close( My_Connections[i].res_stat->pipe[0] );
 | 
			
		||||
	close( My_Connections[i].res_stat->pipe[1] );
 | 
			
		||||
	free( My_Connections[i].res_stat );
 | 
			
		||||
	My_Connections[i].res_stat = NULL;
 | 
			
		||||
 | 
			
		||||
	/* Reset penalty time */
 | 
			
		||||
	Conn_ResetPenalty( i );
 | 
			
		||||
} /* Read_Resolver_Result */
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 * Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: defines.h,v 1.46 2004/05/07 11:19:21 alex Exp $
 | 
			
		||||
 * $Id: defines.h,v 1.45.2.1 2004/05/07 11:24:18 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * Global defines of ngIRCd.
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
#include "portab.h"
 | 
			
		||||
 | 
			
		||||
static char UNUSED id[] = "$Id: irc-info.c,v 1.22 2004/05/07 11:19:21 alex Exp $";
 | 
			
		||||
static char UNUSED id[] = "$Id: irc-info.c,v 1.21.2.1 2004/05/07 11:24:18 alex Exp $";
 | 
			
		||||
 | 
			
		||||
#include "imp.h"
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
#include "portab.h"
 | 
			
		||||
 | 
			
		||||
static char UNUSED id[] = "$Id: irc-server.c,v 1.36 2004/04/25 15:43:18 alex Exp $";
 | 
			
		||||
static char UNUSED id[] = "$Id: irc-server.c,v 1.36.2.1 2004/05/15 23:52:17 alex Exp $";
 | 
			
		||||
 | 
			
		||||
#include "imp.h"
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
@@ -23,6 +23,7 @@ static char UNUSED id[] = "$Id: irc-server.c,v 1.36 2004/04/25 15:43:18 alex Exp
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <strings.h>
 | 
			
		||||
 | 
			
		||||
#include "defines.h"
 | 
			
		||||
#include "resolve.h"
 | 
			
		||||
#include "conn.h"
 | 
			
		||||
#include "conn-zip.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
#include "portab.h"
 | 
			
		||||
 | 
			
		||||
static char UNUSED id[] = "$Id: log.c,v 1.45 2004/05/07 11:19:21 alex Exp $";
 | 
			
		||||
static char UNUSED id[] = "$Id: log.c,v 1.44.2.3 2004/06/26 09:06:27 alex Exp $";
 | 
			
		||||
 | 
			
		||||
#include "imp.h"
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
@@ -182,7 +182,7 @@ va_dcl
 | 
			
		||||
	if( NGIRCd_NoDaemon )
 | 
			
		||||
	{
 | 
			
		||||
		/* auf Konsole ausgeben */
 | 
			
		||||
		fprintf( stdout, "[%d] %s\n", Level, msg );
 | 
			
		||||
		fprintf( stdout, "[%d:%d] %s\n", (INT)getpid( ), Level, msg );
 | 
			
		||||
		fflush( stdout );
 | 
			
		||||
	}
 | 
			
		||||
#ifdef SYSLOG
 | 
			
		||||
@@ -214,12 +214,14 @@ Log_Init_Resolver( VOID )
 | 
			
		||||
#ifdef SYSLOG
 | 
			
		||||
	openlog( PACKAGE_NAME, LOG_CONS|LOG_PID, LOG_LOCAL5 );
 | 
			
		||||
#endif
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Resolver sub-process starting, PID %d.", getpid( ));
 | 
			
		||||
} /* Log_Init_Resolver */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GLOBAL VOID
 | 
			
		||||
Log_Exit_Resolver( VOID )
 | 
			
		||||
{
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Resolver sub-process %d done.", getpid( ));
 | 
			
		||||
#ifdef SYSLOG
 | 
			
		||||
	closelog( );
 | 
			
		||||
#endif
 | 
			
		||||
@@ -239,17 +241,11 @@ va_dcl
 | 
			
		||||
{
 | 
			
		||||
	/* Eintrag des Resolver in Logfile(s) schreiben */
 | 
			
		||||
 | 
			
		||||
#ifndef SYSLOG
 | 
			
		||||
	return;
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
	CHAR msg[MAX_LOG_MSG_LEN];
 | 
			
		||||
	va_list ap;
 | 
			
		||||
 | 
			
		||||
	assert( Format != NULL );
 | 
			
		||||
 | 
			
		||||
	if( NGIRCd_NoDaemon ) return;
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
	if(( Level == LOG_DEBUG ) && ( ! NGIRCd_Debug )) return;
 | 
			
		||||
#else
 | 
			
		||||
@@ -265,9 +261,15 @@ va_dcl
 | 
			
		||||
	vsnprintf( msg, MAX_LOG_MSG_LEN, Format, ap );
 | 
			
		||||
	va_end( ap );
 | 
			
		||||
 | 
			
		||||
	/* ... und ausgeben */
 | 
			
		||||
	syslog( Level, msg );
 | 
			
		||||
 | 
			
		||||
	/* Output */
 | 
			
		||||
	if( NGIRCd_NoDaemon )
 | 
			
		||||
	{
 | 
			
		||||
		/* Output to console */
 | 
			
		||||
		fprintf( stdout, "[%d:%d] %s\n", (INT)getpid( ), Level, msg );
 | 
			
		||||
		fflush( stdout );
 | 
			
		||||
	}
 | 
			
		||||
#ifdef SYSLOG
 | 
			
		||||
	else syslog( Level, msg );
 | 
			
		||||
#endif
 | 
			
		||||
} /* Log_Resolver */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
#include "portab.h"
 | 
			
		||||
 | 
			
		||||
static char UNUSED id[] = "$Id: ngircd.c,v 1.84 2004/05/07 11:19:21 alex Exp $";
 | 
			
		||||
static char UNUSED id[] = "$Id: ngircd.c,v 1.83.2.2 2004/05/15 23:52:17 alex Exp $";
 | 
			
		||||
 | 
			
		||||
#include "imp.h"
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
@@ -31,13 +31,13 @@ static char UNUSED id[] = "$Id: ngircd.c,v 1.84 2004/05/07 11:19:21 alex Exp $";
 | 
			
		||||
#include <pwd.h>
 | 
			
		||||
#include <grp.h>
 | 
			
		||||
 | 
			
		||||
#include "defines.h"
 | 
			
		||||
#include "resolve.h"
 | 
			
		||||
#include "conn.h"
 | 
			
		||||
#include "client.h"
 | 
			
		||||
#include "channel.h"
 | 
			
		||||
#include "conf.h"
 | 
			
		||||
#include "cvs-version.h"
 | 
			
		||||
#include "defines.h"
 | 
			
		||||
#include "lists.h"
 | 
			
		||||
#include "log.h"
 | 
			
		||||
#include "parse.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
 | 
			
		||||
#include "portab.h"
 | 
			
		||||
 | 
			
		||||
static char UNUSED id[] = "$Id: resolve.c,v 1.8 2004/03/11 22:16:31 alex Exp $";
 | 
			
		||||
static char UNUSED id[] = "$Id: resolve.c,v 1.8.2.1 2004/05/15 23:52:17 alex Exp $";
 | 
			
		||||
 | 
			
		||||
#include "imp.h"
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
@@ -102,6 +102,8 @@ Resolve_Addr( struct sockaddr_in *Addr )
 | 
			
		||||
		FD_SET( s->pipe[0], &Resolver_FDs );
 | 
			
		||||
		if( s->pipe[0] > Conn_MaxFD ) Conn_MaxFD = s->pipe[0];
 | 
			
		||||
		s->pid = pid;
 | 
			
		||||
		s->stage = 0;
 | 
			
		||||
		s->bufpos = 0;
 | 
			
		||||
		return s;
 | 
			
		||||
	}
 | 
			
		||||
	else if( pid == 0 )
 | 
			
		||||
@@ -160,6 +162,8 @@ Resolve_Name( CHAR *Host )
 | 
			
		||||
		FD_SET( s->pipe[0], &Resolver_FDs );
 | 
			
		||||
		if( s->pipe[0] > Conn_MaxFD ) Conn_MaxFD = s->pipe[0];
 | 
			
		||||
		s->pid = pid;
 | 
			
		||||
		s->stage = 0;
 | 
			
		||||
		s->bufpos = 0;
 | 
			
		||||
		return s;
 | 
			
		||||
	}
 | 
			
		||||
	else if( pid == 0 )
 | 
			
		||||
@@ -193,13 +197,13 @@ Do_ResolveAddr( struct sockaddr_in *Addr, INT w_fd )
 | 
			
		||||
 | 
			
		||||
	CHAR hostname[HOST_LEN];
 | 
			
		||||
	struct hostent *h;
 | 
			
		||||
	INT len;
 | 
			
		||||
#ifdef IDENTAUTH
 | 
			
		||||
	CHAR *res;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Now resolving %s ...", inet_ntoa( Addr->sin_addr ));
 | 
			
		||||
 | 
			
		||||
	/* Resolve IP address */
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Now resolving %s ...", inet_ntoa( Addr->sin_addr ));
 | 
			
		||||
	h = gethostbyaddr( (CHAR *)&Addr->sin_addr, sizeof( Addr->sin_addr ), AF_INET );
 | 
			
		||||
	if( h ) strlcpy( hostname, h->h_name, sizeof( hostname ));
 | 
			
		||||
	else
 | 
			
		||||
@@ -211,33 +215,35 @@ Do_ResolveAddr( struct sockaddr_in *Addr, INT w_fd )
 | 
			
		||||
#endif	
 | 
			
		||||
		strlcpy( hostname, inet_ntoa( Addr->sin_addr ), sizeof( hostname ));
 | 
			
		||||
	}
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Ok, translated %s to \"%s\".", inet_ntoa( Addr->sin_addr ), hostname );
 | 
			
		||||
 | 
			
		||||
#ifdef IDENTAUTH
 | 
			
		||||
	/* Do "IDENT" (aka "AUTH") lookup and write result to parent */
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Doing IDENT lookup on socket %d ...", Sock );
 | 
			
		||||
	res = ident_id( Sock, 10 );
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "IDENT lookup on socket %d done.", Sock );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* Write result into pipe to parent */
 | 
			
		||||
	if( (size_t)write( w_fd, hostname, strlen( hostname ) + 1 ) != (size_t)( strlen( hostname ) + 1 ))
 | 
			
		||||
	/* Write resolver result into pipe to parent */
 | 
			
		||||
	len = strlen( hostname ); 
 | 
			
		||||
	hostname[len] = '\n'; len++;
 | 
			
		||||
	if( (size_t)write( w_fd, hostname, len ) != (size_t)len )
 | 
			
		||||
	{
 | 
			
		||||
		Log_Resolver( LOG_CRIT, "Resolver: Can't write to parent: %s!", strerror( errno ));
 | 
			
		||||
		close( w_fd );
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#ifdef IDENTAUTH
 | 
			
		||||
	if( (size_t)write( w_fd, res ? res : "", strlen( res ? res : "" ) + 1 ) != (size_t)( strlen( res ? res : "" ) + 1 ))
 | 
			
		||||
	/* Do "IDENT" (aka "AUTH") lookup and write result to parent */
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Doing IDENT lookup on socket %d ...", Sock );
 | 
			
		||||
	res = ident_id( Sock, 10 );
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Ok, IDENT lookup on socket %d done: \"%s\"", Sock, res ? res : "" );
 | 
			
		||||
 | 
			
		||||
	/* Write IDENT result into pipe to parent */
 | 
			
		||||
	len = strlen( res ? res : "" );
 | 
			
		||||
	if( res != NULL ) res[len] = '\n';
 | 
			
		||||
	len++;
 | 
			
		||||
	if( (size_t)write( w_fd, res ? res : "\n", len ) != (size_t)len )
 | 
			
		||||
	{
 | 
			
		||||
		Log_Resolver( LOG_CRIT, "Resolver: Can't write to parent (IDENT): %s!", strerror( errno ));
 | 
			
		||||
		close( w_fd );
 | 
			
		||||
		free( res );
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	free( res );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Ok, translated %s to \"%s\".", inet_ntoa( Addr->sin_addr ), hostname );
 | 
			
		||||
} /* Do_ResolveAddr */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -250,6 +256,7 @@ Do_ResolveName( CHAR *Host, INT w_fd )
 | 
			
		||||
	CHAR ip[16];
 | 
			
		||||
	struct hostent *h;
 | 
			
		||||
	struct in_addr *addr;
 | 
			
		||||
	INT len;
 | 
			
		||||
 | 
			
		||||
	Log_Resolver( LOG_DEBUG, "Now resolving \"%s\" ...", Host );
 | 
			
		||||
 | 
			
		||||
@@ -269,16 +276,16 @@ Do_ResolveName( CHAR *Host, INT w_fd )
 | 
			
		||||
#endif
 | 
			
		||||
		strcpy( ip, "" );
 | 
			
		||||
	}
 | 
			
		||||
	if( ip[0] ) Log_Resolver( LOG_DEBUG, "Ok, translated \"%s\" to %s.", Host, ip );
 | 
			
		||||
 | 
			
		||||
	/* Write result into pipe to parent */
 | 
			
		||||
	if( (size_t)write( w_fd, ip, strlen( ip ) + 1 ) != (size_t)( strlen( ip ) + 1 ))
 | 
			
		||||
	len = strlen( ip );
 | 
			
		||||
	ip[len] = '\n'; len++;
 | 
			
		||||
	if( (size_t)write( w_fd, ip, len ) != (size_t)len )
 | 
			
		||||
	{
 | 
			
		||||
		Log_Resolver( LOG_CRIT, "Resolver: Can't write to parent: %s!", strerror( errno ));
 | 
			
		||||
		close( w_fd );
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if( ip[0] ) Log_Resolver( LOG_DEBUG, "Ok, translated \"%s\" to %s.", Host, ip );
 | 
			
		||||
} /* Do_ResolveName */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 * Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: resolve.h,v 1.6 2003/12/27 13:01:12 alex Exp $
 | 
			
		||||
 * $Id: resolve.h,v 1.6.2.1 2004/05/15 23:52:17 alex Exp $
 | 
			
		||||
 *
 | 
			
		||||
 * Asynchronous resolver (header)
 | 
			
		||||
 */
 | 
			
		||||
@@ -29,6 +29,9 @@ typedef struct _Res_Stat
 | 
			
		||||
{
 | 
			
		||||
	INT pid;			/* PID des Child-Prozess */
 | 
			
		||||
	INT pipe[2];			/* Pipe fuer IPC */
 | 
			
		||||
	INT stage;			/* Hostname/IP(0) or IDENT(1)? */
 | 
			
		||||
	INT bufpos;			/* Position in buffer */
 | 
			
		||||
	CHAR buffer[HOST_LEN];		/* Buffer */
 | 
			
		||||
} RES_STAT;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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.9 2002/11/10 14:28:06 alex Exp $
 | 
			
		||||
# $Id: Makefile.am,v 1.9.6.3 2004/09/08 09:45:53 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
AUTOMAKE_OPTIONS = ../portab/ansi2knr
 | 
			
		||||
@@ -17,12 +17,15 @@ AUTOMAKE_OPTIONS = ../portab/ansi2knr
 | 
			
		||||
INCLUDES = -I$(srcdir)/../portab
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = \
 | 
			
		||||
	getpid.sh \
 | 
			
		||||
	README functions.inc getpid.sh \
 | 
			
		||||
	start-server.sh stop-server.sh tests.sh stress-server.sh \
 | 
			
		||||
	test-loop.sh wait-tests.sh \
 | 
			
		||||
	connect-test.e channel-test.e mode-test.e \
 | 
			
		||||
	stress-A.e stress-B.e check-idle.e \
 | 
			
		||||
	ngircd-test.conf
 | 
			
		||||
 | 
			
		||||
all:
 | 
			
		||||
 | 
			
		||||
clean-local:
 | 
			
		||||
	rm -rf logs tests *-test ngircd-test.log ngircd-test.motd \
 | 
			
		||||
	 T-ngircd procs.tmp 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										72
									
								
								src/testsuite/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								src/testsuite/README
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
 | 
			
		||||
                     ngIRCd - Next Generation IRC Server
 | 
			
		||||
 | 
			
		||||
                      (c)2001-2004 by Alexander Barton,
 | 
			
		||||
                    alex@barton.de, http://www.barton.de/
 | 
			
		||||
 | 
			
		||||
               ngIRCd is free software and published under the
 | 
			
		||||
                   terms of the GNU General Public License.
 | 
			
		||||
 | 
			
		||||
		       -- README for the Test Suite --
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
I. Overview
 | 
			
		||||
~~~~~~~~~~~
 | 
			
		||||
 | 
			
		||||
The purpose of the "test suite" contained in this directory is to detect
 | 
			
		||||
bugs and incompatibilities in ngIRCd introduced during coding and after
 | 
			
		||||
building ngIRCd on a specific platform.
 | 
			
		||||
 | 
			
		||||
To run the "standard" tests call "make check". It will build ngIRCd (if
 | 
			
		||||
required) and run some tests on it. These tests should be portable and run
 | 
			
		||||
on all supported platforms without errors.
 | 
			
		||||
 | 
			
		||||
Please note: most tests of this suite depend on the external tools expect(1)
 | 
			
		||||
and telnet(1), so make sure you have them installed. If not, the tests will
 | 
			
		||||
not fail but simply be skipped.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
II. Shell Scripts
 | 
			
		||||
~~~~~~~~~~~~~~~~
 | 
			
		||||
 | 
			
		||||
getpid.sh <name>
 | 
			
		||||
 | 
			
		||||
	This script is used to detect the PID of the running process with
 | 
			
		||||
	the given name in a portable manner. The result is echoed on the
 | 
			
		||||
	console. It is a helper script for some other scripts of this suite.
 | 
			
		||||
 | 
			
		||||
start-server.sh
 | 
			
		||||
 | 
			
		||||
	start-server.sh starts up the test binary, "T-ngircd". It makes sure
 | 
			
		||||
	that getpid.sh is available and working, and that no other instance
 | 
			
		||||
	of the test binary is already running.
 | 
			
		||||
	The exit code is 0 if the test binary could be started.
 | 
			
		||||
 | 
			
		||||
stop-server.sh
 | 
			
		||||
 | 
			
		||||
	This script uses getpid.sh to detect a running test binary "T-ngircd"
 | 
			
		||||
	and then shuts it down using the TERM signal.
 | 
			
		||||
	The exit code is 0 if the test binary could be stopped.
 | 
			
		||||
 | 
			
		||||
stress-server.sh
 | 
			
		||||
 | 
			
		||||
	...
 | 
			
		||||
 | 
			
		||||
tests.sh
 | 
			
		||||
 | 
			
		||||
	...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
III. Scripts for expect(1)
 | 
			
		||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
			
		||||
 | 
			
		||||
channel-test.e
 | 
			
		||||
check-idle.e
 | 
			
		||||
connect-test.e
 | 
			
		||||
mode-test.e
 | 
			
		||||
stress-A.e
 | 
			
		||||
stress-B.e
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- 
 | 
			
		||||
$Id: README,v 1.1.2.1 2004/09/04 20:49:36 alex Exp $
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
# $Id: check-idle.e,v 1.1 2002/09/09 22:56:07 alex Exp $
 | 
			
		||||
# $Id: check-idle.e,v 1.1.8.1 2004/09/04 20:49:36 alex Exp $
 | 
			
		||||
 | 
			
		||||
spawn telnet localhost 6789
 | 
			
		||||
expect {
 | 
			
		||||
@@ -10,6 +10,7 @@ send "nick IdleTest\r"
 | 
			
		||||
send "user idle . . :Idle-Test\r"
 | 
			
		||||
expect {
 | 
			
		||||
	timeout { exit 1 }
 | 
			
		||||
	"433 * IdleTest :Nickname already in use" { exit 99 }
 | 
			
		||||
	"376"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								src/testsuite/functions.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/testsuite/functions.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
#
 | 
			
		||||
# ngIRCd Test Suite
 | 
			
		||||
# Copyright (c)2002-2004 by Alexander Barton (alex@barton.de)
 | 
			
		||||
#
 | 
			
		||||
# This program is free software; you can redistribute it and/or modify
 | 
			
		||||
# it under the terms of the GNU General Public License as published by
 | 
			
		||||
# the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
# Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
#
 | 
			
		||||
# $Id: functions.inc,v 1.1.2.1 2004/09/06 22:07:26 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# test how to call echo to get output without newline
 | 
			
		||||
echo -n | grep -- -n >/dev/null 2>&1
 | 
			
		||||
if [ $? -eq 0 ]; then
 | 
			
		||||
	ECHO_N=""; ECHO_C="\c"
 | 
			
		||||
else
 | 
			
		||||
	ECHO_N="-n"; ECHO_C=""
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo_n()
 | 
			
		||||
{
 | 
			
		||||
	echo $ECHO_N "$*$ECHO_C"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
@@ -1,10 +1,13 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# ngIRCd Test Suite
 | 
			
		||||
# $Id: start-server.sh,v 1.11 2003/08/22 11:31:18 alex Exp $
 | 
			
		||||
# $Id: start-server.sh,v 1.11.2.2 2004/09/06 22:07:26 alex Exp $
 | 
			
		||||
 | 
			
		||||
[ -z "$srcdir" ] && srcdir=`dirname $0`
 | 
			
		||||
 | 
			
		||||
echo "      starting server ..."
 | 
			
		||||
# read in functions
 | 
			
		||||
. ${srcdir}/functions.inc
 | 
			
		||||
 | 
			
		||||
echo_n "      starting server ..."
 | 
			
		||||
 | 
			
		||||
# remove old logfiles
 | 
			
		||||
rm -rf logs *.log
 | 
			
		||||
@@ -13,14 +16,14 @@ rm -rf logs *.log
 | 
			
		||||
# test-server, because we won't be able to kill it at the end of the test.
 | 
			
		||||
./getpid.sh sh > /dev/null 2>&1
 | 
			
		||||
if [ $? -ne 0 ]; then
 | 
			
		||||
  echo "      error: getpid.sh FAILED!"
 | 
			
		||||
  echo " getpid.sh failed!"
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# check if there is a test-server already running
 | 
			
		||||
./getpid.sh T-ngircd > /dev/null 2>&1
 | 
			
		||||
if [ $? -eq 0 ]; then
 | 
			
		||||
  echo "      error: test-server already running!"
 | 
			
		||||
  echo " failure: test-server already running!"
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -28,11 +31,14 @@ fi
 | 
			
		||||
echo "This is an ngIRCd Test Server" > ngircd-test.motd
 | 
			
		||||
 | 
			
		||||
# starting up test-server ...
 | 
			
		||||
./T-ngircd -np -f ${srcdir}/ngircd-test.conf > ngircd-test.log 2>&1 &
 | 
			
		||||
./T-ngircd -np -f ${srcdir}/ngircd-test.conf $* > ngircd-test.log 2>&1 &
 | 
			
		||||
sleep 1
 | 
			
		||||
 | 
			
		||||
# validate running test-server
 | 
			
		||||
pid=`./getpid.sh T-ngircd`
 | 
			
		||||
[ -n "$pid" ] && kill -0 $pid > /dev/null 2>&1 || exit 1
 | 
			
		||||
[ -n "$pid" ] && kill -0 $pid > /dev/null 2>&1; r=$?
 | 
			
		||||
 | 
			
		||||
[ $r -eq 0 ] && echo " ok." || echo " failure!"
 | 
			
		||||
exit 
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
 
 | 
			
		||||
@@ -1,25 +1,32 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# ngIRCd Test Suite
 | 
			
		||||
# $Id: stop-server.sh,v 1.10 2003/08/22 11:31:18 alex Exp $
 | 
			
		||||
# $Id: stop-server.sh,v 1.10.2.3 2004/09/06 22:07:26 alex Exp $
 | 
			
		||||
 | 
			
		||||
[ -z "$srcdir" ] && srcdir=`dirname $0`
 | 
			
		||||
 | 
			
		||||
echo "      stopping server ..."
 | 
			
		||||
# read in functions
 | 
			
		||||
. ${srcdir}/functions.inc
 | 
			
		||||
 | 
			
		||||
echo_n "      stopping server ..."
 | 
			
		||||
 | 
			
		||||
# stop test-server ...
 | 
			
		||||
pid=`./getpid.sh T-ngircd`
 | 
			
		||||
if [ -z "$pid" ]; then
 | 
			
		||||
  echo "      no running server found!?"
 | 
			
		||||
  echo " failure: no running server found!?"
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
kill $pid > /dev/null 2>&1 || exit 1
 | 
			
		||||
 | 
			
		||||
# waiting ...
 | 
			
		||||
for i in 1 2 3 4 5; do
 | 
			
		||||
  kill -0 $pid > /dev/null 2>&1 || exit 0
 | 
			
		||||
  kill -0 $pid > /dev/null 2>&1; r=$?
 | 
			
		||||
  if [ $r -ne 0 ]; then
 | 
			
		||||
    echo " ok".
 | 
			
		||||
    exit 0
 | 
			
		||||
  fi
 | 
			
		||||
  sleep 1
 | 
			
		||||
done
 | 
			
		||||
echo "      server still running!?"
 | 
			
		||||
echo " failure: server still running!?"
 | 
			
		||||
exit 1
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,31 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
#
 | 
			
		||||
# ngIRCd Test Suite
 | 
			
		||||
# $Id: stress-server.sh,v 1.8 2003/08/22 11:31:18 alex Exp $
 | 
			
		||||
# Copyright (c)2002-2004 by Alexander Barton (alex@barton.de)
 | 
			
		||||
#
 | 
			
		||||
# This program is free software; you can redistribute it and/or modify
 | 
			
		||||
# it under the terms of the GNU General Public License as published by
 | 
			
		||||
# the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
# Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
#
 | 
			
		||||
# $Id: stress-server.sh,v 1.8.2.2 2004/09/06 22:07:26 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# detect source directory
 | 
			
		||||
[ -z "$srcdir" ] && srcdir=`dirname $0`
 | 
			
		||||
 | 
			
		||||
# parse command line
 | 
			
		||||
[ "$1" -gt 0 ] 2> /dev/null && CLIENTS="$1" || CLIENTS=5
 | 
			
		||||
[ "$2" -gt 0 ] 2> /dev/null && MAX="$2" || MAX=-1
 | 
			
		||||
 | 
			
		||||
# get our name
 | 
			
		||||
name=`basename $0`
 | 
			
		||||
test=`echo ${name} | cut -d '.' -f 1`
 | 
			
		||||
 | 
			
		||||
# create directories
 | 
			
		||||
mkdir -p logs tests
 | 
			
		||||
 | 
			
		||||
# test for required external tools
 | 
			
		||||
type expect > /dev/null 2>&1
 | 
			
		||||
if [ $? -ne 0 ]; then
 | 
			
		||||
  echo "      ${name}: \"expect\" not found.";  exit 77
 | 
			
		||||
@@ -19,7 +35,13 @@ if [ $? -ne 0 ]; then
 | 
			
		||||
  echo "      ${name}: \"telnet\" not found.";  exit 77
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "      stressing server with $CLIENTS clients (be patient!) ..."
 | 
			
		||||
# hello world! :-)
 | 
			
		||||
echo "      stressing server with $CLIENTS clients (be patient!):"
 | 
			
		||||
 | 
			
		||||
# read in functions
 | 
			
		||||
. ${srcdir}/functions.inc
 | 
			
		||||
 | 
			
		||||
# create scripts for expect(1)
 | 
			
		||||
no=0
 | 
			
		||||
while [ ${no} -lt $CLIENTS ]; do
 | 
			
		||||
  cat ${srcdir}/stress-A.e > tests/${no}.e
 | 
			
		||||
@@ -27,20 +49,31 @@ while [ ${no} -lt $CLIENTS ]; do
 | 
			
		||||
  cat ${srcdir}/stress-B.e >> tests/${no}.e
 | 
			
		||||
  no=`expr ${no} + 1`
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
no=0
 | 
			
		||||
while [ ${no} -lt $CLIENTS ]; do
 | 
			
		||||
  expect tests/${no}.e > logs/stress-${no}.log 2> /dev/null &
 | 
			
		||||
 | 
			
		||||
  no=`expr ${no} + 1`
 | 
			
		||||
  echo "      started client $no/$CLIENTS."
 | 
			
		||||
 | 
			
		||||
  [ $MAX -gt 0 ] && $srcdir/wait-tests.sh $MAX
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
echo_n "      waiting for clients to complete: ."
 | 
			
		||||
touch logs/check-idle.log
 | 
			
		||||
while true; do
 | 
			
		||||
  expect ${srcdir}/check-idle.e >> logs/check-idle.log
 | 
			
		||||
  res=$?
 | 
			
		||||
  [ $res -eq 0 ] && exit 0
 | 
			
		||||
  [ $res -eq 1 ] && exit 1
 | 
			
		||||
  sleep 1
 | 
			
		||||
  expect ${srcdir}/check-idle.e >> logs/check-idle.log; res=$?
 | 
			
		||||
  echo "====================" >> logs/check-idle.log
 | 
			
		||||
  [ $res -ne 99 ] && break
 | 
			
		||||
 | 
			
		||||
  # there are still clients connected. Wait ...
 | 
			
		||||
  sleep 3
 | 
			
		||||
  echo_n "."
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
[ $res -eq 0 ] && echo " ok." || echo " failure!"
 | 
			
		||||
 | 
			
		||||
exit $res
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										37
									
								
								src/testsuite/test-loop.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										37
									
								
								src/testsuite/test-loop.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
#
 | 
			
		||||
# ngIRCd Test Suite
 | 
			
		||||
# Copyright (c)2002-2004 by Alexander Barton (alex@barton.de)
 | 
			
		||||
#
 | 
			
		||||
# This program is free software; you can redistribute it and/or modify
 | 
			
		||||
# it under the terms of the GNU General Public License as published by
 | 
			
		||||
# the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
# Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
#
 | 
			
		||||
# $Id: test-loop.sh,v 1.2.2.1 2004/09/04 20:49:36 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# detect source directory
 | 
			
		||||
[ -z "$srcdir" ] && srcdir=`dirname $0`
 | 
			
		||||
 | 
			
		||||
# parse command line
 | 
			
		||||
[ "$1" -gt 0 ] 2> /dev/null && LOOPS="$1" || LOOPS=5
 | 
			
		||||
[ "$2" -gt 0 ] 2> /dev/null && WAIT="$2" || WAIT=5
 | 
			
		||||
 | 
			
		||||
loop=0
 | 
			
		||||
while [ ${loop} -lt $LOOPS ]; do
 | 
			
		||||
  loop=`expr ${loop} + 1`
 | 
			
		||||
  echo "      loop $loop/$LOOPS starting:"
 | 
			
		||||
  for s in $srcdir/*-test; do
 | 
			
		||||
    sh $s; r=$?
 | 
			
		||||
    [ $r -ne 0 ] && exit $r
 | 
			
		||||
    sleep 1
 | 
			
		||||
  done
 | 
			
		||||
  if [ ${loop} -lt $LOOPS ]; then
 | 
			
		||||
    echo "      waiting $WAIT seconds ..."
 | 
			
		||||
    sleep $WAIT
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
@@ -1,11 +1,22 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# ngIRCd Test Suite
 | 
			
		||||
# $Id: tests.sh,v 1.4 2003/08/22 11:31:18 alex Exp $
 | 
			
		||||
# $Id: tests.sh,v 1.4.2.2 2004/09/06 22:07:26 alex Exp $
 | 
			
		||||
 | 
			
		||||
# detect source directory
 | 
			
		||||
[ -z "$srcdir" ] && srcdir=`dirname $0`
 | 
			
		||||
 | 
			
		||||
name=`basename $0`
 | 
			
		||||
test=`echo ${name} | cut -d '.' -f 1`
 | 
			
		||||
mkdir -p logs
 | 
			
		||||
 | 
			
		||||
if [ ! -r "$test" ]; then
 | 
			
		||||
  echo "      ${name}: test \"$test\" not found!";  exit 77
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# read in functions
 | 
			
		||||
. ${srcdir}/functions.inc
 | 
			
		||||
 | 
			
		||||
type expect > /dev/null 2>&1
 | 
			
		||||
if [ $? -ne 0 ]; then
 | 
			
		||||
  echo "      ${name}: \"expect\" not found.";  exit 77
 | 
			
		||||
@@ -15,7 +26,10 @@ if [ $? -ne 0 ]; then
 | 
			
		||||
  echo "      ${name}: \"telnet\" not found.";  exit 77
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "      doing ${test} ..."
 | 
			
		||||
expect ${srcdir}/${test}.e > logs/${test}.log
 | 
			
		||||
echo_n "      running ${test} ..."
 | 
			
		||||
expect ${srcdir}/${test}.e > logs/${test}.log 2>&1; r=$?
 | 
			
		||||
[ $r -eq 0 ] && echo " ok." || echo " failure!"
 | 
			
		||||
 | 
			
		||||
exit $r
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								src/testsuite/wait-tests.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								src/testsuite/wait-tests.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
#
 | 
			
		||||
# ngIRCd Test Suite
 | 
			
		||||
# Copyright (c)2002-2004 by Alexander Barton (alex@barton.de)
 | 
			
		||||
#
 | 
			
		||||
# This program is free software; you can redistribute it and/or modify
 | 
			
		||||
# it under the terms of the GNU General Public License as published by
 | 
			
		||||
# the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
# (at your option) any later version.
 | 
			
		||||
# Please read the file COPYING, README and AUTHORS for more information.
 | 
			
		||||
#
 | 
			
		||||
# $Id: wait-tests.sh,v 1.3.2.2 2004/09/06 22:07:26 alex Exp $
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
[ "$1" -gt 0 ] 2> /dev/null && MAX="$1" || MAX=5
 | 
			
		||||
 | 
			
		||||
PS_FLAGS="-f"
 | 
			
		||||
ps $PS_FLAGS >/dev/null 2>&1
 | 
			
		||||
[ $? -ne 0 ] && PS_FLAGS="a"
 | 
			
		||||
 | 
			
		||||
# read in functions
 | 
			
		||||
. ${srcdir}/functions.inc
 | 
			
		||||
 | 
			
		||||
msg=0
 | 
			
		||||
while true; do
 | 
			
		||||
  count=`ps $PS_FLAGS | grep "expect " | wc -l`
 | 
			
		||||
  count=`expr $count - 1`
 | 
			
		||||
 | 
			
		||||
  [ $count -le $MAX ] && break
 | 
			
		||||
 | 
			
		||||
  if [ $msg -lt 1 ]; then
 | 
			
		||||
    echo_n "      waiting for processes to settle: "
 | 
			
		||||
    msg=1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # there are still clients connected. Wait ...
 | 
			
		||||
  echo_n "$count>$MAX "
 | 
			
		||||
  sleep 1
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
[ $msg -gt 0 ] && echo "done: $count"
 | 
			
		||||
exit 0
 | 
			
		||||
 | 
			
		||||
# -eof-
 | 
			
		||||
		Reference in New Issue
	
	Block a user