diff -uNrd -x CVS ircd-comstud-1.12-REL/ChangeLog ircd-devel/ChangeLog --- ircd-comstud-1.12-REL/ChangeLog Thu Dec 7 04:27:35 2000 +++ ircd-devel/ChangeLog Tue Dec 5 12:59:09 2000 @@ -1,23 +1,26 @@ +2000/12/05 --- humble's FreeBSD happiness package 1.0 is rolled -2000/12/07 --- 1.12-REL done - -2000/12/07: - -- numeric fix - -2000/11/23: - -- disallow '%' in hostnames - -2000/11/18: - -- subarg_comma was same as subarg_space. Major oops. How did that - happen? Broke things like PRIVMSG nick1,nick2 etc.. + This will work ONLY under FreeBSD... but you'll like it :P -2000/11/07: - -- added 'checkhostname' flag to allow {}. if an allow w/ an 'ipaddr' - has this flag, hostname matching will occur even when a connecting - client matches that ip in the allow{}. ie, a hostname match can - override. + -- Add class directive "inherit" which copied settings from anothe class + -- Finish support for allow passwords + -- Gutted some evilness in the send and network polling routines + -- Totally rewrote poller to use kqueue() for SIGNIFICANT improvements + -- Added proper stats I displays for TCM happiness + -- Hid the "hidden" classes from stats y + -- Put more check on ircd.so, don't reload (and crash) if its not there + -- Redesigned the makefile and autoconf structure, much more soon... + -- Added FreeBSD accf (accept filter) support for efficiency + -- Added "sendbuf" and "recvbuf" socket buffer controls under class + -- Cleaned up some various bits of code here and there + -- Probably more that I can't recall right now... + MUCH MUCH *MUCH* more to come, some major rewrites of key components + on the way to a total ircd rewrite for the betterment of all mankind. + Much of this development follows EFNeXt but I try to keep the neat + stuff up to date for the EFNet release... + 2000/10/24 --- 1.11-REL done 2000/10/24: diff -uNrd -x CVS ircd-comstud-1.12-REL/Makefile.in ircd-devel/Makefile.in --- ircd-comstud-1.12-REL/Makefile.in Mon Oct 23 01:12:21 2000 +++ ircd-devel/Makefile.in Sun Dec 10 09:10:13 2000 @@ -1,98 +1,35 @@ +CFLAGS= -g -pipe -O +CFLAGS+= -fschedule-insns2 -funroll-loops +# 686-based optimizations +CFLAGS+= -mcpu=pentiumpro -march=pentiumpro -mwide-multiply +CFLAGS+= -malign-functions=4 -malign-double +# Break debugging, very slow compiles +#CFLAGS+= -fomit-frame-pointer -fexpensive-optimizations -# -## IRC - Internet Relay Chat, Makefile -## Copyright (C) 1999 Chris Behrens -## -## Portions Copyright (C) 1990 Jarkko Oikarinen and -## University of Oulu, Computing Center -## -## 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 1, or (at your option) -## any later version. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# - -CC=gcc -#PROFIL=-pg -#PROFILLIBS=-ldl -CFLAGS=-Iinclude -g -Wall ${PROFIL} ${CFLAGS.$@} -# -DFD_SETSIZE=8192 -LFLAGS=${LFLAGS.$@} - -INC=include/access.h include/hash.h include/res.h \ - include/cidr.h include/iphash.h include/send.h \ - include/commands.h include/ircd_includes.h include/setup.h \ - include/conf.h include/log.h include/structs.h \ - include/config.h include/match.h include/support.h \ - include/defines.h include/misc.h include/vars.h \ - include/mysocket.h include/version.h \ - include/fdlist.h include/numeric.h include/whowas.h \ - include/fileio.h include/queue.h - -PROGS=ircd -UTILS=utils/cidrtest utils/mkpasswd -OBJS.utils=utils/cidrtest.o utils/mkpasswd.o -SRCS.utils=${OBJS.utils:%.o=%.c} - -OBJS.utils/cidrtest=utils/cidrtest.o lib/cidr.o lib/match.o -LFLAGS.utils/cidrtest=@LIBS@ -OBJS.utils/mkpasswd=utils/mkpasswd.o -LFLAGS.utils/mkpasswd=@LIBS@ - -OBJS=${OBJS.ircd.so} ${OBJS.ircd} ${OBJS.utils} - -OBJS.ircd.so=lib/access.o lib/cidr.o lib/commands.o lib/conf.o \ - lib/fdlist.o lib/fileio.o lib/hash.o lib/iphash.o \ - lib/log.o lib/match.o lib/misc.o lib/mysocket.o \ - lib/numeric.o lib/queue.o lib/res.o \ - lib/send.o lib/support.o lib/vars.o \ - lib/whowas.o lib/ircd.o confparse/configparse.o -SRCS.ircd.so=${OBJS.ircd.so:%.o=%.c} -OBJS.ircd=source/ircdcore.o -SRCS.ircd=${OBJS.ircd:%.o=%.c} -LFLAGS.ircd=@LIBS@ ${PROFILLIBS} - - -ALL=${PROGS} ${UTILS} - -all: ${ALL} - -ircd.so: ${OBJS.ircd.so} - ld -G ${OBJS.$@} -o $@ - -${PROGS} ${UTILS}: - ${CC} -o $@ ${OBJS.$@} ${LFLAGS} +SHELL= @SHELL@ +SUBDIRS= lib source utils -ircd: ircd.so ${OBJS.ircd} ${INC} -${OBJS.ircd}: ${SRCS.ircd} ${INC} -${OBJS.ircd.so}: ${SRCS.ircd.so} ${INC} -${OBJS.utils}: ${SRCS.utils} -${UTILS}: ${OBJS.utils} -${OBJS}: +OBJS= ircd ircd.so -.c.o: - ${CC} ${CFLAGS} -c $< -o $@ +all: + @for x in ${SUBDIRS}; \ + do \ + ( cd $$x; echo "Making $@ in $$x"; \ + ${SHELL} -c "${MAKE} CFLAGS=\"${CFLAGS}\" $@"; ); \ + done; \ clean: - rm -rf ${ALL} ${OBJS} core ircd.pid ircd.so ircd.so.old + @for x in ${SUBDIRS}; \ + do \ + ( cd $$x; echo "Making $@ in $$x"; \ + ${SHELL} -c "${MAKE} CFLAGS=\"${CFLAGS}\" $@"; ); \ + done; + rm -f ${OBJS} core ircd.core *.~ distclean: clean - rm -f config.log config.cache config.status include/setup.h Makefile - --lresolv: - --lnsl: - --lcrypt: - --lsocket: - + @for x in ${SUBDIRS}; \ + do \ + ( cd $$x; echo "Making $@ in $$x"; \ + ${SHELL} -c "${MAKE} CFLAGS=\"${CFLAGS}\" $@"; ); \ + done; + rm -f Makefile config.cache config.log config.status include/setup.h diff -uNrd -x CVS ircd-comstud-1.12-REL/config.guess ircd-devel/config.guess --- ircd-comstud-1.12-REL/config.guess Wed Dec 31 19:00:00 1969 +++ ircd-devel/config.guess Tue Dec 5 12:25:14 2000 @@ -0,0 +1,951 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. +# +# 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Written by Per Bothner . +# The master version of this file is at the FSF in /home/gd/gnu/lib. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit system type (host/target name). +# +# Only a few systems have been added to this list; please add others +# (but try to keep the structure clean). +# + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 8/24/94.) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # 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. + cat <dummy.s + .globl main + .ent main +main: + .frame \$30,0,\$26,0 + .prologue 0 + .long 0x47e03d80 # implver $0 + lda \$2,259 + .long 0x47e20c21 # amask $2,$1 + srl \$1,8,\$2 + sll \$2,2,\$2 + sll \$0,3,\$0 + addl \$1,\$0,\$0 + addl \$2,\$0,\$0 + ret \$31,(\$26),1 + .end main +EOF + ${CC-cc} dummy.s -o dummy 2>/dev/null + if test "$?" = 0 ; then + ./dummy + case "$?" in + 7) + UNAME_MACHINE="alpha" + ;; + 15) + UNAME_MACHINE="alphaev5" + ;; + 14) + UNAME_MACHINE="alphaev56" + ;; + 10) + UNAME_MACHINE="alphapca56" + ;; + 16) + UNAME_MACHINE="alphaev6" + ;; + esac + fi + rm -f dummy.s dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-cbm-sysv4 + exit 0;; + amiga:NetBSD:*:*) + echo m68k-cbm-netbsd${UNAME_RELEASE} + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + arc64:OpenBSD:*:*) + echo mips64el-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hkmips:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mips-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + arm32:NetBSD:*:*) + echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + SR2?01:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + atari*:NetBSD:*:*) + echo m68k-atari-netbsd${UNAME_RELEASE} + exit 0 ;; + atari*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3*:NetBSD:*:*) + echo m68k-sun-netbsd${UNAME_RELEASE} + exit 0 ;; + sun3*:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:NetBSD:*:*) + echo m68k-apple-netbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + macppc:NetBSD:*:*) + echo powerpc-apple-netbsd${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + sed 's/^ //' << EOF >dummy.c + int main (argc, argv) int argc; char **argv; { + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + ${CC-cc} dummy.c -o dummy \ + && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ + -o ${TARGET_BINARY_INTERFACE}x = x ] ; then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i?86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + sed 's/^ //' << EOF >dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:4) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` + if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=4.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 ) + sed 's/^ //' << EOF >dummy.c + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (${CC-cc} dummy.c -o dummy 2>/dev/null ) && HP_ARCH=`./dummy` + rm -f dummy.c dummy + esac + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + sed 's/^ //' << EOF >dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i?86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*X-MP:*:*:*) + echo xmp-cray-unicos + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; + F300:UNIX_System_V:*:*) + FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + F301:UNIX_System_V:*:*) + echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` + exit 0 ;; + hp3[0-9][05]:NetBSD:*:*) + echo m68k-hp-netbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + i?86:BSD/386:*:* | *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:NetBSD:*:*) + echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + *:Linux:*:*) + # uname on the ARM produces all sorts of strangeness, and we need to + # filter it out. + case "$UNAME_MACHINE" in + arm* | sa110*) UNAME_MACHINE="arm" ;; + esac + + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. + ld_help_string=`ld --help 2>&1` + ld_supported_emulations=`echo $ld_help_string \ + | sed -ne '/supported emulations:/!d + s/[ ][ ]*/ /g + s/.*supported emulations: *// + s/ .*// + p'` + case "$ld_supported_emulations" in + i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; + i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; + sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; + armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; + m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; + elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; + esac + + if test "${UNAME_MACHINE}" = "alpha" ; then + sed 's/^ //' <dummy.s + .globl main + .ent main + main: + .frame \$30,0,\$26,0 + .prologue 0 + .long 0x47e03d80 # implver $0 + lda \$2,259 + .long 0x47e20c21 # amask $2,$1 + srl \$1,8,\$2 + sll \$2,2,\$2 + sll \$0,3,\$0 + addl \$1,\$0,\$0 + addl \$2,\$0,\$0 + ret \$31,(\$26),1 + .end main +EOF + LIBC="" + ${CC-cc} dummy.s -o dummy 2>/dev/null + if test "$?" = 0 ; then + ./dummy + case "$?" in + 7) + UNAME_MACHINE="alpha" + ;; + 15) + UNAME_MACHINE="alphaev5" + ;; + 14) + UNAME_MACHINE="alphaev56" + ;; + 10) + UNAME_MACHINE="alphapca56" + ;; + 16) + UNAME_MACHINE="alphaev6" + ;; + esac + + objdump --private-headers dummy | \ + grep ld.so.1 > /dev/null + if test "$?" = 0 ; then + LIBC="libc1" + fi + fi + rm -f dummy.s dummy + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 + elif test "${UNAME_MACHINE}" = "mips" ; then + cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + else + # Either a pre-BFD a.out linker (linux-gnuoldld) + # or one that does not give us useful --help. + # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. + # If ld does not provide *any* "supported emulations:" + # that means it is gnuoldld. + echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" + test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + + case "${UNAME_MACHINE}" in + i?86) + VENDOR=pc; + ;; + *) + VENDOR=unknown; + ;; + esac + # Determine whether the default compiler is a.out or elf + cat >dummy.c < +main(argc, argv) + int argc; + char *argv[]; +{ +#ifdef __ELF__ +# ifdef __GLIBC__ +# if __GLIBC__ >= 2 + printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +# else + printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +# endif +#else + printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); +#endif + return 0; +} +EOF + ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + fi ;; +# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions +# are messed up and put the nodename in both sysname and nodename. + i?86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; + i?86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + fi + exit 0 ;; + i?86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + i?86:UnixWare:*:*) + if /bin/uname -X 2>/dev/null >/dev/null ; then + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + fi + echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION} + exit 0 ;; + pc:*:*:*) + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i?86:LynxOS:2.*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:*:6*) + echo mips-sony-newsos6 + exit 0 ;; + R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +cat >dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +#if !defined (ultrix) + printf ("vax-dec-bsd\n"); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 +rm -f dummy.c dummy + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +#echo '(Unable to guess system type)' 1>&2 + +exit 1 diff -uNrd -x CVS ircd-comstud-1.12-REL/config.sub ircd-devel/config.sub --- ircd-comstud-1.12-REL/config.sub Wed Dec 31 19:00:00 1969 +++ ircd-devel/config.sub Tue Dec 5 12:25:04 2000 @@ -0,0 +1,955 @@ +#! /bin/sh +# Configuration validation subroutine script, version 1.1. +# Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc. +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +if [ x$1 = x ] +then + echo Configuration name missing. 1>&2 + echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 + echo "or $0 ALIAS" 1>&2 + echo where ALIAS is a recognized configuration type. 1>&2 + exit 1 +fi + +# First pass through any local machine types. +case $1 in + *local*) + echo $1 + exit 0 + ;; + *) + ;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + linux-gnu*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple) + os= + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ + | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \ + | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \ + | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ + | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ + | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ + | mipstx39 | mipstx39el \ + | sparc | sparclet | sparclite | sparc64 | v850) + basic_machine=$basic_machine-unknown + ;; + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i[34567]86) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \ + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ + | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \ + | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ + | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ + | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mipstx39-* | mipstx39el-* \ + | f301-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-cbm + ;; + amigaos | amigados) + basic_machine=m68k-cbm + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-cbm + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + [ctj]90-cray) + basic_machine=c90-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + os=-mvs + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i[34567]86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i[34567]86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i[34567]86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i[34567]86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + miniframe) + basic_machine=m68000-convergent + ;; + mipsel*-linux*) + basic_machine=mipsel-unknown + os=-linux-gnu + ;; + mips*-linux*) + basic_machine=mips-unknown + os=-linux-gnu + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + np1) + basic_machine=np1-gould + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | nexen) + basic_machine=i586-pc + ;; + pentiumpro | p6 | k6 | 6x86) + basic_machine=i686-pc + ;; + pentiumii | pentium2) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | nexen-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | k6-* | 6x86-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=rs6000-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + mips) + if [ x$os = x-linux-gnu ]; then + basic_machine=mips-unknown + else + basic_machine=mips-mips + fi + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sparc) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -xenix) + os=-xenix + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-semi) + os=-aout + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f301-fujitsu) + os=-uxpv + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -hpux*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os diff -uNrd -x CVS ircd-comstud-1.12-REL/configure ircd-devel/configure --- ircd-comstud-1.12-REL/configure Thu Jun 3 03:56:32 1999 +++ ircd-devel/configure Tue Dec 5 12:29:02 2000 @@ -1,6 +1,6 @@ #! /bin/sh -# From configure.in 1.2# Guess values for system-dependent variables and create Makefiles. +# Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # @@ -522,11 +522,123 @@ +PACKAGE=ircd-comstud +VERSION=1.11 + + + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Do some error checking and defaulting for the host and target type. +# The inputs are: +# configure --host=HOST --target=TARGET --build=BUILD NONOPT +# +# The rules are: +# 1. You are not allowed to specify --host, --target, and nonopt at the +# same time. +# 2. Host defaults to nonopt. +# 3. If nonopt is not specified, then host defaults to the current host, +# as determined by config.guess. +# 4. Target and build default to nonopt. +# 5. If nonopt is not specified, then target and build default to host. + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +case $host---$target---$nonopt in +NONE---*---* | *---NONE---* | *---*---NONE) ;; +*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; +esac + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:578: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + +echo $ac_n "checking target system type""... $ac_c" 1>&6 +echo "configure:599: checking target system type" >&5 + +target_alias=$target +case "$target_alias" in +NONE) + case $nonopt in + NONE) target_alias=$host_alias ;; + *) target_alias=$nonopt ;; + esac ;; +esac + +target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` +target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$target" 1>&6 + +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:617: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + +test "$host_alias" != "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:530: checking for $ac_word" >&5 +echo "configure:642: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -556,7 +668,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:560: checking for $ac_word" >&5 +echo "configure:672: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -607,7 +719,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:611: checking for $ac_word" >&5 +echo "configure:723: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -639,7 +751,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:643: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:755: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -650,12 +762,12 @@ cat > conftest.$ac_ext << EOF -#line 654 "configure" +#line 766 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -681,12 +793,12 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:685: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:797: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:690: checking whether we are using GNU C" >&5 +echo "configure:802: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -695,7 +807,7 @@ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:699: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:811: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -714,7 +826,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:718: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:830: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -746,7 +858,7 @@ fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:750: checking how to run the C preprocessor" >&5 +echo "configure:862: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -761,13 +873,13 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:771: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:883: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -778,13 +890,13 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:788: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -795,13 +907,13 @@ rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:805: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:917: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -825,32 +937,37 @@ fi echo "$ac_t""$CPP" 1>&6 -echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:830: checking for AIX" >&5 -cat > conftest.$ac_ext <&5 | - egrep "yes" >/dev/null 2>&1; then - rm -rf conftest* - echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF -#define _ALL_SOURCE 1 +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:942: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' EOF - +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= else - rm -rf conftest* echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" fi -rm -f conftest* + echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:854: checking for POSIXized ISC" >&5 +echo "configure:971: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then @@ -872,13 +989,13 @@ if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 -echo "configure:876: checking whether ${CC-cc} needs -traditional" >&5 +echo "configure:993: checking whether ${CC-cc} needs -traditional" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < Autoconf TIOCGETP @@ -896,7 +1013,7 @@ if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < Autoconf TCGETA @@ -917,64 +1034,178 @@ fi fi +echo $ac_n "checking for working const""... $ac_c" 1>&6 +echo "configure:1039: checking for working const" >&5 +if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&6 -echo "configure:927: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_path_SUM'+set}'`\" = set"; then +int main() { + +/* Ultrix mips cc rejects this. */ +typedef int charset[2]; const charset x; +/* SunOS 4.1.1 cc rejects this. */ +char const *const *ccp; +char **p; +/* NEC SVR4.0.2 mips cc rejects this. */ +struct point {int x, y;}; +static struct point const zero = {0,0}; +/* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in an arm + of an if-expression whose if-part is not a constant expression */ +const char *g = "string"; +ccp = &g + (g ? g-g : 0); +/* HPUX 7.0 cc rejects these. */ +++ccp; +p = (char**) ccp; +ccp = (char const *const *) p; +{ /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; +} +{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; +} +{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; +} +{ /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; +} +{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; +} + +; return 0; } +EOF +if { (eval echo configure:1093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_c_const=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_c_const" 1>&6 +if test $ac_cv_c_const = no; then + cat >> confdefs.h <<\EOF +#define const +EOF + +fi + +echo $ac_n "checking for inline""... $ac_c" 1>&6 +echo "configure:1114: checking for inline" >&5 +if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - case "$SUM" in - /*) - ac_cv_path_SUM="$SUM" # Let the user override the test with a path. - ;; - ?:/*) - ac_cv_path_SUM="$SUM" # Let the user override the test with a dos path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="/usr/ucb:$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_SUM="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" - ;; -esac + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_inline=$ac_kw; break +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 fi -SUM="$ac_cv_path_SUM" -if test -n "$SUM"; then - echo "$ac_t""$SUM" 1>&6 +rm -f conftest* +done + +fi + +echo "$ac_t""$ac_cv_c_inline" 1>&6 +case "$ac_cv_c_inline" in + inline | yes) ;; + no) cat >> confdefs.h <<\EOF +#define inline +EOF + ;; + *) cat >> confdefs.h <&6 +echo "configure:1154: checking return type of signal handlers" >&5 +if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 else - echo "$ac_t""no" 1>&6 + cat > conftest.$ac_ext < +#include +#ifdef signal +#undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + +int main() { +int i; +; return 0; } +EOF +if { (eval echo configure:1176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_signal=void +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_type_signal=int +fi +rm -f conftest* fi -test -n "$SUM" && break -done -test -n "$SUM" || SUM="true" +echo "$ac_t""$ac_cv_type_signal" 1>&6 +cat >> confdefs.h <&6 -echo "configure:968: checking for $ac_hdr" >&5 +echo "configure:1199: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:978: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1002,7 +1233,7 @@ echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:1006: checking for crypt in -lcrypt" >&5 +echo "configure:1237: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1010,7 +1241,7 @@ ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1048,27 +1279,27 @@ echo "$ac_t""no" 1>&6 fi -echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 -echo "configure:1053: checking for socket in -lsocket" >&5 -ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` +echo $ac_n "checking for descrypt in -lcrypt""... $ac_c" 1>&6 +echo "configure:1284: checking for descrypt in -lcrypt" >&5 +ac_lib_var=`echo crypt'_'descrypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lsocket $LIBS" +LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1083,28 +1314,28 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + ac_tr_lib=HAVE_LIB`echo crypt | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 fi -echo $ac_n "checking for socket in -lnsl""... $ac_c" 1>&6 -echo "configure:1100: checking for socket in -lnsl" >&5 -ac_lib_var=`echo nsl'_'socket | sed 'y%./+-%__p_%'` +echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 +echo "configure:1331: checking for socket in -lsocket" >&5 +ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lnsl $LIBS" +LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1130,39 +1361,39 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo nsl | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 fi -echo $ac_n "checking for res_init in -lresolv""... $ac_c" 1>&6 -echo "configure:1147: checking for res_init in -lresolv" >&5 -ac_lib_var=`echo resolv'_'res_init | sed 'y%./+-%__p_%'` +echo $ac_n "checking for socket in -lnsl""... $ac_c" 1>&6 +echo "configure:1378: checking for socket in -lnsl" >&5 +ac_lib_var=`echo nsl'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lresolv $LIBS" +LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1177,39 +1408,39 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo resolv | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + ac_tr_lib=HAVE_LIB`echo nsl | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 fi -echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:1194: checking for dlopen in -ldl" >&5 -ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` +echo $ac_n "checking for res_init in -lresolv""... $ac_c" 1>&6 +echo "configure:1425: checking for res_init in -lresolv" >&5 +ac_lib_var=`echo resolv'_'res_init | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-ldl $LIBS" +LIBS="-lresolv $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1224,166 +1455,166 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo dl | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + ac_tr_lib=HAVE_LIB`echo resolv | sed -e 's/[^a-zA-Z0-9_]/_/g' \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` cat >> confdefs.h <&6 fi -echo $ac_n "checking for getpagesize""... $ac_c" 1>&6 -echo "configure:1242: checking for getpagesize" >&5 -if eval "test \"`echo '$''{'ac_cv_func_getpagesize'+set}'`\" = set"; then +echo $ac_n "checking for select""... $ac_c" 1>&6 +echo "configure:1473: checking for select" >&5 +if eval "test \"`echo '$''{'ac_cv_func_select'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char getpagesize(); +char select(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_getpagesize) || defined (__stub___getpagesize) +#if defined (__stub_select) || defined (__stub___select) choke me #else -getpagesize(); +select(); #endif ; return 0; } EOF -if { (eval echo configure:1270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_getpagesize=yes" + eval "ac_cv_func_select=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_getpagesize=no" + eval "ac_cv_func_select=no" fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'getpagesize`\" = yes"; then +if eval "test \"`echo '$ac_cv_func_'select`\" = yes"; then echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF -#define HAVE_GETPAGESIZE 1 +#define HAVE_SELECT 1 EOF else echo "$ac_t""no" 1>&6 -echo $ac_n "checking for sysconf""... $ac_c" 1>&6 -echo "configure:1291: checking for sysconf" >&5 -if eval "test \"`echo '$''{'ac_cv_func_sysconf'+set}'`\" = set"; then +fi + +echo $ac_n "checking for poll""... $ac_c" 1>&6 +echo "configure:1524: checking for poll" >&5 +if eval "test \"`echo '$''{'ac_cv_func_poll'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char sysconf(); +char poll(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_sysconf) || defined (__stub___sysconf) +#if defined (__stub_poll) || defined (__stub___poll) choke me #else -sysconf(); +poll(); #endif ; return 0; } EOF -if { (eval echo configure:1319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_sysconf=yes" + eval "ac_cv_func_poll=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_sysconf=no" + eval "ac_cv_func_poll=no" fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'sysconf`\" = yes"; then +if eval "test \"`echo '$ac_cv_func_'poll`\" = yes"; then echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF -#define HAVE_SYSCONF 1 +#define HAVE_POLL 1 EOF else echo "$ac_t""no" 1>&6 fi -fi - -echo $ac_n "checking for poll""... $ac_c" 1>&6 -echo "configure:1344: checking for poll" >&5 -if eval "test \"`echo '$''{'ac_cv_func_poll'+set}'`\" = set"; then +echo $ac_n "checking for kqueue""... $ac_c" 1>&6 +echo "configure:1575: checking for kqueue" >&5 +if eval "test \"`echo '$''{'ac_cv_func_kqueue'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char poll(); +char kqueue(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_poll) || defined (__stub___poll) +#if defined (__stub_kqueue) || defined (__stub___kqueue) choke me #else -poll(); +kqueue(); #endif ; return 0; } EOF -if { (eval echo configure:1372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_poll=yes" + eval "ac_cv_func_kqueue=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_poll=no" + eval "ac_cv_func_kqueue=no" fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'poll`\" = yes"; then +if eval "test \"`echo '$ac_cv_func_'kqueue`\" = yes"; then echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF -#define HAVE_POLL 1 +#define HAVE_KQUEUE 1 EOF else @@ -1391,12 +1622,12 @@ fi echo $ac_n "checking for dn_skipname""... $ac_c" 1>&6 -echo "configure:1395: checking for dn_skipname" >&5 +echo "configure:1626: checking for dn_skipname" >&5 if eval "test \"`echo '$''{'ac_cv_func_dn_skipname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_dn_skipname=yes" else @@ -1443,12 +1674,12 @@ fi echo $ac_n "checking for mmap""... $ac_c" 1>&6 -echo "configure:1447: checking for mmap" >&5 +echo "configure:1678: checking for mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_mmap=yes" else @@ -1493,13 +1724,115 @@ echo "$ac_t""no" 1>&6 fi +echo $ac_n "checking for getpagesize""... $ac_c" 1>&6 +echo "configure:1729: checking for getpagesize" >&5 +if eval "test \"`echo '$''{'ac_cv_func_getpagesize'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getpagesize(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_getpagesize) || defined (__stub___getpagesize) +choke me +#else +getpagesize(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_getpagesize=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_getpagesize=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'getpagesize`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_GETPAGESIZE 1 +EOF + +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for sysconf""... $ac_c" 1>&6 +echo "configure:1778: checking for sysconf" >&5 +if eval "test \"`echo '$''{'ac_cv_func_sysconf'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char sysconf(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_sysconf) || defined (__stub___sysconf) +choke me +#else +sysconf(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_sysconf=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_sysconf=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'sysconf`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_SYSCONF 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi + +fi + echo $ac_n "checking for vsnprintf""... $ac_c" 1>&6 -echo "configure:1498: checking for vsnprintf" >&5 +echo "configure:1831: checking for vsnprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vsnprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vsnprintf=yes" else @@ -1545,12 +1878,12 @@ fi echo $ac_n "checking for strerror""... $ac_c" 1>&6 -echo "configure:1549: checking for strerror" >&5 +echo "configure:1882: checking for strerror" >&5 if eval "test \"`echo '$''{'ac_cv_func_strerror'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strerror=yes" else @@ -1594,12 +1927,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for sys_errlist declaration""... $ac_c" 1>&6 -echo "configure:1598: checking for sys_errlist declaration" >&5 +echo "configure:1931: checking for sys_errlist declaration" >&5 if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < @@ -1612,7 +1945,7 @@ } EOF -if { (eval echo configure:1616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cat >> confdefs.h <<\EOF #define SYS_ERRLIST_DECLARED 1 @@ -1630,45 +1963,9 @@ fi -echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:1635: checking return type of signal handlers" >&5 -if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#ifdef signal -#undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int main() { -int i; -; return 0; } -EOF -if { (eval echo configure:1657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_type_signal=void -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_type_signal=int -fi -rm -f conftest* -fi +SHLIB_CC="${CC} -fPIC" +SHLIB_LD="${CC} -shared" -echo "$ac_t""$ac_cv_type_signal" 1>&6 -cat >> confdefs.h <> $CONFIG_STATUS <> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then @@ -1924,7 +2240,7 @@ if test "${CONFIG_HEADERS+set}" != set; then EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF fi diff -uNrd -x CVS ircd-comstud-1.12-REL/configure.in ircd-devel/configure.in --- ircd-comstud-1.12-REL/configure.in Thu Jun 3 01:30:26 1999 +++ ircd-devel/configure.in Tue Dec 5 12:29:00 2000 @@ -1,35 +1,44 @@ dnl @(#)$Id configure.in,v 1.2 1995/01/07 01:50:18 mrg Exp$ -dnl -dnl configure.in for ircd 2.9. -dnl written by matthew green (mrg@mame.mu.oz.au), with portions -dnl from avalon's Config. -dnl copyright (c) 1995. -AC_REVISION(1.2)dnl AC_INIT(source/ircdcore.c) -AC_CONFIG_HEADER(include/setup.h:include/setup.h.in) +dnl AC_CONFIG_AUX_DIR(config) +AC_CONFIG_HEADER(include/setup.h) +PACKAGE=ircd-comstud +VERSION=1.11 +AC_SUBST(PACKAGE) +AC_SUBST(VERSION) +AC_CANONICAL_SYSTEM AC_PROG_CC AC_PROG_CPP -AC_AIX +AC_PROG_MAKE_SET + +dnl AC_ENABLE_SHARED +dnl AC_DISABLE_STATIC +dnl AC_LIBTOOL_DLOPEN +dnl AM_PROG_LIBTOOL + AC_ISC_POSIX AC_PROG_GCC_TRADITIONAL +AC_C_CONST +AC_C_INLINE +AC_TYPE_SIGNAL -AC_PATH_PROGS(SUM, sum cksum, true, /usr/ucb:$PATH) - -AC_CHECK_HEADERS(crypt.h stropts.h time.h sys/time.h sys/ioctl.h sys/filio.h) +AC_CHECK_HEADERS(crypt.h stropts.h time.h sys/time.h sys/ioctl.h sys/filio.h sys/event.h) AC_CHECK_LIB(crypt, crypt) +AC_CHECK_LIB(crypt, descrypt) AC_CHECK_LIB(socket, socket) AC_CHECK_LIB(nsl, socket) AC_CHECK_LIB(resolv, res_init) -AC_CHECK_LIB(dl, dlopen) -AC_CHECK_FUNC(getpagesize, AC_DEFINE(HAVE_GETPAGESIZE), - AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF))) +AC_CHECK_FUNC(select, AC_DEFINE(HAVE_SELECT)) AC_CHECK_FUNC(poll, AC_DEFINE(HAVE_POLL)) +AC_CHECK_FUNC(kqueue, AC_DEFINE(HAVE_KQUEUE)) AC_CHECK_FUNC(dn_skipname, , AC_DEFINE(NEED_DNSKIPNAME)) AC_CHECK_FUNC(mmap, AC_DEFINE(HAVE_MMAP)) +AC_CHECK_FUNC(getpagesize, AC_DEFINE(HAVE_GETPAGESIZE), + AC_CHECK_FUNC(sysconf, AC_DEFINE(HAVE_SYSCONF))) AC_CHECK_FUNC(vsnprintf, AC_DEFINE(HAVE_VSNPRINTF)) AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR), AC_MSG_CHECKING(for sys_errlist declaration) @@ -44,6 +53,10 @@ } ],AC_DEFINE(SYS_ERRLIST_DECLARED) AC_MSG_RESULT(yes), AC_MSG_RESULT(no), :)) -AC_TYPE_SIGNAL() +SHLIB_CC="${CC} -fPIC" +SHLIB_LD="${CC} -shared" -AC_OUTPUT(Makefile:Makefile.in) +AC_SUBST(SHLIB_CC) +AC_SUBST(SHLIB_LD) + +AC_OUTPUT(Makefile lib/Makefile source/Makefile utils/Makefile) diff -uNrd -x CVS ircd-comstud-1.12-REL/confparse/Makefile ircd-devel/confparse/Makefile --- ircd-comstud-1.12-REL/confparse/Makefile Wed Mar 17 19:47:17 1999 +++ ircd-devel/confparse/Makefile Wed Dec 31 19:00:00 1969 @@ -1,21 +0,0 @@ -CC=gcc -CFLAGS=-Wall -g - -ALL=libconfigparse.a conftest - -all: ${ALL} - -libconfigparse.a: configparse.o - rm -f libconfigparse.a - ar r libconfigparse.a configparse.o - ranlib libconfigparse.a - -configparse.o: configparse.c configparse.h - ${CC} ${CFLAGS} -c configparse.c -o configparse.o - -conftest: libconfigparse.a conftest.c - ${CC} ${CFLAGS} -o conftest conftest.c -L. -lconfigparse - -clean: - rm -f ${ALL} *.o - diff -uNrd -x CVS ircd-comstud-1.12-REL/confparse/configparse.c ircd-devel/confparse/configparse.c --- ircd-comstud-1.12-REL/confparse/configparse.c Mon Oct 23 01:35:32 2000 +++ ircd-devel/confparse/configparse.c Wed Dec 31 19:00:00 1969 @@ -1,417 +0,0 @@ -/* -** Generic Config file parser (configparse.c) -** Copyright (C) 1999 Fred Jacobs, Chris Behrens -** -** 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 1, or (at your option) -** any later version. -** -** This program is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with this program; if not, write to the Free Software -** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* -** The idea of something this generic came solely from Fred Jacobs. -** I completely rewrote his implementation, however, although some -** pieces remain similar. Thank you very much, Fred! :) -** - Chris -*/ - -#include "ircd_includes.h" -#include "configparse.h" - - -static void config_error(char *format, ...); -static CONFIGFILE *config_parse(char *filename, char *confdata); -static void config_entry_free(CONFIGENTRY *ceptr); - -static void config_error(char *format, ...) -{ - va_list ap; - char buffer[1024]; - char *ptr; - - va_start(ap, format); - vsprintf(buffer, format, ap); - va_end(ap); - if ((ptr = strchr(buffer, '\n')) != NULL) - *ptr = '\0'; - syslog(LOG_NOTICE, "%s", buffer); -} - -static CONFIGFILE *config_parse(char *filename, char *confdata) -{ - char *ptr; - char *start; - int linenumber = 1; - CONFIGENTRY *curce; - CONFIGENTRY **lastce; - CONFIGENTRY *cursection; - - CONFIGFILE *curcf; - CONFIGFILE *lastcf; - - lastcf = curcf = (CONFIGFILE *)MyMalloc(sizeof(CONFIGFILE)); - memset(curcf, 0, sizeof(CONFIGFILE)); - curcf->cf_filename = MyStrdup(filename); - lastce = &(curcf->cf_entries); - curce = NULL; - cursection = NULL; - for(ptr=confdata;*ptr;ptr++) - { - switch(*ptr) - { - case ';': - if (!curce) - { - config_error("%s:%i Ignoring extra semicolon\n", - filename, linenumber); - break; - } - if (!strcmp(curce->ce_varname, "include")) - { - CONFIGFILE *cfptr; - - if (!curce->ce_vardata) - { - config_error("%s:%i Ignoring \"include\": No filename given\n", - filename, linenumber); - config_entry_free(curce); - curce = NULL; - continue; - } - if (strlen(curce->ce_vardata) > 255) - curce->ce_vardata[255] = '\0'; - cfptr = config_load(curce->ce_vardata); - if (cfptr) - { - lastcf->cf_next = cfptr; - lastcf = cfptr; - } - config_entry_free(curce); - curce = NULL; - continue; - } - *lastce = curce; - lastce = &(curce->ce_next); - curce->ce_fileposend = (ptr - confdata); - curce = NULL; - break; - case '{': - if (!curce) - { - config_error("%s:%i: No name for section start\n", - filename, linenumber); - continue; - } - else if (curce->ce_entries) - { - config_error("%s:%i: Ignoring extra section start\n", - filename, linenumber); - continue; - } - curce->ce_sectlinenum = linenumber; - lastce = &(curce->ce_entries); - cursection = curce; - curce = NULL; - break; - case '}': - if (curce) - { - config_error("%s:%i: Missing semicolon before close brace\n", - filename, linenumber); - config_entry_free(curce); - config_free(curcf); - return NULL; - } - else if (!cursection) - { - config_error("%s:%i: Ignoring extra close brace\n", - filename, linenumber); - continue; - } - curce = cursection; - cursection->ce_fileposend = (ptr - confdata); - cursection = cursection->ce_prevlevel; - if (!cursection) - lastce = &(curcf->cf_entries); - else - lastce = &(cursection->ce_entries); - for(;*lastce;lastce = &((*lastce)->ce_next)) - continue; - break; - case '/': - if (*(ptr+1) == '/') - { - ptr += 2; - while(*ptr && (*ptr != '\n')) - ptr++; - if (!*ptr) - break; - ptr--; /* grab the \n on next loop thru */ - continue; - } - else if (*(ptr+1) == '*') - { - int commentstart = linenumber; - - for(ptr+=2;*ptr;ptr++) - { - if ((*ptr == '*') && (*(ptr+1) == '/')) - { - ptr++; - break; - } - else if (*ptr == '\n') - linenumber++; - } - if (!*ptr) - { - config_error("%s:%i Comment on this line does not end\n", - filename, commentstart); - config_entry_free(curce); - config_free(curcf); - return NULL; - } - } - break; - case '\"': - start = ++ptr; - for(;*ptr;ptr++) - { - if ((*ptr == '\\') && (*(ptr+1) == '\"')) - { - char *tptr = ptr; - while((*tptr = *(tptr+1))) - tptr++; - } - else if ((*ptr == '\"') || (*ptr == '\n')) - break; - } - if (!*ptr || (*ptr == '\n')) - { - config_error("%s:%i: Unterminated quote found\n", - filename, linenumber); - config_entry_free(curce); - config_free(curcf); - return NULL; - } - if (curce) - { - if (curce->ce_vardata) - { - config_error("%s:%i: Ignoring extra data\n", - filename, linenumber); - } - else - { - curce->ce_vardata = (char *)MyMalloc(ptr-start+1); - strncpy(curce->ce_vardata, start, ptr-start); - curce->ce_vardata[ptr-start] = '\0'; - curce->ce_vardatanum = atoi(curce->ce_vardata); - } - } - else - { - curce = (CONFIGENTRY *)MyMalloc(sizeof(CONFIGENTRY)); - memset(curce, 0, sizeof(CONFIGENTRY)); - curce->ce_varname = (char *)MyMalloc(ptr-start+1); - strncpy(curce->ce_varname, start, ptr-start); - curce->ce_varname[ptr-start] = '\0'; - curce->ce_varlinenum = linenumber; - curce->ce_fileptr = curcf; - curce->ce_prevlevel = cursection; - curce->ce_fileposstart = (start - confdata); - } - break; - case '\n': - linenumber++; - if (*(ptr+1) == '#') - { - ptr += 2; - while(*ptr && (*ptr != '\n')) - ptr++; - if (*ptr == '\n') - { - ptr--; - continue; - } - } - /* fall through */ - case '\t': - case ' ': - case '\r': - break; - default: - if ((*ptr == '*') && (*(ptr+1) == '/')) - { - config_error("%s:%i Ignoring extra end comment\n", - filename, linenumber); - ptr++; - break; - } - start = ptr; - for(;*ptr;ptr++) - { - if ((*ptr == ' ') || (*ptr == '\t') || (*ptr == '\n') || (*ptr == ';')) - break; - } - if (!*ptr) - { - if (curce) - config_error("%s: Unexpected EOF for variable starting at %i\n", - filename, curce->ce_varlinenum); - else if (cursection) - config_error("%s: Unexpected EOF for section starting at %i\n", - filename, curce->ce_sectlinenum); - else - config_error("%s: Unexpected EOF.\n", filename); - config_entry_free(curce); - config_free(curcf); - return NULL; - } - if (curce) - { - if (curce->ce_vardata) - { - config_error("%s:%i: Ignoring extra data\n", - filename, linenumber); - } - else - { - curce->ce_vardata = (char *)MyMalloc(ptr-start+1); - strncpy(curce->ce_vardata, start, ptr-start); - curce->ce_vardata[ptr-start] = '\0'; - curce->ce_vardatanum = atoi(curce->ce_vardata); - } - } - else - { - curce = (CONFIGENTRY *)MyMalloc(sizeof(CONFIGENTRY)); - memset(curce, 0, sizeof(CONFIGENTRY)); - curce->ce_varname = (char *)MyMalloc(ptr-start+1); - strncpy(curce->ce_varname, start, ptr-start); - curce->ce_varname[ptr-start] = '\0'; - curce->ce_varlinenum = linenumber; - curce->ce_fileptr = curcf; - curce->ce_prevlevel = cursection; - curce->ce_fileposstart = (start - confdata); - } - if ((*ptr == ';') || (*ptr == '\n')) - ptr--; - break; - } /* switch */ - } /* for */ - if (curce) - { - config_error("%s: Unexpected EOF for variable starting on line %i\n", - filename, curce->ce_varlinenum); - config_entry_free(curce); - config_free(curcf); - return NULL; - } - else if (cursection) - { - config_error("%s: Unexpected EOF for section starting on line %i\n", - filename, cursection->ce_sectlinenum); - config_free(curcf); - return NULL; - } - return curcf; -} - -static void config_entry_free(CONFIGENTRY *ceptr) -{ - CONFIGENTRY *nptr; - - for(;ceptr;ceptr=nptr) - { - nptr = ceptr->ce_next; - if (ceptr->ce_entries) - config_entry_free(ceptr->ce_entries); - if (ceptr->ce_varname) - MyFree(ceptr->ce_varname); - if (ceptr->ce_vardata) - MyFree(ceptr->ce_vardata); - MyFree(ceptr); - } -} - -void config_free(CONFIGFILE *cfptr) -{ - CONFIGFILE *nptr; - - for(;cfptr;cfptr=nptr) - { - nptr = cfptr->cf_next; - if (cfptr->cf_entries) - config_entry_free(cfptr->cf_entries); - if (cfptr->cf_filename) - MyFree(cfptr->cf_filename); - MyFree(cfptr); - } -} - -CONFIGFILE *config_load(char *filename) -{ - struct stat sb; - int fd; - int ret; - char *buf = NULL; - CONFIGFILE *cfptr; - - fd = open(filename, O_RDONLY); - if (fd == -1) - { - config_error("Couldn't open \"%s\": %i\n", filename, errno); - return NULL; - } - if (fstat(fd, &sb) == -1) - { - config_error("Couldn't fstat \"%s\": %i\n", filename, errno); - close(fd); - return NULL; - } - if (!sb.st_size) - { - close(fd); - return NULL; - } - buf = (char *)MyMalloc(sb.st_size+1); - if (buf == NULL) - { - config_error("Out of memory trying to load \"%s\"\n", filename); - close(fd); - return NULL; - } - ret = read(fd, buf, sb.st_size); - if (ret != sb.st_size) - { - config_error("Error reading \"%s\": %i\n", filename, - ret == -1 ? errno : EFAULT); - MyFree(buf); - close(fd); - return NULL; - } - buf[ret] = '\0'; - close(fd); - cfptr = config_parse(filename, buf); - MyFree(buf); - return cfptr; -} - -CONFIGENTRY *config_find(CONFIGENTRY *ceptr, char *name) -{ - for(;ceptr;ceptr=ceptr->ce_next) - if (!strcmp(ceptr->ce_varname, name)) - break; - return ceptr; -} - diff -uNrd -x CVS ircd-comstud-1.12-REL/confparse/configparse.h ircd-devel/confparse/configparse.h --- ircd-comstud-1.12-REL/confparse/configparse.h Fri May 28 22:03:41 1999 +++ ircd-devel/confparse/configparse.h Wed Dec 31 19:00:00 1969 @@ -1,63 +0,0 @@ -/* -** Generic Config file parser (configparse.h) -** Copyright (C) 1999 Fred Jacobs, Chris Behrens -** -** 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 1, or (at your option) -** any later version. -** -** This program is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with this program; if not, write to the Free Software -** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* -** The idea of something this generic came solely from Fred Jacobs. -** I completely rewrote his implementation, however, although some -** pieces remain similar. Thank you very much, Fred! :) -** - Chris -*/ - -#ifndef __CONFPARSE_H__ -#define __CONFPARSE_H__ - -typedef struct _configfile CONFIGFILE; -typedef struct _configentry CONFIGENTRY; - -struct _configfile -{ - char *cf_filename; - CONFIGENTRY *cf_entries; - CONFIGFILE *cf_next; -}; - -struct _configentry -{ - CONFIGFILE *ce_fileptr; - - int ce_varlinenum; - char *ce_varname; - char *ce_vardata; - int ce_vardatanum; - int ce_fileposstart; - int ce_fileposend; - - int ce_sectlinenum; - CONFIGENTRY *ce_entries; - - CONFIGENTRY *ce_prevlevel; - - CONFIGENTRY *ce_next; -}; - -void config_free(CONFIGFILE *cfptr); -CONFIGFILE *config_load(char *filename); -CONFIGENTRY *config_find(CONFIGENTRY *ceptr, char *name); - -#endif diff -uNrd -x CVS ircd-comstud-1.12-REL/confparse/conftest.c ircd-devel/confparse/conftest.c --- ircd-comstud-1.12-REL/confparse/conftest.c Thu Mar 18 00:10:38 1999 +++ ircd-devel/confparse/conftest.c Wed Dec 31 19:00:00 1969 @@ -1,103 +0,0 @@ -/* -** Generic Config file parser (conftest.c) -** Copyright (C) 1999 Fred Jacobs, Chris Behrens -** -** 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 1, or (at your option) -** any later version. -** -** This program is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with this program; if not, write to the Free Software -** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* -** The idea of something this generic came solely from Fred Jacobs. -** I completely rewrote his implementation, however, although some -** pieces remain similar. Thank you very much, Fred! :) -** - Chris -*/ - -#include -#include "configparse.h" - - -static void conftest_entry_print(CONFIGENTRY *ce, int deep); -static void conftest_print(CONFIGFILE *cfptr); - -static void conftest_entry_print(CONFIGENTRY *ce, int deep) -{ - int num = 0; - - if (ce) - printf("%*sNew section at line %i of %s:\n", deep*3, "", ce->ce_prevlevel ? ce->ce_prevlevel->ce_sectlinenum : 0, ce->ce_fileptr->cf_filename); - for(;ce;ce=ce->ce_next) - { - num++; - if (!ce->ce_varname && !ce->ce_vardata && !ce->ce_entries) - continue; - if (ce->ce_varname) - { - printf("%*sName: %s (Linenumber %i of %s)\n", 2+deep*3, "", - ce->ce_varname, ce->ce_varlinenum, - ce->ce_fileptr->cf_filename); - if (ce->ce_vardata) - printf("%*sData: %s\n", 2+deep*3, "", ce->ce_vardata); - } - if (ce->ce_entries) - { - conftest_entry_print(ce->ce_entries, deep+1); - } - } - if (num) - printf("%*sEnd section\n", deep*3, ""); -} - -static void conftest_print(CONFIGFILE *cfptr) -{ - for(;cfptr;cfptr=cfptr->cf_next) - conftest_entry_print(cfptr->cf_entries, 0); -} - -int main(int argc, char **argv) -{ - CONFIGFILE *cfptr; - - if (argc < 2) - { - fprintf(stderr, "Usage: conftest conffile\n"); - exit(-1); - } - - cfptr = config_load(argv[1]); - - if (cfptr) - { - printf("Conf loaded without errors\n"); -#ifdef DOIT - { - int i; - - printf("sleeping\n"); - sleep(10); - for(i=0;i<1000;i++) - config_free(config_load(argv[1])); - } -#else - conftest_print(cfptr); -#endif - config_free(cfptr); - sleep(5); - printf("sleeping\n"); - } - else - printf("Conf could not be loaded\n"); - exit(0); -} - diff -uNrd -x CVS ircd-comstud-1.12-REL/confparse/include.conf ircd-devel/confparse/include.conf --- ircd-comstud-1.12-REL/confparse/include.conf Tue Mar 16 23:28:43 1999 +++ ircd-devel/confparse/include.conf Wed Dec 31 19:00:00 1969 @@ -1,6 +0,0 @@ - -included this { - conf file; -}; - -testing 123; diff -uNrd -x CVS ircd-comstud-1.12-REL/confparse/test.conf ircd-devel/confparse/test.conf --- ircd-comstud-1.12-REL/confparse/test.conf Wed Mar 17 20:59:33 1999 +++ ircd-devel/confparse/test.conf Wed Dec 31 19:00:00 1969 @@ -1,32 +0,0 @@ - -include "include.conf"; - -// Data files for this package -files "Data Files" { - file blarg.data; - file foo.data; -}; - -/* Birthdays we care about. - Organized per-month */ -Birthdays { - January { - Bob 14; - Joe 18; - }; - December { - Jane 24; - }; -}; - -# arrrgh !!! ! !! ! ! ! ! ! ! ! ! ! /* nmoe oamdf ljkafl dksf -# -# - -# -# - -outputfile "birthday.out"; - -/* Network port to listen on */ -port 9999; diff -uNrd -x CVS ircd-comstud-1.12-REL/include/access.h ircd-devel/include/access.h --- ircd-comstud-1.12-REL/include/access.h Wed Nov 8 00:51:38 2000 +++ ircd-devel/include/access.h Sun Dec 3 12:17:45 2000 @@ -25,7 +25,6 @@ ircd_uint32_t ip_net; ircd_uint32_t ip_mask; char *ipstring; -#define ALLOW_FLAGS_CHECKHOSTNAME 0x001 int flags; char *classname; void *classptr; diff -uNrd -x CVS ircd-comstud-1.12-REL/include/confparse.h ircd-devel/include/confparse.h --- ircd-comstud-1.12-REL/include/confparse.h Wed Dec 31 19:00:00 1969 +++ ircd-devel/include/confparse.h Tue Dec 5 12:23:23 2000 @@ -0,0 +1,63 @@ +/* +** Generic Config file parser (confparse.h) +** Copyright (C) 1999 Fred Jacobs, Chris Behrens +** +** 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 1, or (at your option) +** any later version. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with this program; if not, write to the Free Software +** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +/* +** The idea of something this generic came solely from Fred Jacobs. +** I completely rewrote his implementation, however, although some +** pieces remain similar. Thank you very much, Fred! :) +** - Chris +*/ + +#ifndef __CONFPARSE_H__ +#define __CONFPARSE_H__ + +typedef struct _configfile CONFIGFILE; +typedef struct _configentry CONFIGENTRY; + +struct _configfile +{ + char *cf_filename; + CONFIGENTRY *cf_entries; + CONFIGFILE *cf_next; +}; + +struct _configentry +{ + CONFIGFILE *ce_fileptr; + + int ce_varlinenum; + char *ce_varname; + char *ce_vardata; + int ce_vardatanum; + int ce_fileposstart; + int ce_fileposend; + + int ce_sectlinenum; + CONFIGENTRY *ce_entries; + + CONFIGENTRY *ce_prevlevel; + + CONFIGENTRY *ce_next; +}; + +void config_free(CONFIGFILE *cfptr); +CONFIGFILE *config_load(char *filename); +CONFIGENTRY *config_find(CONFIGENTRY *ceptr, char *name); + +#endif diff -uNrd -x CVS ircd-comstud-1.12-REL/include/defines.h ircd-devel/include/defines.h --- ircd-comstud-1.12-REL/include/defines.h Tue Nov 9 23:41:06 1999 +++ ircd-devel/include/defines.h Sun Dec 3 12:17:45 2000 @@ -59,7 +59,6 @@ #define IsMember _channel_ismember extern char *Conffile; -extern FDLIST *Fdlist_main; extern IRCD_CONN **Fds; extern int Fds_size; extern IRCDRES_REQLIST *Reqlist; diff -uNrd -x CVS ircd-comstud-1.12-REL/include/fdlist.h ircd-devel/include/fdlist.h --- ircd-comstud-1.12-REL/include/fdlist.h Sun Jul 18 14:39:17 1999 +++ ircd-devel/include/fdlist.h Tue Dec 5 05:58:40 2000 @@ -1,48 +1,19 @@ #ifndef __FDLIST_H__ #define __FDLIST_H__ +#include "structs.h" #include "config.h" #include -/* -#include -*/ +#include typedef struct pollfd FDLIST_POLLFD; #define FDLIST_FLAGS_READ 0x001 #define FDLIST_FLAGS_WRITE 0x002 -typedef struct _fdlist FDLIST; -typedef struct _fdlistinfo FDLISTINFO; - -struct _fdlist -{ - FDLIST_POLLFD *pfd_array; - int pfd_size; - int pfd_num; -}; - -struct _fdlistinfo -{ - int fd; - FDLIST *fdlist; - int fdlist_pos; -}; - -#define FDLIST_FD(__fdlist, __pos) (__fdlist)->pfd_array[(__pos)].fd - -#define SET_FDS(__fd, __ptr) Fds[(__fd)] = (__ptr) -#define GET_FDS(__fd) Fds[(__fd)] - -#define fdlist_events(__fdlist, __pos) (__fdlist)->pfd_array[(__pos)].events -#define fdlist_init(__fdlist) memset((__fdlist), 0, sizeof(FDLIST)) - -int fdlist_add_fd(FDLIST *fdlist, int fd, int flags); -int fdlist_del_fd(FDLIST *fdlist, int pos, int *mfd); -int fdlist_add_event(FDLIST *fdlist, int pos, int flags); -int fdlist_del_event(FDLIST *fdlist, int pos, int flags); -int fdlist_set_events(FDLIST *fdlist, int pos, int flags); -int fdlist_get_events(FDLIST *fdlist, int pos); +struct kevent *fdlist_kqueue_increase(struct kevent *, int); +int fdlist_add_event(IRCD_CONN *, int); +int fdlist_del_event(IRCD_CONN *, int); #endif diff -uNrd -x CVS ircd-comstud-1.12-REL/include/ircd_includes.h ircd-devel/include/ircd_includes.h --- ircd-comstud-1.12-REL/include/ircd_includes.h Mon Jun 14 17:44:47 1999 +++ ircd-devel/include/ircd_includes.h Sun Dec 3 12:17:45 2000 @@ -56,11 +56,11 @@ #include "support.h" #include "config.h" -#include "fdlist.h" #include "queue.h" #include "fileio.h" #include "conf.h" #include "structs.h" +#include "fdlist.h" #include "cidr.h" #include "access.h" #include "misc.h" diff -uNrd -x CVS ircd-comstud-1.12-REL/include/misc.h ircd-devel/include/misc.h --- ircd-comstud-1.12-REL/include/misc.h Sun Oct 22 21:38:45 2000 +++ ircd-devel/include/misc.h Sun Dec 3 12:17:45 2000 @@ -6,8 +6,8 @@ #define NEXTARG_FLAGS_LASTARG 0x001 void command_tree_init(void); -int ircd_open_fd(int fd, int flags, IRCD_CONN *cptr, FDLIST *fdlistptr); -int ircd_close_fd(FDLISTINFO *fdlistinfo); +int ircd_open_fd(int fd, int flags, IRCD_CONN *cptr); +int ircd_close_fd(int fd); int client_add_rejecthold(int fd, struct sockaddr_in *rem_sin); int client_add_local(IRCD_LISTENER *listener, int fd, struct sockaddr_in *rem_sin); int rejecthold_del(IRCD_CLIENT *from, IRCD_REJECTHOLD *rptr, char *reason); diff -uNrd -x CVS ircd-comstud-1.12-REL/include/structs.h ircd-devel/include/structs.h --- ircd-comstud-1.12-REL/include/structs.h Wed Nov 8 00:49:22 2000 +++ ircd-devel/include/structs.h Tue Dec 5 10:54:28 2000 @@ -2,12 +2,9 @@ #define __STRUCTS_H__ #include "defines.h" -#include "fdlist.h" #include "queue.h" #include "res.h" -#define ALLOW_FLAGS_CHECKHOSTNAME 0x001 - typedef struct _ircd_conn IRCD_CONN; typedef struct _ircd_auth IRCD_AUTH; typedef struct _ircd_rejecthold IRCD_REJECTHOLD; @@ -29,7 +26,7 @@ struct _ircd_conn { - FDLISTINFO fdlistinfo; + int fd; #define IRCD_CONN_TYPE_CLIENT 0x001 #define IRCD_CONN_TYPE_AUTH 0x002 #define IRCD_CONN_TYPE_LISTENER 0x004 @@ -254,7 +251,7 @@ IRCD_CLIENT *c_h_prev; IRCD_CLIENT *c_h_next; - IRCD_IPENTRY *c_ipaddr_ptr; + IRCD_IPENTRY *c_ipaddr_ptr; IRCD_CLIENT *c_i_prev; IRCD_CLIENT *c_i_next; IRCD_CLIENT *c_n_prev; @@ -409,8 +406,6 @@ int c_recv_msg; int c_recv_bytes; int c_recv_kbytes; - - int c_writetries; int c_rate_msgs; int c_rate_time; diff -uNrd -x CVS ircd-comstud-1.12-REL/include/version.h ircd-devel/include/version.h --- ircd-comstud-1.12-REL/include/version.h Wed Nov 8 00:38:14 2000 +++ ircd-devel/include/version.h Sun Dec 3 12:17:45 2000 @@ -1,7 +1,7 @@ #ifndef __VERSION_H__ #define __VERSION_H__ -#define VERSIONSTRING "2.8/comstud-1.12-REL" +#define VERSIONSTRING "2.8/comstud-1.11-REL" #ifdef CONCENTRIC #define VERSION VERSIONSTRING "+cnc" diff -uNrd -x CVS ircd-comstud-1.12-REL/install-sh ircd-devel/install-sh --- ircd-comstud-1.12-REL/install-sh Wed Dec 31 19:00:00 1969 +++ ircd-devel/install-sh Tue Dec 5 12:24:50 2000 @@ -0,0 +1,251 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + chmodcmd="" + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff -uNrd -x CVS ircd-comstud-1.12-REL/ircd.conf ircd-devel/ircd.conf --- ircd-comstud-1.12-REL/ircd.conf Wed Dec 31 19:00:00 1969 +++ ircd-devel/ircd.conf Sun Dec 10 07:46:32 2000 @@ -0,0 +1,79 @@ +global { + name irc.freebsd.org; + info "Development and testing server"; + nameserver 127.0.0.1; +}; + +listen { + address 127.0.0.1 { + port 31337; + }; +}; + + +set { + clientconnect yes; + chanopsonsplit 6; + maxclients 32000; + goodoper_log yes; + badoper_log yes; + clones_log yes; + users_log no; + newklines_file "kline.conf"; + isoperstring "is routing packets to Null0 (IRC Operator)"; + reject_hold 15; + IPADDR_ACCEPT_RATE_NUM 0; + ipaddr_client_rate_num 0; + show_nickchanges no; + default_maxchannels 20; + operscanjoinonsplit yes; +}; + +admin { + "irc.freebsd.org administration"; + "pm ( Dave McKay )"; + "bfumerola ( Bill Fumerola )"; + "ik ( Dan Haskell )"; +}; + +class users { + maxsendq 640000; + maxclients 4096; + pingfreq 99999; + recvbuf 16384; + sendbuf 16384; +}; + +allow { hostname *; username *; class users; }; +allow { ipaddr *; username *; class users; }; + +opers { + name testing { + from { + username *; + hostname *; + }; + passwd "$1$TDK9j7iW$CrZTapr9Xdc79h9o22mqH0"; + flag { + canset; /* Can "/quote set" */ + candie; /* Can "/quote die" the server */ + canflood; /* Can Flood (without lag) */ + cankline; /* Can "/quote kline" */ + canunkline; /* Can "/quote unkline" */ + canrehash; /* Can "/quote rehash" the server */ + canlocalkill; /* Can /kill Locally */ + canlocalroute; /* Can /connect & /squit locally */ + }; + userflag { + SWALLOPS; + OKILLS; + SNOTICES; + OWALLOPS; + STATSNOTICES; + THROTTLES; + LWALLOPS; + CONNECTS; + SQUITS; + }; + }; +}; diff -uNrd -x CVS ircd-comstud-1.12-REL/ircd.motd ircd-devel/ircd.motd --- ircd-comstud-1.12-REL/ircd.motd Wed Dec 31 19:00:00 1969 +++ ircd-devel/ircd.motd Tue Dec 5 12:46:33 2000 @@ -0,0 +1,36 @@ + $Id$ + + \. admins \._________________________________________________ + + (pm) - (dave@sneakerz.org) + (bfumerola) - (billf@FreeBSD.org) + (ik) - (ik@lsl.com) + + Questions / Complaints - (irc@freebsd.org) + + \. client policy \.__________________________________________ + + > clones (more than 2 u@h) will be klined without notice. + > if you have plans to flood / spam or otherwise act + in an inappropriate manner, save the operator staff + some time and /quit. + > your client must be set to respond to CTCP queries. + > violation of any of these terms will result in a kline. + if you feel your kline was unjustified, email irc@freebsd.org + with the user@host you were using at the time, as well + a description of what happened. + + \. bot policy \._____________________________________________ + + > we will allow a single connection from a non-abusive bot. + + \. involvement policy \._____________________________________ + + > this server is maintained by a group of dedicated + admins and operators. a list of active opers can be + obtained using /stats p. overall keep in mind your + use of this server is a privilege, NOT A RIGHT. + to be more specific, your connection can be terminated + any time at the sole discretion of the operator staff. + + Remember: ITS JUST IRC diff -uNrd -x CVS ircd-comstud-1.12-REL/ircd.pid ircd-devel/ircd.pid --- ircd-comstud-1.12-REL/ircd.pid Wed Dec 31 19:00:00 1969 +++ ircd-devel/ircd.pid Sun Dec 10 08:51:16 2000 @@ -0,0 +1 @@ +53620 diff -uNrd -x CVS ircd-comstud-1.12-REL/lib/Makefile.in ircd-devel/lib/Makefile.in --- ircd-comstud-1.12-REL/lib/Makefile.in Wed Dec 31 19:00:00 1969 +++ ircd-devel/lib/Makefile.in Tue Dec 5 12:36:33 2000 @@ -0,0 +1,31 @@ +CC = @CC@ +CFLAGS = @CFLAGS@ +LDFLAGS = @LDFLAGS@ +DEFS = @DEFS@ +LIBS = @LIBS@ +SHLIB_CC = @SHLIB_CC@ +SHLIB_LD = @SHLIB_LD@ + +LIB = ircd.so + +OBJS= access.o cidr.o commands.o conf.o confparse.o fdlist.o fileio.o \ + hash.o iphash.o ircd.o log.o match.o misc.o mysocket.o numeric.o \ + queue.o res.o send.o support.o vars.o whowas.o + +SRCS= access.c cidr.c commands.c conf.c confparse.c fdlist.c fileio.c \ + hash.c iphash.c ircd.c log.c match.c misc.c mysocket.c numeric.c \ + queue.c res.c send.c support.c tmp vars.c whowas.c + +.c.o: + ${SHLIB_CC} ${CFLAGS} ${DEFS} -I. -I../include -o $@ -c $< + +all: ircd.so + +ircd.so: ${OBJS} + ${SHLIB_LD} ${LDFLAGS} -o ../$@ ${OBJS} + +clean: + rm -f ${OBJS} ${LIB} + +distclean: clean + rm -f Makefile diff -uNrd -x CVS ircd-comstud-1.12-REL/lib/commands.c ircd-devel/lib/commands.c --- ircd-comstud-1.12-REL/lib/commands.c Thu Nov 23 23:23:55 2000 +++ ircd-devel/lib/commands.c Tue Dec 5 12:37:20 2000 @@ -22,7 +22,7 @@ #include "ircd_includes.h" #include "commands.h" -#include "../confparse/configparse.h" +#include "confparse.h" RCSID("$Id: commands.c,v 1.40 1999/02/23 07:57:15 cbehrens Exp $"); @@ -173,8 +173,7 @@ for(;*tptr;tptr++) { - if ((*tptr <= ' ') || (*tptr > 'z') || (*tptr == ':') || - (*tptr == '*') || (*tptr == '%')) + if ((*tptr <= ' ') || (*tptr > 'z') || (*tptr == ':') || (*tptr == '*')) break; if (*tptr == '.') dotptr = tptr; @@ -302,6 +301,9 @@ case -7: /* host limit exceeded */ strcpy(exitbuf, "Class uservhost limit exceeded"); break; + case -8: /* incorrect password */ + strcpy(exitbuf, "Incorrect password"); + break; default: sprintf(exitbuf, "Unknown error: %i", err); break; @@ -2947,11 +2949,6 @@ send_to_flag(CLIENT_NFLAGS_CONNECTS, NULL, "Server %s being introduced locally", lptr->name); - ret = Recvbuffersize; - setsockopt(lptr->c_connptr->fdlistinfo.fd, SOL_SOCKET, SO_RCVBUF, (char *)&ret, sizeof(ret)); - ret = Sendbuffersize; - setsockopt(lptr->c_connptr->fdlistinfo.fd, SOL_SOCKET, SO_SNDBUF, (char *)&ret, sizeof(ret)); - if (++Globalinfo->g_servers > Globalinfo->g_maxservers) { Globalinfo->g_maxservers = Globalinfo->g_servers; @@ -4497,7 +4494,7 @@ return -1; } - if (ircd_open_fd(afd, FDLIST_FLAGS_READ|FDLIST_FLAGS_WRITE, acptr->c_connptr, NULL) < 0) + if (ircd_open_fd(afd, FDLIST_FLAGS_READ|FDLIST_FLAGS_WRITE, acptr->c_connptr) < 0) { queue_delete(&(acptr->c_queue_out)); queue_delete(&(acptr->c_queue_in)); @@ -5235,12 +5232,12 @@ send_prefix_to_client(meptr, pptr, IRCD_REPLY(RPL_TRACEOPERATOR, pptr->name), acptr->c_class->classname, - ircd_clientname(acptr, 0, cnamebuf)); + ircd_clientname(acptr, 0, cnamebuf), acptr->c_ipstring); else send_prefix_to_client(meptr, pptr, IRCD_REPLY(RPL_TRACEUSER, pptr->name), acptr->c_class->classname, - ircd_clientname(acptr, 0, cnamebuf)); + ircd_clientname(acptr, 0, cnamebuf), acptr->c_ipstring); } else if (IsServer(acptr)) { @@ -5273,21 +5270,21 @@ send_prefix_to_client(meptr, pptr, IRCD_REPLY(RPL_TRACEOPERATOR, pptr->name), acptr->c_class->classname, - ircd_clientname(acptr, 0, cnamebuf)); + ircd_clientname(acptr, 0, cnamebuf), acptr->c_ipstring); } else if (IsAnOper(pptr)) { send_prefix_to_client(meptr, pptr, IRCD_REPLY(RPL_TRACEUSER, pptr->name), acptr->c_class->classname, - ircd_clientname(acptr, 0, cnamebuf)); + ircd_clientname(acptr, 0, cnamebuf), acptr->c_ipstring); } } else if (IsUnknown(acptr) && IsAnOper(pptr)) { send_prefix_to_client(meptr, pptr, IRCD_REPLY(RPL_TRACEUNKNOWN, pptr->name), - acptr->c_class ? acptr->c_class->classname : "unknown", ircd_clientname(acptr, 0, cnamebuf)); + acptr->c_class ? acptr->c_class->classname : "unknown", ircd_clientname(acptr, 0, cnamebuf), acptr->c_ipstring); } } if (IsAnOper(pptr)) diff -uNrd -x CVS ircd-comstud-1.12-REL/lib/conf.c ircd-devel/lib/conf.c --- ircd-comstud-1.12-REL/lib/conf.c Wed Nov 8 00:54:49 2000 +++ ircd-devel/lib/conf.c Tue Dec 5 12:37:09 2000 @@ -22,9 +22,8 @@ #include "ircd_includes.h" #include "conf.h" -#include "../confparse/configparse.h" +#include "confparse.h" #include "commands.h" -#include "access.h" RCSID("$Id: conf.c,v 1.17 1999/02/21 22:34:39 cbehrens Exp $"); @@ -238,10 +237,7 @@ ce->ce_fileptr->cf_filename, ce->ce_varlinenum); continue; } - if (!strcasecmp(flagname, "checkhostname")) - flags |= ALLOW_FLAGS_CHECKHOSTNAME; - else - syslog(LOG_NOTICE, + syslog(LOG_NOTICE, "%s:%i: unknown flag", ce->ce_fileptr->cf_filename, ce2->ce_varlinenum); } @@ -309,7 +305,7 @@ static int _conf_class(IRCDCONF *conf, CONFIGENTRY *ce) { - IRCD_CLASSENTRY class; + IRCD_CLASSENTRY class, *ceptr; int ret; CONFIGENTRY *ce2; @@ -356,7 +352,44 @@ for(ce=ce->ce_entries;ce;ce=ce->ce_next) { - if (!strcasecmp(ce->ce_varname, "maxsendq")) + + if (!strcasecmp(ce->ce_varname, "inherit")) + { + if (!ce->ce_vardata || !*ce->ce_vardata) + { + syslog(LOG_NOTICE, + "%s:%i: no inherit specified", + ce->ce_fileptr->cf_filename, ce->ce_varlinenum); + continue; + } + + ret = class_find(&(_ircd_conf.classes), ce->ce_vardata, &ceptr); + + if (ret < 0) + { + syslog(LOG_NOTICE, + "%s:%i: could not find classname", + ce->ce_fileptr->cf_filename, ce->ce_varlinenum); + continue; + } + + class.maxsendq = ceptr->maxsendq; + class.pingfreq = ceptr->pingfreq; + class.connfreq = ceptr->connfreq; + class.maxclients = ceptr->maxclients; + class.flags = ceptr->flags; + class.floodnum = ceptr->floodnum; + class.floodtime = ceptr->floodtime; + class.floodexit = ceptr->floodexit; + class.uhlimit = ceptr->uhlimit; + class.hlimit = ceptr->hlimit; + class.uvlimit = ceptr->uvlimit; + class.vlimit = ceptr->vlimit; + class.ipaddr_rate_time = ceptr->ipaddr_rate_time; + class.ipaddr_rate_num = ceptr->ipaddr_rate_num; + class.maxchannels = ceptr->maxchannels; + } + else if (!strcasecmp(ce->ce_varname, "maxsendq")) { if (!ce->ce_vardata) { @@ -1807,7 +1840,7 @@ if (!l->l_num_on) { del_listener_from_llist(lptr, l); - ircd_close_fd(&(l->l_connptr->fdlistinfo)); + ircd_close_fd(l->l_connptr->fd); MyFree(l->l_connptr); MyFree(l); } @@ -1848,7 +1881,7 @@ l->l_connptr->conn_type = IRCD_CONN_TYPE_LISTENER; l->l_connptr->conn_ptr = (void *)l; - if ((ret = ircd_open_fd(fd, FDLIST_FLAGS_READ, l->l_connptr, NULL)) < 0) + if ((ret = ircd_open_fd(fd, FDLIST_FLAGS_READ, l->l_connptr)) < 0) { close(fd); MyFree(l->l_connptr); @@ -2196,21 +2229,10 @@ pptr->username, pptr->c_ipstring, pptr->c_rem_ipaddr, ACCESS_FLAGS_BESTMATCH, &entryptr); - if (strcmp(pptr->c_ipstring, pptr->hostname) && - ((ret < 0) || (entryptr->flags & ALLOW_FLAGS_CHECKHOSTNAME))) - { - CONFHOSTIPENTRY *eptr; - int r; - - r = access_match_hostname(&(_ircd_conf.allow), + if ((ret < 0) && strcmp(pptr->c_ipstring, pptr->hostname)) + ret = access_match_hostname(&(_ircd_conf.allow), pptr->username, pptr->hostname, ACCESS_FLAGS_BESTMATCH, - &eptr); - if (!r) - { - entryptr = eptr; - ret = r; - } - } + &entryptr); /* FIX...check pptr->res_req->rl_reverse aliases also */ @@ -2224,6 +2246,11 @@ if (err) *err = ret; return -1; + } + + if (entryptr->data && pptr->c_passwd && strcmp(entryptr->data, pptr->c_passwd)) + { + return -8; } if (entryptr->classptr) diff -uNrd -x CVS ircd-comstud-1.12-REL/lib/confparse.c ircd-devel/lib/confparse.c --- ircd-comstud-1.12-REL/lib/confparse.c Wed Dec 31 19:00:00 1969 +++ ircd-devel/lib/confparse.c Tue Dec 5 12:23:14 2000 @@ -0,0 +1,418 @@ +/* +** Generic Config file parser (confparse.c) +** Copyright (C) 1999 Fred Jacobs, Chris Behrens +** +** 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 1, or (at your option) +** any later version. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with this program; if not, write to the Free Software +** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +/* +** The idea of something this generic came solely from Fred Jacobs. +** I completely rewrote his implementation, however, although some +** pieces remain similar. Thank you very much, Fred! :) +** - Chris +*/ + +#include "ircd_includes.h" +#include "confparse.h" + +RCSID("$Id: confparse.c,v 1.2 2000/11/10 07:49:31 humble Exp $"); + +static void config_error(char *format, ...); +static CONFIGFILE *config_parse(char *filename, char *confdata); +static void config_entry_free(CONFIGENTRY *ceptr); + +static void config_error(char *format, ...) +{ + va_list ap; + char buffer[1024]; + char *ptr; + + va_start(ap, format); + vsprintf(buffer, format, ap); + va_end(ap); + if ((ptr = strchr(buffer, '\n')) != NULL) + *ptr = '\0'; + syslog(LOG_NOTICE, "%s", buffer); +} + +static CONFIGFILE *config_parse(char *filename, char *confdata) +{ + char *ptr; + char *start; + int linenumber = 1; + CONFIGENTRY *curce; + CONFIGENTRY **lastce; + CONFIGENTRY *cursection; + + CONFIGFILE *curcf; + CONFIGFILE *lastcf; + + lastcf = curcf = (CONFIGFILE *)MyMalloc(sizeof(CONFIGFILE)); + memset(curcf, 0, sizeof(CONFIGFILE)); + curcf->cf_filename = MyStrdup(filename); + lastce = &(curcf->cf_entries); + curce = NULL; + cursection = NULL; + for(ptr=confdata;*ptr;ptr++) + { + switch(*ptr) + { + case ';': + if (!curce) + { + config_error("%s:%i Ignoring extra semicolon\n", + filename, linenumber); + break; + } + if (!strcmp(curce->ce_varname, "include")) + { + CONFIGFILE *cfptr; + + if (!curce->ce_vardata) + { + config_error("%s:%i Ignoring \"include\": No filename given\n", + filename, linenumber); + config_entry_free(curce); + curce = NULL; + continue; + } + if (strlen(curce->ce_vardata) > 255) + curce->ce_vardata[255] = '\0'; + cfptr = config_load(curce->ce_vardata); + if (cfptr) + { + lastcf->cf_next = cfptr; + lastcf = cfptr; + } + config_entry_free(curce); + curce = NULL; + continue; + } + *lastce = curce; + lastce = &(curce->ce_next); + curce->ce_fileposend = (ptr - confdata); + curce = NULL; + break; + case '{': + if (!curce) + { + config_error("%s:%i: No name for section start\n", + filename, linenumber); + continue; + } + else if (curce->ce_entries) + { + config_error("%s:%i: Ignoring extra section start\n", + filename, linenumber); + continue; + } + curce->ce_sectlinenum = linenumber; + lastce = &(curce->ce_entries); + cursection = curce; + curce = NULL; + break; + case '}': + if (curce) + { + config_error("%s:%i: Missing semicolon before close brace\n", + filename, linenumber); + config_entry_free(curce); + config_free(curcf); + return NULL; + } + else if (!cursection) + { + config_error("%s:%i: Ignoring extra close brace\n", + filename, linenumber); + continue; + } + curce = cursection; + cursection->ce_fileposend = (ptr - confdata); + cursection = cursection->ce_prevlevel; + if (!cursection) + lastce = &(curcf->cf_entries); + else + lastce = &(cursection->ce_entries); + for(;*lastce;lastce = &((*lastce)->ce_next)) + continue; + break; + case '/': + if (*(ptr+1) == '/') + { + ptr += 2; + while(*ptr && (*ptr != '\n')) + ptr++; + if (!*ptr) + break; + ptr--; /* grab the \n on next loop thru */ + continue; + } + else if (*(ptr+1) == '*') + { + int commentstart = linenumber; + + for(ptr+=2;*ptr;ptr++) + { + if ((*ptr == '*') && (*(ptr+1) == '/')) + { + ptr++; + break; + } + else if (*ptr == '\n') + linenumber++; + } + if (!*ptr) + { + config_error("%s:%i Comment on this line does not end\n", + filename, commentstart); + config_entry_free(curce); + config_free(curcf); + return NULL; + } + } + break; + case '\"': + start = ++ptr; + for(;*ptr;ptr++) + { + if ((*ptr == '\\') && (*(ptr+1) == '\"')) + { + char *tptr = ptr; + while((*tptr = *(tptr+1))) + tptr++; + } + else if ((*ptr == '\"') || (*ptr == '\n')) + break; + } + if (!*ptr || (*ptr == '\n')) + { + config_error("%s:%i: Unterminated quote found\n", + filename, linenumber); + config_entry_free(curce); + config_free(curcf); + return NULL; + } + if (curce) + { + if (curce->ce_vardata) + { + config_error("%s:%i: Ignoring extra data\n", + filename, linenumber); + } + else + { + curce->ce_vardata = (char *)MyMalloc(ptr-start+1); + strncpy(curce->ce_vardata, start, ptr-start); + curce->ce_vardata[ptr-start] = '\0'; + curce->ce_vardatanum = atoi(curce->ce_vardata); + } + } + else + { + curce = (CONFIGENTRY *)MyMalloc(sizeof(CONFIGENTRY)); + memset(curce, 0, sizeof(CONFIGENTRY)); + curce->ce_varname = (char *)MyMalloc(ptr-start+1); + strncpy(curce->ce_varname, start, ptr-start); + curce->ce_varname[ptr-start] = '\0'; + curce->ce_varlinenum = linenumber; + curce->ce_fileptr = curcf; + curce->ce_prevlevel = cursection; + curce->ce_fileposstart = (start - confdata); + } + break; + case '\n': + linenumber++; + if (*(ptr+1) == '#') + { + ptr += 2; + while(*ptr && (*ptr != '\n')) + ptr++; + if (*ptr == '\n') + { + ptr--; + continue; + } + } + /* fall through */ + case '\t': + case ' ': + case '\r': + break; + default: + if ((*ptr == '*') && (*(ptr+1) == '/')) + { + config_error("%s:%i Ignoring extra end comment\n", + filename, linenumber); + ptr++; + break; + } + start = ptr; + for(;*ptr;ptr++) + { + if ((*ptr == ' ') || (*ptr == '\t') || (*ptr == '\n') || (*ptr == ';')) + break; + } + if (!*ptr) + { + if (curce) + config_error("%s: Unexpected EOF for variable starting at %i\n", + filename, curce->ce_varlinenum); + else if (cursection) + config_error("%s: Unexpected EOF for section starting at %i\n", + filename, curce->ce_sectlinenum); + else + config_error("%s: Unexpected EOF.\n", filename); + config_entry_free(curce); + config_free(curcf); + return NULL; + } + if (curce) + { + if (curce->ce_vardata) + { + config_error("%s:%i: Ignoring extra data\n", + filename, linenumber); + } + else + { + curce->ce_vardata = (char *)MyMalloc(ptr-start+1); + strncpy(curce->ce_vardata, start, ptr-start); + curce->ce_vardata[ptr-start] = '\0'; + curce->ce_vardatanum = atoi(curce->ce_vardata); + } + } + else + { + curce = (CONFIGENTRY *)MyMalloc(sizeof(CONFIGENTRY)); + memset(curce, 0, sizeof(CONFIGENTRY)); + curce->ce_varname = (char *)MyMalloc(ptr-start+1); + strncpy(curce->ce_varname, start, ptr-start); + curce->ce_varname[ptr-start] = '\0'; + curce->ce_varlinenum = linenumber; + curce->ce_fileptr = curcf; + curce->ce_prevlevel = cursection; + curce->ce_fileposstart = (start - confdata); + } + if ((*ptr == ';') || (*ptr == '\n')) + ptr--; + break; + } /* switch */ + } /* for */ + if (curce) + { + config_error("%s: Unexpected EOF for variable starting on line %i\n", + filename, curce->ce_varlinenum); + config_entry_free(curce); + config_free(curcf); + return NULL; + } + else if (cursection) + { + config_error("%s: Unexpected EOF for section starting on line %i\n", + filename, cursection->ce_sectlinenum); + config_free(curcf); + return NULL; + } + return curcf; +} + +static void config_entry_free(CONFIGENTRY *ceptr) +{ + CONFIGENTRY *nptr; + + for(;ceptr;ceptr=nptr) + { + nptr = ceptr->ce_next; + if (ceptr->ce_entries) + config_entry_free(ceptr->ce_entries); + if (ceptr->ce_varname) + MyFree(ceptr->ce_varname); + if (ceptr->ce_vardata) + MyFree(ceptr->ce_vardata); + MyFree(ceptr); + } +} + +void config_free(CONFIGFILE *cfptr) +{ + CONFIGFILE *nptr; + + for(;cfptr;cfptr=nptr) + { + nptr = cfptr->cf_next; + if (cfptr->cf_entries) + config_entry_free(cfptr->cf_entries); + if (cfptr->cf_filename) + MyFree(cfptr->cf_filename); + MyFree(cfptr); + } +} + +CONFIGFILE *config_load(char *filename) +{ + struct stat sb; + int fd; + int ret; + char *buf = NULL; + CONFIGFILE *cfptr; + + fd = open(filename, O_RDONLY); + if (fd == -1) + { + config_error("Couldn't open \"%s\": %i\n", filename, errno); + return NULL; + } + if (fstat(fd, &sb) == -1) + { + config_error("Couldn't fstat \"%s\": %i\n", filename, errno); + close(fd); + return NULL; + } + if (!sb.st_size) + { + close(fd); + return NULL; + } + buf = (char *)MyMalloc(sb.st_size+1); + if (buf == NULL) + { + config_error("Out of memory trying to load \"%s\"\n", filename); + close(fd); + return NULL; + } + ret = read(fd, buf, sb.st_size); + if (ret != sb.st_size) + { + config_error("Error reading \"%s\": %i\n", filename, + ret == -1 ? errno : EFAULT); + MyFree(buf); + close(fd); + return NULL; + } + buf[ret] = '\0'; + close(fd); + cfptr = config_parse(filename, buf); + MyFree(buf); + return cfptr; +} + +CONFIGENTRY *config_find(CONFIGENTRY *ceptr, char *name) +{ + for(;ceptr;ceptr=ceptr->ce_next) + if (!strcmp(ceptr->ce_varname, name)) + break; + return ceptr; +} + diff -uNrd -x CVS ircd-comstud-1.12-REL/lib/fdlist.c ircd-devel/lib/fdlist.c --- ircd-comstud-1.12-REL/lib/fdlist.c Mon Jun 14 17:42:44 1999 +++ ircd-devel/lib/fdlist.c Sun Dec 10 06:50:38 2000 @@ -22,182 +22,56 @@ RCSID("$Id: fdlist.c,v 1.6 1999/02/03 01:14:07 cbehrens Exp $"); -int fdlist_add_fd(FDLIST *fdlist, int fd, int flags) -{ - int n; - - if (!fdlist || (fd < 0) || - !(flags & (FDLIST_FLAGS_READ|FDLIST_FLAGS_WRITE))) - { - return -EINVAL; - } - if ((n=fdlist->pfd_num) == fdlist->pfd_size) - { - void *ptr; +extern struct kevent *kqchange; +extern int kqchangesize; +extern int kqchangepos; - fdlist->pfd_size += 16; - ptr = realloc(fdlist->pfd_array, - fdlist->pfd_size * sizeof(FDLIST_POLLFD)); - if (!ptr) - { - fdlist->pfd_size -= 16; - return -ENOMEM; - } - fdlist->pfd_array = (FDLIST_POLLFD *)ptr; - } - fdlist->pfd_array[n].fd = fd; - fdlist->pfd_array[n].revents = 0; - fdlist->pfd_array[n].events = 0; - if (flags & FDLIST_FLAGS_READ) - fdlist->pfd_array[n].events |= POLLIN; - if (flags & FDLIST_FLAGS_WRITE) - fdlist->pfd_array[n].events |= POLLOUT; - return fdlist->pfd_num++; +struct kevent *fdlist_kqueue_increase(struct kevent *kq, int kqsize) +{ + return (struct kevent *)MyRealloc(kq, kqsize * sizeof(struct kevent)); } -int fdlist_del_fd(FDLIST *fdlist, int pos, int *mfd) +static int _fdlist_event(IRCD_CONN *cptr, int flags, int filter) { - int n; + struct kevent *kv; - if (!fdlist || (pos > (n = fdlist->pfd_num)) || (pos < 0)) - { - return -EINVAL; - } - if (mfd) - *mfd = -1; - if ((--fdlist->pfd_num) && (n-1 != pos)) + if (kqchangesize < kqchangepos + 64) { - BCOPY(&(fdlist->pfd_array[n-1]), &(fdlist->pfd_array[pos]), - sizeof(FDLIST_POLLFD)); - if (mfd) - *mfd = fdlist->pfd_array[pos].fd; + kqchangesize += 64; + if ((kqchange = fdlist_kqueue_increase(kqchange, kqchangesize)) == NULL) + return -ENOMEM; } - return fdlist->pfd_num; -} - -int fdlist_add_event(FDLIST *fdlist, int pos, int flags) -{ - if (!fdlist || (pos > fdlist->pfd_num) || (pos < 0)) - return -EINVAL; - if (flags & FDLIST_FLAGS_READ) - fdlist->pfd_array[pos].events |= POLLIN; - if (flags & FDLIST_FLAGS_WRITE) - fdlist->pfd_array[pos].events |= POLLOUT; - return fdlist->pfd_array[pos].events; -} - -int fdlist_del_event(FDLIST *fdlist, int pos, int flags) -{ - if (!fdlist || (pos > fdlist->pfd_num) || (pos < 0)) - return -EINVAL; - if (flags & FDLIST_FLAGS_READ) - fdlist->pfd_array[pos].events &= ~POLLIN; - if (flags & FDLIST_FLAGS_WRITE) - fdlist->pfd_array[pos].events &= ~POLLOUT; - return fdlist->pfd_array[pos].events; -} - -int fdlist_set_events(FDLIST *fdlist, int pos, int flags) -{ - if (!fdlist || (pos > fdlist->pfd_num) || (pos < 0) || !flags) - return -EINVAL; - fdlist->pfd_array[pos].events = 0; - if (flags & FDLIST_FLAGS_READ) - fdlist->pfd_array[pos].events |= POLLIN; - if (flags & FDLIST_FLAGS_WRITE) - fdlist->pfd_array[pos].events |= POLLOUT; - return fdlist->pfd_array[pos].events; -} - -int fdlist_get_events(FDLIST *fdlist, int pos) -{ - int flags = 0; - if (!fdlist || (pos > fdlist->pfd_num) || (pos < 0)) - return -EINVAL; - if (fdlist->pfd_array[pos].events & POLLIN) - flags |= FDLIST_FLAGS_READ; - if (fdlist->pfd_array[pos].events & POLLOUT) - flags |= FDLIST_FLAGS_WRITE; - return flags; -} - - -#if 0 + kv = kqchange + kqchangepos++; -int fdlist_add_fd(FDLIST *fdlist, int fd, int flags) -{ - if (!fdlist || (fd < 0) || - !(flags & (FDLIST_FLAGS_READ|FDLIST_FLAGS_WRITE))) - return -EINVAL; - if (fd < fdlist->lowest_fd) - fdlist->lowest_fd = fd; - if (flags & FDLIST_FLAGS_READ) - FD_SET(fd, &fdlist->read_fds); - if (flags & FDLIST_FLAGS_WRITE) - FD_SET(fd, &fdlist->write_fds); - fdlist->pfd_num++; - return fd; -} + kv->ident = cptr->fd; + kv->flags = flags; + kv->filter = filter; + kv->fflags = 0; + kv->data = NULL; + kv->udata = cptr; -int fdlist_del_fd(FDLIST *fdlist, int fd, int *mfd) -{ - if (!fdlist || (fd < 0)) - return -EINVAL; - if (mfd) - *mfd = -1; - FD_CLR(fd, &fdlist->read_fds); - FD_CLR(fd, &fdlist->write_fds); - fdlist->pfd_num--; return 0; } -int fdlist_add_event(FDLIST *fdlist, int fd, int flags) -{ - if (!fdlist || (fd < 0)) - return -EINVAL; - if (flags & FDLIST_FLAGS_READ) - FD_SET(fd, &fdlist->read_fds); - if (flags & FDLIST_FLAGS_WRITE) - FD_SET(fd, &fdlist->write_fds); - return 0; -} - -int fdlist_del_event(FDLIST *fdlist, int fd, int flags) +int fdlist_add_event(IRCD_CONN *cptr, int flags) { - if (!fdlist || (fd < 0)) - return -EINVAL; - if (flags & FDLIST_FLAGS_READ) - FD_CLR(fd, &fdlist->read_fds); - if (flags & FDLIST_FLAGS_WRITE) - FD_CLR(fd, &fdlist->write_fds); - return 0; -} + if (flags & FDLIST_FLAGS_READ) + _fdlist_event(cptr, EV_ADD, EVFILT_READ); + + if (flags & FDLIST_FLAGS_WRITE) + _fdlist_event(cptr, EV_ADD, EVFILT_WRITE); -int fdlist_set_events(FDLIST *fdlist, int fd, int flags) -{ - if (!fdlist || (fd < 0) || !flags) - return -EINVAL; - FD_CLR(fd, &fdlist->read_fds); - FD_CLR(fd, &fdlist->write_fds); - if (flags & FDLIST_FLAGS_READ) - FD_SET(fd, &fdlist->read_fds); - if (flags & FDLIST_FLAGS_WRITE) - FD_SET(fd, &fdlist->write_fds); return 0; } -int fdlist_get_events(FDLIST *fdlist, int fd) +int fdlist_del_event(IRCD_CONN *cptr, int flags) { - int flags = 0; + if (flags & FDLIST_FLAGS_READ) + _fdlist_event(cptr, EV_DELETE, EVFILT_READ); + + if (flags & FDLIST_FLAGS_WRITE) + _fdlist_event(cptr, EV_DELETE, EVFILT_WRITE); - if (!fdlist || (fd < 0)) - return -EINVAL; - if (FD_ISSET(fd, &fdlist->read_fds)) - flags |= FDLIST_FLAGS_READ; - if (FD_ISSET(fd, &fdlist->write_fds)) - flags |= FDLIST_FLAGS_WRITE; - return flags; + return 0; } - -#endif /* 0 */ diff -uNrd -x CVS ircd-comstud-1.12-REL/lib/ircd.c ircd-devel/lib/ircd.c --- ircd-comstud-1.12-REL/lib/ircd.c Mon Oct 23 01:13:04 2000 +++ ircd-devel/lib/ircd.c Sun Dec 10 08:39:31 2000 @@ -26,7 +26,6 @@ RCSID("$Id: ircd.c,v 1.34 1999/02/23 07:57:20 cbehrens Exp $"); - typedef struct _ircd_data IRCD_DATA; struct _ircd_data @@ -36,12 +35,6 @@ /* LEAVE THE ABOVE 3 FIRST AND NEVER CHANGE !!! */ int ircd_pagesize; - int Fdlist_num; - FDLIST *Fdlist_main; - FDLIST *Fdlist_clients; - int *Fdlist_lasttime; - IRCD_CONN **Fds; /* for easy fd -> client lookup */ - int Fds_size; IRCD_CLIENT *Locals; IRCD_AUTH *Auths; IRCD_CLIENT **Clients; @@ -52,9 +45,8 @@ GLOBALSTATS *Globalinfo; IRCD_REJECTHOLD *Rejectholds; IRCD_MOTD *Motd; - int Sendbuffersize; - int Recvbuffersize; + int Fds_size; unsigned int *Sentalong; unsigned int Sentalong_marker; unsigned int *Sentalong_end; @@ -96,14 +88,9 @@ int Auths_did_delete = 0; int Flooders_did_delete = 0; -int Fdlist_num = 100; char *Conffile; +int Fds_size; int ircd_pagesize; -FDLIST *Fdlist_main; -static FDLIST *Fdlist_clients; -static int *Fdlist_lasttime; -int Fds_size; -IRCD_CONN **Fds; /* for easy fd -> client lookup */ IRCDRES_REQLIST *Reqlist = NULL; IRCD_CLIENT *Locals = NULL; /* local clients */ IRCD_AUTH *Auths = NULL; @@ -115,8 +102,6 @@ GLOBALSTATS *Globalinfo; IRCD_REJECTHOLD *Rejectholds = NULL; IRCD_MOTD *Motd = NULL; -int Sendbuffersize = 0; -int Recvbuffersize = 0; unsigned int *Sentalong; unsigned int Sentalong_marker; unsigned int *Sentalong_end; @@ -132,14 +117,19 @@ int Rehashed = 0; int Autoconncheck = 0; int DoReload = 0; - +int kqsock; +int Fds_size; static char *ircdcore_versionstring; static int *ircdcore_data_format_version; static char **ircdcore_data; static int *ircdcore_data_size; -static FDLIST_POLLFD *_pfdarray = NULL; -static int _pfdarray_size = 0; + +struct kevent *kqchange = NULL; +struct kevent *kqevent = NULL; +int kqchangesize = 0; +int kqchangepos = 0; +int kqeventsize = 0; char _ircdso_versionstring[] = VERSION; int _ircdso_version = 1; @@ -147,7 +137,7 @@ static RETSIGTYPE _ircd_sighup_handler(int sig); static int _auth_process(IRCD_AUTH *aptr); -static int _ircd_pollfds(FDLIST *fdlist, int secs); +static int _ircd_pollfds(int kqsock, int secs); static void flood_check(void); static void dns_check(void); static void auth_check(void); @@ -228,121 +218,140 @@ return 0; } -static int _ircd_pollfds(FDLIST *fdlist, int secs) +static void _ircd_accept_listener(IRCD_CONN *cptr, int backlog) +{ + IRCD_LISTENER *lptr = (IRCD_LISTENER *)cptr->conn_ptr; + struct sockaddr_in sin; + int sinsize = sizeof(sin); + int ipaddr; + int i, ret; + + for(i=0;ifd, (struct sockaddr *)&sin, &sinsize)) < 0) + return; + lptr->l_lasttime = Now; + ipaddr = ntohl(sin.sin_addr.s_addr); + if (iphash_handle_accept(ipaddr)) + { + int num; + + if ((num=(int)vars_value_get_bynum(IRCD_VAR_REJECT_HOLD)) > 0) + if (client_add_rejecthold(ret, &sin) >= 0) + return; + close(ret); + return; + } + + if (!access_match_ipaddr(&(_ircd_conf.deny), NULL, NULL, ipaddr, 0, NULL)) + { + DEBUG(DEBUG_ALL, ("denying accept from %s\n", inet_ntoa(sin.sin_addr))); + close(ret); + } + else if (client_add_local(lptr, ret, &sin) < 0) + close(ret); + } + + return; +} + +static IRCD_CONN *_ircd_client_dead(IRCD_CONN *cptr, char *reason) +{ + IRCD_CONN *tmp; + + if (!IsAuth(cptr)) + { + conn_del(meptr, cptr, reason); + return NULL; + } + + /* auth is done. */ + tmp = ((IRCD_AUTH *)cptr->conn_ptr)->a_clptr->c_connptr; + conn_del(meptr, cptr, reason); + return tmp; +} + +static int _ircd_pollfds(int kqsock, int secs) { register int i; - int numfds; int ret; - int nfds; + int events; static char readbuf[1024*64]; static int readbufsize = 1024*64; IRCD_CONN *cptr; char exitbuf[512]; + struct timespec timeout = { secs, 0 }; - if (!fdlist->pfd_num) + if (!Fds_size) return 0; - if (fdlist->pfd_num > _pfdarray_size) + if (Fds_size > kqeventsize) { - FDLIST_POLLFD *tmp; - - _pfdarray_size = fdlist->pfd_num + 64; - tmp = (FDLIST_POLLFD *)MyRealloc(_pfdarray, - _pfdarray_size * sizeof(FDLIST_POLLFD)); - if (!tmp) + kqeventsize = Fds_size + 1024; + kqevent = fdlist_kqueue_increase(kqevent, kqeventsize); + if (kqevent == NULL) return -ENOMEM; - _pfdarray = tmp; } - BCOPY(fdlist->pfd_array, _pfdarray, sizeof(FDLIST_POLLFD)*fdlist->pfd_num); - numfds = fdlist->pfd_num; - - nfds = poll(_pfdarray, numfds, secs*1000); + events = kevent(kqsock, kqchange, kqchangepos, kqevent, kqeventsize, &timeout); + kqchangepos = 0; Now = time(NULL); - if (nfds < 0) /* lets return on EINTR/EAGAIN also */ - { - return nfds; - } - for(i=0;nfds && iconn_lasttime = Now; - if (IsRes(cptr)) + + if (kqevent[i].flags == EV_EOF) { - (void)ircdres_get_answer((IRCDRES *)cptr->conn_ptr); - continue; + cptr = _ircd_client_dead(cptr, "EOF of client"); + if (cptr == NULL) + continue; } - if (_pfdarray[i].revents & ~(POLLIN|POLLOUT)) /* some error */ - _pfdarray[i].revents |= POLLIN; /* will close() upon read()*/ - if (_pfdarray[i].revents & POLLIN) + else if (kqevent[i].flags == EV_ERROR) { - if (IsListener(cptr)) - { - IRCD_LISTENER *lptr = (IRCD_LISTENER *)cptr->conn_ptr; - struct sockaddr_in sin; - int sinsize = sizeof(sin); - int ipaddr; - - ret = accept(cptr->fdlistinfo.fd, - (struct sockaddr *)&sin, &sinsize); - if (ret < 0) - continue; - lptr->l_lasttime = Now; - ipaddr = ntohl(sin.sin_addr.s_addr); - if (iphash_handle_accept(ipaddr)) - { - int num; + if (kqevent[i].data == EBADF) + continue; - if ((num=(int)vars_value_get_bynum(IRCD_VAR_REJECT_HOLD)) > 0) - { - if (client_add_rejecthold(ret, &sin) >= 0) - continue; - } - close(ret); - continue; - } + cptr = _ircd_client_dead(cptr, "kqueue failure"); + if (cptr == NULL) + continue; + } - if (!access_match_ipaddr(&(_ircd_conf.deny), - NULL, NULL, ipaddr, 0, NULL)) - { - DEBUG(DEBUG_ALL, ("denying accept from %s\n", - inet_ntoa(sin.sin_addr))); - close(ret); - } - else if (client_add_local(lptr, ret, &sin) < 0) - close(ret); + if (kqevent[i].filter == EVFILT_READ) + { + if (IsRes(cptr)) + { + (void)ircdres_get_answer((IRCDRES *)cptr->conn_ptr); continue; } - ret = read(cptr->fdlistinfo.fd, readbuf, readbufsize-1); - if ((ret < 0) && - ((errno == EAGAIN) || (errno == EINTR) - || (errno == EWOULDBLOCK))) + if (IsListener(cptr)) + { + _ircd_accept_listener(cptr, kqevent[i].data); continue; + } + + ret = read(cptr->fd, readbuf, readbufsize-1); + + if ((ret < 0) && ((errno == EAGAIN) || (errno == EINTR) || (errno == EWOULDBLOCK))) + continue; + if (ret <= 0) { - IRCD_CONN *cptrkeep; - if (ret == 0) sprintf(exitbuf, "EOF of client"); else sprintf(exitbuf, "Read error %i: %s", errno, (errno == 0) ? "Undefined error" : support_strerror(errno)); - if (!IsAuth(cptr)) - { - conn_del(meptr, cptr, exitbuf); + + cptr = _ircd_client_dead(cptr, exitbuf); + if (cptr == NULL) continue; - } - /* auth is done. */ - cptrkeep = ((IRCD_AUTH *)cptr->conn_ptr)->a_clptr->c_connptr; - conn_del(meptr, cptr, exitbuf); - cptr = cptrkeep; /* fall through to the ircd_parse */ + if ((int)vars_value_get_bynum(IRCD_VAR_SHOW_HEADERS)) - send_to_client((IRCD_CLIENT *)cptr->conn_ptr, "NOTICE * :*** Ident request failed."); + send_to_client((IRCD_CLIENT *)cptr->conn_ptr, "NOTICE AUTH :*** Ident request failed."); } else readbuf[ret] = '\0'; @@ -364,17 +373,16 @@ Globalinfo->bw_c_incoming_bytes += ret; if (_auth_process(aptr) < 0) - { continue; - } + if (sh) - send_to_client((IRCD_CLIENT *)cptrkeep->conn_ptr, "NOTICE * :*** Ident reply received."); + send_to_client((IRCD_CLIENT *)cptrkeep->conn_ptr, "NOTICE AUTH :*** Ident reply received."); conn_del(meptr, cptr, "Auth Done."); } else { if (sh) - send_to_client((IRCD_CLIENT *)cptrkeep->conn_ptr, "NOTICE * :*** Ident request failed: add2queue failed."); + send_to_client((IRCD_CLIENT *)cptrkeep->conn_ptr, "NOTICE AUTH :*** Ident request failed: add2queue failed."); conn_del(meptr, cptr, "Couldn't add to RecvQ"); } cptr = cptrkeep; /* fall through to the ircd_parse */ @@ -435,7 +443,7 @@ } } } - if (_pfdarray[i].revents & POLLOUT) + else if (kqevent[i].filter == EVFILT_WRITE) { if (IsAuth(cptr)) { @@ -444,19 +452,22 @@ int len; int sh = (int)vars_value_get_bynum(IRCD_VAR_SHOW_HEADERS); + if (aptr == NULL) + continue; + if (sh) - send_to_client(aptr->a_clptr, "NOTICE * :*** Sending ident request..."); + send_to_client(aptr->a_clptr, "NOTICE AUTH :*** Sending ident request..."); sprintf(buffer, "%u , %u\r\n", (unsigned int)aptr->a_clptr->c_rem_port, (unsigned int)aptr->a_clptr->c_loc_port); len = strlen(buffer); - if (write(cptr->fdlistinfo.fd, buffer, len) != len) + if (write(cptr->fd, buffer, len) != len) { IRCD_CONN *cptrkeep = aptr->a_clptr->c_connptr; conn_del(meptr, cptr, "write error"); cptr = cptrkeep; /* fall through */ if (sh) - send_to_client((IRCD_CLIENT *)cptr->conn_ptr, "NOTICE * :*** Ident request failed."); + send_to_client((IRCD_CLIENT *)cptr->conn_ptr, "NOTICE AUTH :*** Ident request failed."); if (IsCClient(cptr)) { IRCD_CLIENT *clptr = (IRCD_CLIENT *)cptr->conn_ptr; @@ -476,9 +487,7 @@ } else { - fdlist_del_event(cptr->fdlistinfo.fdlist, - cptr->fdlistinfo.fdlist_pos, - FDLIST_FLAGS_WRITE); + fdlist_del_event(cptr, FDLIST_FLAGS_WRITE); continue; } } @@ -490,9 +499,7 @@ { clptr->c_flags &= ~CLIENT_FLAGS_DOINGCONNECT; if (!clptr->c_queue_out.queue_size) /* should be false */ - fdlist_del_event(cptr->fdlistinfo.fdlist, - cptr->fdlistinfo.fdlist_pos, - FDLIST_FLAGS_WRITE); + fdlist_del_event(cptr, FDLIST_FLAGS_WRITE); } if ((clptr->c_maxsendq != -1) && (clptr->c_queue_out.queue_size > clptr->c_maxsendq)) @@ -578,7 +585,7 @@ IRCD_CLIENT *clptr = aptr->a_clptr; if (sh) - send_to_client(clptr, "NOTICE * :*** Ident request failed: Timed out"); + send_to_client(clptr, "NOTICE AUTH :*** Ident request failed: Timed out"); auth_del(meptr, aptr, "Auth timeout."); if (!IsDoingDns(clptr)) { @@ -631,7 +638,7 @@ */ ircdres_request_del(pptr->c_res_req->rl_req, 0); if (sh) - send_to_client(pptr, "NOTICE * :*** %s DNS request failed: Timed out", + send_to_client(pptr, "NOTICE AUTH :*** %s DNS request failed: Timed out", type == T_PTR ? "Reverse" : "Forward"); pptr->c_res_req->rl_req = NULL; del_reqlist_from_list(&Reqlist, pptr->c_res_req); @@ -674,49 +681,6 @@ pptr->c_flags |= CLIENT_FLAGS_PINGSENT; } } - /* fdlist check */ - if (IsClient(pptr)) - { - int fdlistnum = Now - pptr->c_idletime; - FDLIST *fdlist = Fdlist_main; - int mfd; - int ret; - int flags; - int nfdlists; - int ptime; - - if (!IsAnOper(pptr) && ((nfdlists = (int)vars_value_get_bynum(IRCD_VAR_PRIORITY_FDLISTS)) > 0)) - { - ptime = (int)vars_value_get_bynum(IRCD_VAR_PRIORITY_IDLE); - fdlistnum /= ptime; - if (fdlistnum > 0) - { - fdlistnum--; - if (fdlistnum >= nfdlists) - fdlistnum = nfdlists - 1; - fdlist = &Fdlist_clients[fdlistnum]; - } - } - if (pptr->c_connptr->fdlistinfo.fdlist != fdlist) - { - flags = fdlist_get_events(pptr->c_connptr->fdlistinfo.fdlist, - pptr->c_connptr->fdlistinfo.fdlist_pos); - assert(flags); - ret = fdlist_del_fd(pptr->c_connptr->fdlistinfo.fdlist, - pptr->c_connptr->fdlistinfo.fdlist_pos, &mfd); - if (mfd >= 0) - { - if (GET_FDS(mfd)) - GET_FDS(mfd)->fdlistinfo.fdlist_pos = - pptr->c_connptr->fdlistinfo.fdlist_pos; - } - ret = ircd_open_fd(pptr->c_connptr->fdlistinfo.fd, flags, pptr->c_connptr, fdlist); - if (ret < 0) - { - client_del(meptr, pptr, "Fdlist problem"); - } - } - } } } @@ -881,9 +845,6 @@ static int _ircdso_firsttime(char *conf_file) { int ret; - register int i; - int opt; - int optlen; Ircd_zero_fd = open("/dev/zero", O_RDWR); if (Ircd_zero_fd < 0) @@ -892,64 +853,11 @@ exit(-1); } - if ((i = socket(AF_INET, SOCK_STREAM, 0)) < 0) - { - fprintf(stderr, "couldn't socket(): %i\n", -errno); - exit(-1); - } - - optlen = sizeof(opt); - if (getsockopt(i, SOL_SOCKET, SO_RCVBUF, (char *)&opt, &optlen) < 0) - { - fprintf(stderr, "couldn't getsockopt(): %i\n", -errno); - exit(-1); - } - - while(setsockopt(i, SOL_SOCKET, SO_RCVBUF, (char *)&opt, sizeof(opt)) >= 0) - { - opt += 1024; - if (opt > (64*1024)) - break; - } - - optlen = sizeof(opt); - if (getsockopt(i, SOL_SOCKET, SO_RCVBUF, (char *)&opt, &optlen) < 0) - { - fprintf(stderr, "couldn't getsockopt(): %i\n", -errno); - exit(-1); - } - - Recvbuffersize = opt; - - optlen = sizeof(opt); - if (getsockopt(i, SOL_SOCKET, SO_SNDBUF, (char *)&opt, &optlen) < 0) - { - fprintf(stderr, "couldn't getsockopt(): %i\n", -errno); - exit(-1); - } - - while(setsockopt(i, SOL_SOCKET, SO_SNDBUF, (char *)&opt, sizeof(opt)) >= 0) - { - opt += 1024; - if (opt > (64*1024)) - break; - } - - optlen = sizeof(opt); - if (getsockopt(i, SOL_SOCKET, SO_SNDBUF, (char *)&opt, &optlen) < 0) - { - fprintf(stderr, "couldn't getsockopt(): %i\n", -errno); - exit(-1); - } - - Sendbuffersize = opt; - close(i); Conffile = MyStrdup(conf_file); meptr = (IRCD_CLIENT *)MyMalloc(sizeof(IRCD_CLIENT)); Fds_size = 1024; - Fds = (IRCD_CONN **)MyMalloc(sizeof(IRCD_CONN *) * Fds_size); Sentalong_size = 1024; Sentalong = (int *)MyMalloc(sizeof(int) * Sentalong_size); Sentalong_marker = 0; @@ -961,11 +869,6 @@ Globalinfo->m_totclientstime = (int)time(NULL); Globalinfo->g_servers = 1; - Fdlist_num = 100; - Fdlist_main = (FDLIST *)MyMalloc(sizeof(FDLIST)); - Fdlist_clients = (FDLIST *)MyMalloc(sizeof(FDLIST) * Fdlist_num); - Fdlist_lasttime = (int *)MyMalloc(sizeof(int) * Fdlist_num); - Flooders = (IRCD_CLIENT **)MyMalloc(sizeof(IRCD_CLIENT *)); Clients = (IRCD_CLIENT **)MyMalloc(sizeof(IRCD_CLIENT *)); Opers = (IRCD_CLIENT **)MyMalloc(sizeof(IRCD_CLIENT *)); @@ -974,6 +877,12 @@ Ircd_resconn = (IRCD_CONN *)MyMalloc(sizeof(IRCD_CONN)); Ircd_resconn->conn_type = IRCD_CONN_TYPE_RES; + if ((kqsock = kqueue()) < 0) + { + fprintf(stderr, "Couldn't allocate a kqueue\n"); + exit(-1); + } + ret = ircdres_init((IRCDRES **)(&(Ircd_resconn->conn_ptr))); if (ret < 0) { @@ -981,7 +890,7 @@ exit(-1); } -#if 0 +#if 1 ircd_pagesize = ircd_getpagesize(); #else ircd_pagesize = 2*1024; @@ -990,17 +899,9 @@ vars_init(); numeric_init(); ircdconf_init(&_ircd_conf); - fdlist_init(Fdlist_main); - - for(i=0;iconn_ptr)->res_fd,FDLIST_FLAGS_READ, Ircd_resconn, NULL)<0) + if (ircd_open_fd(((IRCDRES *)Ircd_resconn->conn_ptr)->res_fd,FDLIST_FLAGS_READ, Ircd_resconn)<0) { fprintf(stderr, "Error putting resfd into fdlist\n"); exit(-1); @@ -1102,15 +1003,10 @@ { if (!Coreptr || (*ircdcore_data_size != sizeof(IRCD_DATA))) return -EFAULT; - Fdlist_num = Coreptr->Fdlist_num; Conffile = Coreptr->Conffile; ircd_pagesize = Coreptr->ircd_pagesize; - Fdlist_main = Coreptr->Fdlist_main; - Fdlist_clients = Coreptr->Fdlist_clients; - Fdlist_lasttime = Coreptr->Fdlist_lasttime; Ircd_resconn = Coreptr->Ircd_resconn; meptr = Coreptr->meptr; - Fds = Coreptr->Fds; Fds_size = Coreptr->Fds_size; Reqlist = Coreptr->ResReqlist; Locals = Coreptr->Locals; @@ -1123,8 +1019,6 @@ Globalinfo = Coreptr->Globalinfo; Rejectholds = Coreptr->Rejectholds; Motd = Coreptr->Motd; - Sendbuffersize = Coreptr->Sendbuffersize; - Recvbuffersize = Coreptr->Recvbuffersize; Sentalong = Coreptr->Sentalong; Sentalong_marker = Coreptr->Sentalong_marker; Sentalong_end = Coreptr->Sentalong_end; @@ -1165,19 +1059,11 @@ *ircdcore_data_size = sizeof(IRCD_DATA); *ircdcore_data_format_version = 0; - if (_pfdarray) - MyFree(_pfdarray); - ircdres_deinit_reload(&Coreptr->ResRequests); Coreptr->Conffile = Conffile; Coreptr->ircd_pagesize = ircd_pagesize; - Coreptr->Fdlist_num = Fdlist_num; - Coreptr->Fdlist_main = Fdlist_main; - Coreptr->Fdlist_clients = Fdlist_clients; - Coreptr->Fdlist_lasttime = Fdlist_lasttime; Coreptr->Ircd_resconn = Ircd_resconn; Coreptr->meptr = meptr; - Coreptr->Fds = Fds; Coreptr->Fds_size = Fds_size; Coreptr->ResReqlist = Reqlist; Coreptr->Locals = Locals; @@ -1190,8 +1076,6 @@ Coreptr->Globalinfo = Globalinfo; Coreptr->Rejectholds = Rejectholds; Coreptr->Motd = Motd; - Coreptr->Sendbuffersize = Sendbuffersize; - Coreptr->Recvbuffersize = Recvbuffersize; Coreptr->Sentalong = Sentalong; Coreptr->Sentalong_size = Sentalong_size; Coreptr->Sentalong_marker = Sentalong_marker; @@ -1230,8 +1114,6 @@ int *Data_size) { int ret; - FDLIST *curfdlist; - int i; if (!Data_format_version || !Data || !Data_size || !Ircdcore_versionstring) @@ -1255,7 +1137,6 @@ if (!firsttime) send_to_opers("ircd.so has been reloaded"); - curfdlist = Fdlist_main; for(;;) { if (DoRehash) @@ -1267,6 +1148,13 @@ if (DoReload) { + if (access("./ircd.so", R_OK) < 0) + { + send_to_opers("Unable to access ircd.so -- reload aborted"); + DoReload = 0; + continue; + } + ret = _ircdso_deinit(); if (ret < 0) @@ -1279,21 +1167,7 @@ } } - ret = _ircd_pollfds(curfdlist, 2); - - if (Now >= (Fdlist_lasttime[0] + (int)vars_value_get_bynum(IRCD_VAR_PRIORITY_LAG))) - { - _ircd_pollfds(&Fdlist_clients[0], 0); - Fdlist_lasttime[0] = Now; - for(i=1;i<(int)vars_value_get_bynum(IRCD_VAR_PRIORITY_FDLISTS);i++) - { - if (Now >= (Fdlist_lasttime[i] + ((i+1)*(int)vars_value_get_bynum(IRCD_VAR_PRIORITY_LAG)))) - { - _ircd_pollfds(&Fdlist_clients[i], 0); - Fdlist_lasttime[i] = Now; - } - } - } + ret = _ircd_pollfds(kqsock, 2); { static int lastcheck = 0; diff -uNrd -x CVS ircd-comstud-1.12-REL/lib/misc.c ircd-devel/lib/misc.c --- ircd-comstud-1.12-REL/lib/misc.c Thu Dec 7 04:26:32 2000 +++ ircd-devel/lib/misc.c Sun Dec 10 08:50:15 2000 @@ -218,17 +218,14 @@ _command_tree_add(cptr->command, cptr); } -int ircd_open_fd(int fd, int flags, IRCD_CONN *ptr, FDLIST *fdlistptr) +int ircd_open_fd(int fd, int flags, IRCD_CONN *ptr) { - FDLISTINFO *fdlistinfo; - if (fd < 0) return -EINVAL; + if (fd >= Fds_size) - { Fds_size = fd + 1024; - Fds = (IRCD_CONN **)MyRealloc(Fds, sizeof(IRCD_CONN *) * Fds_size); - } + if (fd >= Sentalong_size) { Sentalong_size = fd + 1024; @@ -236,37 +233,21 @@ Sentalong_end = Sentalong + Sentalong_size; Sentalong_marker = 0; /* next "send" call will 0 Sentalong out */ } - SET_FDS(fd, ptr); - fdlistinfo = &(ptr->fdlistinfo); - fdlistinfo->fd = fd; - fdlistinfo->fdlist = fdlistptr ? fdlistptr : Fdlist_main; - if (flags) - { - fdlistinfo->fdlist_pos = fdlist_add_fd(fdlistinfo->fdlist, fd, flags); - return fdlistinfo->fdlist_pos; - } - fdlistinfo->fdlist_pos = -1; + + ptr->fd = fd; + + fdlist_add_event(ptr, flags); + return 0; } -int ircd_close_fd(FDLISTINFO *fdlistinfo) +int ircd_close_fd(int fd) { - int ret; - int mfd; - - if (!fdlistinfo || fdlistinfo->fd < 0) + if (fd < 0) return -EINVAL; - close(fdlistinfo->fd); - SET_FDS(fdlistinfo->fd, NULL); - if (fdlistinfo->fdlist && fdlistinfo->fdlist_pos >= 0) - { - ret = fdlist_del_fd(fdlistinfo->fdlist, fdlistinfo->fdlist_pos, &mfd); - if ((ret > 0) && (mfd >= 0)) /* update moved fds's position in fdlist */ - { - if (GET_FDS(mfd)) - GET_FDS(mfd)->fdlistinfo.fdlist_pos = fdlistinfo->fdlist_pos; - } - } + + close(fd); + return 0; } @@ -292,7 +273,7 @@ rhptr->rh_rem_ipaddr = ntohl(rem_sin->sin_addr.s_addr); rhptr->rh_rem_port = ntohs(rem_sin->sin_port); rhptr->rh_lasttime = rhptr->rh_firsttime = Now; - ret = ircd_open_fd(fd, FDLIST_FLAGS_READ, rhptr->rh_connptr, NULL); + ret = ircd_open_fd(fd, FDLIST_FLAGS_READ, rhptr->rh_connptr); if (ret < 0) { MyFree(rhptr->rh_connptr); @@ -318,8 +299,8 @@ if (sh) { - send_to_client(cptr, "NOTICE * :*** Reverse DNS reply received."); - send_to_client(cptr, "NOTICE * :*** Doing forward DNS lookup..."); + send_to_client(cptr, "NOTICE AUTH :*** Reverse DNS reply received."); + send_to_client(cptr, "NOTICE AUTH :*** Doing forward DNS lookup..."); } cptr->c_res_req->rl_reverse = result->res_he; @@ -329,7 +310,7 @@ if ((ret >= 0) && heptr) { if (sh) - send_to_client(cptr, "NOTICE * :*** Forward DNS reply received."); + send_to_client(cptr, "NOTICE AUTH :*** Forward DNS reply received."); cptr->c_res_req->rl_forward = heptr; del_reqlist_from_list(&Reqlist, cptr->c_res_req); assert(0); /* FIX if we finish dns cache */ @@ -343,14 +324,14 @@ else { if (sh) - send_to_client(cptr, "NOTICE * :*** Forward DNS request failed."); + send_to_client(cptr, "NOTICE AUTH :*** Forward DNS request failed."); del_reqlist_from_list(&Reqlist, cptr->c_res_req); } } else { if (sh) - send_to_client(cptr, "NOTICE * :*** Reverse DNS request failed."); + send_to_client(cptr, "NOTICE AUTH :*** Reverse DNS request failed."); del_reqlist_from_list(&Reqlist, cptr->c_res_req); } if (!(cptr->c_flags & (CLIENT_FLAGS_DOINGAUTH|CLIENT_FLAGS_DOINGDNS))) @@ -372,7 +353,7 @@ struct in_addr inaddr; if (sh) - send_to_client(cptr, "NOTICE * :*** Forward DNS reply received."); + send_to_client(cptr, "NOTICE AUTH :*** Forward DNS reply received."); cptr->c_res_req->rl_forward = result->res_he; @@ -392,7 +373,7 @@ else { if (sh) - send_to_client(cptr, "NOTICE * :*** Forward DNS request failed."); + send_to_client(cptr, "NOTICE AUTH :*** Forward DNS request failed."); } if (!(cptr->c_flags & CLIENT_FLAGS_DOINGAUTH)) { @@ -459,7 +440,7 @@ MyFree(cptr); return ret; } - ret = ircd_open_fd(fd, FDLIST_FLAGS_READ, cptr->c_connptr, NULL); + ret = ircd_open_fd(fd, FDLIST_FLAGS_READ, cptr->c_connptr); if (ret < 0) { queue_delete(&(cptr->c_queue_in)); @@ -482,7 +463,7 @@ sh = (int)vars_value_get_bynum(IRCD_VAR_SHOW_HEADERS); if (sh) - send_to_client(cptr, "NOTICE * :*** Doing reverse DNS lookup..."); + send_to_client(cptr, "NOTICE AUTH :*** Doing reverse DNS lookup..."); ret = ircdres_gethostbyaddr((IRCDRES *)(Ircd_resconn->conn_ptr), &inaddr, (ircdres_func_t)_client_res_callback1, (void *)cptr, @@ -491,8 +472,8 @@ { if (sh) { - send_to_client(cptr, "NOTICE * :*** Reverse DNS reply received."); - send_to_client(cptr, "NOTICE * :*** Doing forward DNS lookup..."); + send_to_client(cptr, "NOTICE AUTH :*** Reverse DNS reply received."); + send_to_client(cptr, "NOTICE AUTH :*** Doing forward DNS lookup..."); } cptr->c_res_req->rl_reverse = heptr; ret = ircdres_gethostbyname((IRCDRES *)(Ircd_resconn->conn_ptr), @@ -502,7 +483,7 @@ if ((ret >= 0) && heptr) { if (sh) - send_to_client(cptr, "NOTICE * :*** Forward DNS reply received."); + send_to_client(cptr, "NOTICE AUTH :*** Forward DNS reply received."); cptr->c_res_req->rl_forward = heptr; } else if (ret == -EINPROGRESS) @@ -518,7 +499,7 @@ } if (sh) - send_to_client(cptr, "NOTICE * :*** Connecting for ident request..."); + send_to_client(cptr, "NOTICE AUTH :*** Connecting for ident request..."); afd = mysocket_connectip(cptr->c_rem_ipaddr, 113, cptr->c_loc_ipaddr, MYSOCKET_FLAGS_REUSEADDR|MYSOCKET_FLAGS_NONBLOCKING); @@ -535,7 +516,7 @@ if (ret < 0) { if (sh) - send_to_client(cptr, "NOTICE * :*** Ident request failed: in_queue init failed"); + send_to_client(cptr, "NOTICE AUTH :*** Ident request failed: in_queue init failed"); close(afd); MyFree(authptr->a_connptr); MyFree(authptr); @@ -543,10 +524,10 @@ cptr->c_flags &= ~CLIENT_FLAGS_DOINGAUTH; return 0; } - if (ircd_open_fd(afd, FDLIST_FLAGS_READ|FDLIST_FLAGS_WRITE, authptr->a_connptr, NULL) < 0) + if (ircd_open_fd(afd, FDLIST_FLAGS_READ|FDLIST_FLAGS_WRITE, authptr->a_connptr) < 0) { if (sh) - send_to_client(cptr, "NOTICE * :*** Ident request failed: fd init failed"); + send_to_client(cptr, "NOTICE AUTH :*** Ident request failed: fd init failed"); queue_delete(&(authptr->a_queue_in)); close(afd); MyFree(authptr->a_connptr); @@ -560,14 +541,14 @@ else { if (sh) - send_to_client(cptr, "NOTICE * :*** Ident request failed."); + send_to_client(cptr, "NOTICE AUTH :*** Ident request failed."); } return 0; } int rejecthold_del(IRCD_CLIENT *from, IRCD_REJECTHOLD *rptr, char *reason) { - ircd_close_fd(&(rptr->rh_connptr->fdlistinfo)); + ircd_close_fd(rptr->rh_connptr->fd); del_rejecthold_from_rhlist(&Rejectholds, rptr); rptr->rh_connptr->conn_ptr = NULL; MyFree(rptr->rh_connptr); @@ -577,7 +558,7 @@ int auth_del(IRCD_CLIENT *from, IRCD_AUTH *cptr, char *reason) { - ircd_close_fd(&(cptr->a_connptr->fdlistinfo)); + ircd_close_fd(cptr->a_connptr->fd); queue_delete(&(cptr->a_queue_in)); del_auth_from_alist(&Auths, cptr); Auths_did_delete = 1; @@ -771,13 +752,15 @@ MyFree(cptr->c_connectby); cptr->c_connectby = NULL; } +#if 0 client_queue_flush(cptr, NULL); - ircd_close_fd(&(cptr->c_connptr->fdlistinfo)); +#endif + ircd_close_fd(cptr->c_connptr->fd); cptr->c_connptr->conn_ptr = NULL; MyFree(cptr->c_connptr); cptr->c_connptr = NULL; - queue_delete(&(cptr->c_queue_in)); - queue_delete(&(cptr->c_queue_out)); + queue_delete(&(cptr->c_queue_in)); + queue_delete(&(cptr->c_queue_out)); cptr->c_flags |= CLIENT_FLAGS_DEAD; assert(IsLocal(cptr)); del_client_from_lolist(&Locals, cptr); @@ -948,7 +931,7 @@ { assert(cptr->c_listener->l_clients == NULL); del_listener_from_llist(&(_ircd_conf.listeners), cptr->c_listener); - ircd_close_fd(&(cptr->c_listener->l_connptr->fdlistinfo)); + ircd_close_fd(cptr->c_listener->l_connptr->fd); cptr->c_listener->l_connptr->conn_ptr = NULL; MyFree(cptr->c_listener->l_connptr); MyFree(cptr->c_listener); @@ -1226,17 +1209,17 @@ if (!src || !(sptr = *src)) return NULL; - while(*sptr == ',') + while(*sptr == ' ') sptr++; if (!*sptr) return NULL; tok = sptr; - while(*sptr && *sptr != ',') + while(*sptr && *sptr != ' ') sptr++; if (*sptr) { *sptr++ = '\0'; - while(*sptr == ',') + while(*sptr == ' ') sptr++; *src = sptr; } @@ -1288,14 +1271,13 @@ ret = queue_data_get(&(cptr->c_queue_out), &ptr, &len); assert(ret >= 0); - ret = write(cptr->c_connptr->fdlistinfo.fd, ptr, len); + ret = write(cptr->c_connptr->fd, ptr, len); if (ret > 0) { if (IsClient(cptr)) Globalinfo->bw_c_outgoing_bytes += ret; else if (IsServer(cptr)) Globalinfo->bw_s_outgoing_bytes += ret; - cptr->c_writetries = 0; queue_data_del(&(cptr->c_queue_out), ret); if (ret == len) continue; @@ -1320,9 +1302,10 @@ } break; } + if (!(cptr->c_lastqsize = cptr->c_queue_out.queue_size)) - fdlist_del_event(cptr->c_connptr->fdlistinfo.fdlist, - cptr->c_connptr->fdlistinfo.fdlist_pos, FDLIST_FLAGS_WRITE); + fdlist_del_event(cptr->c_connptr, FDLIST_FLAGS_WRITE); + return 0; } diff -uNrd -x CVS ircd-comstud-1.12-REL/lib/numeric.c ircd-devel/lib/numeric.c --- ircd-comstud-1.12-REL/lib/numeric.c Sun Oct 22 21:52:24 2000 +++ ircd-devel/lib/numeric.c Tue Dec 5 12:40:50 2000 @@ -51,10 +51,10 @@ { /* 200 */ { RPL_TRACELINK, "Link %s%s %s %s" }, /* 201 */ { RPL_TRACECONNECTING, "Try. %s %s" }, -/* 202 */ { RPL_TRACEHANDSHAKE, "H.S. %s %s" }, -/* 203 */ { RPL_TRACEUNKNOWN, "???? %s %s" }, -/* 204 */ { RPL_TRACEOPERATOR, "Oper %s %s" }, -/* 205 */ { RPL_TRACEUSER, "User %s %s" }, +/* 202 */ { RPL_TRACEHANDSHAKE, "H.S. %s %s (%s)" }, +/* 203 */ { RPL_TRACEUNKNOWN, "???? %s %s (%s)" }, +/* 204 */ { RPL_TRACEOPERATOR, "Oper %s %s (%s)" }, +/* 205 */ { RPL_TRACEUSER, "User %s %s (%s)" }, /* 206 */ { RPL_TRACESERVER, "Serv %s %dS %dC %s %s" }, /* 207 */ { RPL_TRACESERVICE, "Service %s %s" }, /* 208 */ { RPL_TRACENEWTYPE, " 0 %s" }, diff -uNrd -x CVS ircd-comstud-1.12-REL/lib/send.c ircd-devel/lib/send.c --- ircd-comstud-1.12-REL/lib/send.c Wed Jul 5 13:48:03 2000 +++ ircd-devel/lib/send.c Sun Dec 3 12:17:45 2000 @@ -55,12 +55,13 @@ cptr->c_send_bytes %= 1024; } +// humble if ( IsServer(cptr) && !cptr->c_queue_out.queue_size && !(cptr->c_flags & CLIENT_FLAGS_DOINGCONNECT)) { - ret = write(cptr->c_connptr->fdlistinfo.fd, addptr, len); + ret = write(cptr->c_connptr->fd, addptr, len); if (ret > 0) { if (IsClient(cptr)) @@ -79,64 +80,9 @@ cptr->c_flags |= CLIENT_FLAGS_DEAD; return -1; } -#if 1 - if (cptr->c_connptr->fdlistinfo.fdlist != Fdlist_main) - { - int mfd; - ret = fdlist_del_fd(cptr->c_connptr->fdlistinfo.fdlist, - cptr->c_connptr->fdlistinfo.fdlist_pos, &mfd); - if (mfd >= 0) - { - if (GET_FDS(mfd)) - GET_FDS(mfd)->fdlistinfo.fdlist_pos = - cptr->c_connptr->fdlistinfo.fdlist_pos; - } - ret = ircd_open_fd(cptr->c_connptr->fdlistinfo.fd, - FDLIST_FLAGS_READ|FDLIST_FLAGS_WRITE, cptr->c_connptr, Fdlist_main); - } - else -#endif - ret = fdlist_add_event(cptr->c_connptr->fdlistinfo.fdlist, - cptr->c_connptr->fdlistinfo.fdlist_pos, FDLIST_FLAGS_WRITE); - if ((cptr->c_queue_out.queue_size >= cptr->c_lastqsize + 4096) && - !(cptr->c_flags & CLIENT_FLAGS_DOINGCONNECT)) - { - char *buf; - int len; + ret = fdlist_add_event(cptr->c_connptr, FDLIST_FLAGS_WRITE); - if (cptr->c_writetries++ == 5) - cptr->c_writetries = 1; - if (cptr->c_writetries == 1) - { - ret = queue_data_get(&(cptr->c_queue_out), &buf, &len); - if (ret >= 0) - { - cptr->c_lastqsize = cptr->c_queue_out.queue_size; - ret = write(cptr->c_connptr->fdlistinfo.fd, buf, len); - if (ret > 0) - { - if (IsClient(cptr)) - Globalinfo->bw_c_outgoing_bytes += ret; - else if (IsServer(cptr)) - Globalinfo->bw_s_outgoing_bytes += ret; - cptr->c_writetries = 0; - queue_data_del(&(cptr->c_queue_out), ret); - } - else if (ret < 0) - { - if ((errno != EAGAIN) && (errno != EINTR) && - (errno != EWOULDBLOCK)) - { - cptr->c_flags |= CLIENT_FLAGS_DEAD; - return -1; - } - if (++cptr->c_writetries == 5) - cptr->c_writetries = 0; - } - } - } - } return ret >= 0 ? len : ret; } @@ -529,8 +475,8 @@ Sentalong_marker++; if (IsLocal(pptr) && pptr->c_connptr) { - assert(pptr->c_connptr->fdlistinfo.fd < Sentalong_size); - Sentalong[pptr->c_connptr->fdlistinfo.fd] = Sentalong_marker; + assert(pptr->c_connptr->fd < Sentalong_size); + Sentalong[pptr->c_connptr->fd] = Sentalong_marker; } *clientbuf = ':'; @@ -572,9 +518,9 @@ for(users=chlptr->chptr->members;users;users=users->next) { cptr = users->cptr; - if (!IsLocal(cptr) || !cptr->c_connptr || (Sentalong[cptr->c_connptr->fdlistinfo.fd] == Sentalong_marker)) + if (!IsLocal(cptr) || !cptr->c_connptr || (Sentalong[cptr->c_connptr->fd] == Sentalong_marker)) continue; - Sentalong[cptr->c_connptr->fdlistinfo.fd] = Sentalong_marker; + Sentalong[cptr->c_connptr->fd] = Sentalong_marker; _send_message_to_client(cptr, clientbuf, len+2); } } @@ -666,11 +612,11 @@ if (!(flags & CHANNEL_SEND_CLIENTS)) continue; } - assert(cptr->c_connptr->fdlistinfo.fd < Sentalong_size); + assert(cptr->c_connptr->fd < Sentalong_size); if (!cptr->c_connptr || - (Sentalong[cptr->c_connptr->fdlistinfo.fd] == Sentalong_marker)) + (Sentalong[cptr->c_connptr->fd] == Sentalong_marker)) continue; - Sentalong[cptr->c_connptr->fdlistinfo.fd] = Sentalong_marker; + Sentalong[cptr->c_connptr->fd] = Sentalong_marker; if (IsServer(cptr)) _send_message_to_client(cptr, serverbuf, slen+2); else @@ -750,11 +696,11 @@ if (!(flags & CHANNEL_SEND_CLIENTS)) continue; } - assert(cptr->c_connptr->fdlistinfo.fd < Sentalong_size); + assert(cptr->c_connptr->fd < Sentalong_size); if (!cptr->c_connptr || - (Sentalong[cptr->c_connptr->fdlistinfo.fd] == Sentalong_marker)) + (Sentalong[cptr->c_connptr->fd] == Sentalong_marker)) continue; - Sentalong[cptr->c_connptr->fdlistinfo.fd] = Sentalong_marker; + Sentalong[cptr->c_connptr->fd] = Sentalong_marker; if (IsServer(cptr)) _send_message_to_client(cptr, serverbuf, slen+2); else diff -uNrd -x CVS ircd-comstud-1.12-REL/source/Makefile.in ircd-devel/source/Makefile.in --- ircd-comstud-1.12-REL/source/Makefile.in Wed Dec 31 19:00:00 1969 +++ ircd-devel/source/Makefile.in Tue Dec 5 12:22:46 2000 @@ -0,0 +1,18 @@ +CC = @CC@ +CFLAGS = -g +LDFLAGS = @LDFLAGS@ +DEFS = @DEFS@ +LIBS = @LIBS@ + +OBJS= ircd + +all: ircdcore + +ircdcore: + ${CC} ${CFLAGS} ${DEFS} -I. -I../include ircdcore.c -o ../ircd ${LIBS} + +clean: + rm -f ${OBJS} ${LIB} + +distclean: clean + rm -f Makefile diff -uNrd -x CVS ircd-comstud-1.12-REL/utils/Makefile.in ircd-devel/utils/Makefile.in --- ircd-comstud-1.12-REL/utils/Makefile.in Wed Dec 31 19:00:00 1969 +++ ircd-devel/utils/Makefile.in Tue Dec 5 12:28:20 2000 @@ -0,0 +1,28 @@ +CC = @CC@ +CFLAGS = -g +LDFLAGS = @LDFLAGS@ +DEFS = @DEFS@ +LIBS = @LIBS@ + +CIDRTEST_OBJS= cidrtest.o ../lib/cidr.o ../lib/match.o +MKPASSWD_OBJS= mkpasswd.o + +BINS= cidrtest mkpasswd +OBJS= ${CIDRTEST_OBJS} ${MKPASSWD_OBJS} + +.c.o: + ${CC} ${CFLAGS} ${DEFS} -I. -I../include -c $< -o $@ + +all: cidrtest mkpasswd + +cidrtest: ${CIDRTEST_OBJS} + ${CC} ${CFLAGS} ${DEFS} -I. -I../include -o $@ ${CIDRTEST_OBJS} ${LIBS} + +mkpasswd: ${MKPASSWD_OBJS} + ${CC} ${CFLAGS} ${DEFS} -I. -I../include -o $@ ${MKPASSWD_OBJS} ${LIBS} + +clean: + -rm -f ${OBJS} ${BINS} ${LIB} + +distclean: clean + -rm -f Makefile