Index: ChangeLog =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/ChangeLog,v retrieving revision 1.188.2.18 retrieving revision 1.188.2.19 diff -u -r1.188.2.18 -r1.188.2.19 --- ChangeLog 7 Nov 2003 20:51:08 -0000 1.188.2.18 +++ ChangeLog 5 Dec 2003 13:40:24 -0000 1.188.2.19 @@ -10,6 +10,13 @@ -- ChangeLog -- +ngIRCd 0.7.6 (2003-12-05) + + - Fixed abort() ("server crash") when INVITE'ing users to nonexistent + channels. Bug found by . + - Extended version numbering of CVS versions (added date). + - Enhanced/fixed doc/Protocol.txt; + ngIRCd 0.7.5 (2003-11-07) - Fixed ban behavior: users which are banned from a channel can't no @@ -477,4 +484,4 @@ -- -$Id: ChangeLog,v 1.188.2.18 2003/11/07 20:51:08 alex Exp $ +$Id: ChangeLog,v 1.188.2.19 2003/12/05 13:40:24 alex Exp $ Index: configure.in =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/configure.in,v retrieving revision 1.89.2.11 retrieving revision 1.89.2.13 diff -u -r1.89.2.11 -r1.89.2.13 --- configure.in 7 Nov 2003 20:51:08 -0000 1.89.2.11 +++ configure.in 5 Dec 2003 13:40:24 -0000 1.89.2.13 @@ -8,13 +8,13 @@ # (at your option) any later version. # Please read the file COPYING, README and AUTHORS for more information. # -# $Id: configure.in,v 1.89.2.11 2003/11/07 20:51:08 alex Exp $ +# $Id: configure.in,v 1.89.2.13 2003/12/05 13:40:24 alex Exp $ # # -- Initialisierung -- AC_PREREQ(2.50) -AC_INIT(ngircd, 0.7.5) +AC_INIT(ngircd, 0.7.6) AC_CONFIG_SRCDIR(src/ngircd/ngircd.c) AC_CANONICAL_TARGET AM_INIT_AUTOMAKE(1.6) Index: contrib/ngircd.spec =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/contrib/ngircd.spec,v retrieving revision 1.2.4.5 retrieving revision 1.2.4.6 diff -u -r1.2.4.5 -r1.2.4.6 --- contrib/ngircd.spec 7 Nov 2003 20:51:08 -0000 1.2.4.5 +++ contrib/ngircd.spec 29 Nov 2003 20:29:02 -0000 1.2.4.6 @@ -3,7 +3,7 @@ %define release 1 %define prefix %{_prefix} -Summary: Next Generation Internet Relay Chat Daemon +Summary: A lightweight daemon for the Internet Relay Chat (IRC) Name: %{name} Version: %{version} Release: %{release} @@ -15,17 +15,18 @@ BuildRoot: /var/tmp/%{name}-root %description -ngIRCd is a free open source daemon for Internet Relay Chat (IRC), +ngIRCd is a free open source daemon for the Internet Relay Chat (IRC), developed under the GNU General Public License (GPL). It's written from scratch and is not based upon the original IRCd like many others. -Why should you use ngIRCd? Because ... +Advantages: + - no problems with servers using changing/non-static IP addresses. + - small and lean configuration file. + - free, modern and open source C code. + - still under active development. - * ... there are no problems with servers on changing or non-static IP - addresses. - * ... there is a small and lean configuration file. - * ... there is a free, modern and open source C source code. - * ... it is still under active development. +ngIRCd is compatible to the "original" ircd 2.10.3p3, so you can run +mixed networks. %prep %setup Index: debian/Makefile.am =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/debian/Makefile.am,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -r1.1.2.1 -r1.1.2.2 --- debian/Makefile.am 9 Jul 2003 21:08:55 -0000 1.1.2.1 +++ debian/Makefile.am 5 Dec 2003 13:31:22 -0000 1.1.2.2 @@ -8,10 +8,11 @@ # (at your option) any later version. # Please read the file COPYING, README and AUTHORS for more information. # -# $Id: Makefile.am,v 1.1.2.1 2003/07/09 21:08:55 alex Exp $ +# $Id: Makefile.am,v 1.1.2.2 2003/12/05 13:31:22 alex Exp $ # -EXTRA_DIST = changelog compat control copyright ngircd.init rules +EXTRA_DIST = rules changelog compat control copyright \ + ngircd.init ngircd.postinst maintainer-clean-local: rm -f Makefile Makefile.in Index: debian/changelog =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/debian/changelog,v retrieving revision 1.2.2.5 retrieving revision 1.2.2.7 diff -u -r1.2.2.5 -r1.2.2.7 --- debian/changelog 7 Nov 2003 21:05:15 -0000 1.2.2.5 +++ debian/changelog 5 Dec 2003 13:40:24 -0000 1.2.2.7 @@ -1,3 +1,16 @@ +ngircd (0.7.6-0ab1) unstable; urgency=medium + + * New upstream version. + * Changed version numvering scheme of debian package. + + -- Alexander Barton Fri, 5 Dec 2003 14:26:41 +0100 + +ngircd (0.7.5-0.2ab) unstable; urgency=low + + * Updated RPM and Debian package description and configuration. + + -- Alexander Barton Sat, 29 Nov 2003 21:24:32 +0100 + ngircd (0.7.5-0.1ab) unstable; urgency=low * New upstream version. Index: debian/control =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/debian/control,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -r1.1.2.1 -r1.1.2.2 --- debian/control 9 Jul 2003 21:12:00 -0000 1.1.2.1 +++ debian/control 29 Nov 2003 20:29:02 -0000 1.1.2.2 @@ -9,14 +9,14 @@ Architecture: any Depends: ${shlibs:Depends} ${misc:Depends} Description: A lightweight daemon for the Internet Relay Chat (IRC) - The ngIRCd is a free open source daemon for Internet Relay Chat (IRC), - developed under the GNU General Public License (GPL). It's written from - scratch and is not based upon the original IRCd like many others. + ngIRCd is a free open source daemon for the Internet Relay Chat (IRC) + network. It is written from scratch and is not based upon the original + IRCd like many others. . Advantages: - - no problems with servers on changing or non-static IP addresses. + - no problems with servers using changing/non-static IP addresses. - small and lean configuration file. - - free, modern and open source C source code. + - free, modern and open source C code. - still under active development. . ngIRCd is compatible to the "original" ircd 2.10.3p3, so you can run Index: debian/copyright =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/debian/copyright,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -r1.1.2.1 -r1.1.2.2 --- debian/copyright 9 Jul 2003 21:12:00 -0000 1.1.2.1 +++ debian/copyright 29 Nov 2003 20:29:02 -0000 1.1.2.2 @@ -3,7 +3,7 @@ It was downloaded from ftp://Arthur.Ath.CX/pub/Users/alex/ngircd/ -Upstream Author(s): Alexander Barton +Upstream Author: Alexander Barton This software is copyright (c) 1999-2003 by Alexander Barton. Index: debian/ngircd.postinst =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/debian/ngircd.postinst,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -r1.1.2.3 -r1.1.2.4 --- debian/ngircd.postinst 12 Jul 2003 22:57:00 -0000 1.1.2.3 +++ debian/ngircd.postinst 29 Nov 2003 20:29:02 -0000 1.1.2.4 @@ -1,7 +1,7 @@ #!/bin/sh # # Debian post-installation script -# $Id: ngircd.postinst,v 1.1.2.3 2003/07/12 22:57:00 alex Exp $ +# $Id: ngircd.postinst,v 1.1.2.4 2003/11/29 20:29:02 alex Exp $ # if [ -f /etc/ngircd/ngircd.conf ]; then @@ -9,14 +9,6 @@ chmod o= /etc/ngircd/ngircd.conf fi -if [ -x "/etc/init.d/ngircd" ]; then - # setup init scripts and startup ngircd - update-rc.d ngircd defaults >/dev/null - if [ -x /usr/sbin/invoke-rc.d ]; then - invoke-rc.d ngircd start - else - /etc/init.d/ngircd start - fi -fi +#DEBHELPER# # -eof- Index: debian/rules =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/debian/rules,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -r1.1.2.1 -r1.1.2.2 --- debian/rules 9 Jul 2003 21:12:00 -0000 1.1.2.1 +++ debian/rules 29 Nov 2003 20:29:02 -0000 1.1.2.2 @@ -1,7 +1,17 @@ #!/usr/bin/make -f +# +# ngIRCd -- The Next Generation IRC Daemon +# Copyright (c)2001-2003 by Alexander Barton (alex@barton.de) +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# Please read the file COPYING, README and AUTHORS for more information. +# # debian/rules for ngIRCd # -# $Id: rules,v 1.1.2.1 2003/07/09 21:12:00 alex Exp $ +# $Id: rules,v 1.1.2.2 2003/11/29 20:29:02 alex Exp $ # # Based on the sample debian/rules that uses debhelper, # GNU copyright 1997 to 1999 by Joey Hess. @@ -12,8 +22,8 @@ # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) CFLAGS = -Wall -g @@ -28,14 +38,17 @@ config.status: configure dh_testdir + # Add here commands to configure the package. ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ - --prefix=/usr --sysconfdir=/etc/ngircd --mandir=\$${prefix}/share/man \ + --prefix=/usr \ + --sysconfdir=/etc/ngircd \ + --mandir=\$${prefix}/share/man \ --with-syslog --with-zlib build: build-stamp -build-stamp: config.status +build-stamp: config.status dh_testdir # Add here commands to compile the package. @@ -50,6 +63,7 @@ # Add here commands to clean up after the build process. -$(MAKE) distclean + ifneq "$(wildcard /usr/share/misc/config.sub)" "" cp -f /usr/share/misc/config.sub config.sub endif @@ -66,11 +80,12 @@ # Add here commands to install the package into debian/ngircd. $(MAKE) install DESTDIR=$(CURDIR)/debian/ngircd - + rm -f $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/INSTALL* + rm -f $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/COPYING* # Build architecture-independent files here. binary-indep: build install -# We have nothing to do by default. + # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install @@ -81,7 +96,7 @@ dh_installinit dh_strip dh_compress - dh_fixperms -Xetc/ngircd.conf + dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol @@ -89,6 +104,7 @@ dh_builddeb binary: binary-indep binary-arch + .PHONY: build clean binary-indep binary-arch binary install # -eof- Index: src/ngircd/Makefile.am =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/src/ngircd/Makefile.am,v retrieving revision 1.39.2.2 retrieving revision 1.39.2.3 diff -u -r1.39.2.2 -r1.39.2.3 --- src/ngircd/Makefile.am 7 Nov 2003 20:51:10 -0000 1.39.2.2 +++ src/ngircd/Makefile.am 4 Dec 2003 14:13:42 -0000 1.39.2.3 @@ -8,7 +8,7 @@ # (at your option) any later version. # Please read the file COPYING, README and AUTHORS for more information. # -# $Id: Makefile.am,v 1.39.2.2 2003/11/07 20:51:10 alex Exp $ +# $Id: Makefile.am,v 1.39.2.3 2003/12/04 14:13:42 alex Exp $ # AUTOMAKE_OPTIONS = ../portab/ansi2knr @@ -63,6 +63,10 @@ ngircd.c: cvs-version.h +irc-login.c: cvs-version.h + +irc-info.c: cvs-version.h + cvs-version.h: cvs-date cvs-date: Index: src/ngircd/irc-info.c =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/src/ngircd/irc-info.c,v retrieving revision 1.16.2.2 retrieving revision 1.16.2.3 diff -u -r1.16.2.2 -r1.16.2.3 --- src/ngircd/irc-info.c 7 Nov 2003 20:51:11 -0000 1.16.2.2 +++ src/ngircd/irc-info.c 4 Dec 2003 14:13:42 -0000 1.16.2.3 @@ -14,7 +14,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-info.c,v 1.16.2.2 2003/11/07 20:51:11 alex Exp $"; +static char UNUSED id[] = "$Id: irc-info.c,v 1.16.2.3 2003/12/04 14:13:42 alex Exp $"; #include "imp.h" #include @@ -494,7 +494,7 @@ { CLIENT *target, *prefix; #ifdef CVSDATE - CHAR ver[12]; + CHAR ver[12], vertxt[30]; #endif assert( Client != NULL ); @@ -528,7 +528,8 @@ strlcpy( ver, CVSDATE, sizeof( ver )); strncpy( ver + 4, ver + 5, 2 ); strncpy( ver + 6, ver + 8, 3 ); - return IRC_WriteStrClient( Client, RPL_VERSION_MSG, Client_ID( prefix ), PACKAGE_NAME, ver, NGIRCd_DebugLevel, Conf_ServerName, NGIRCd_VersionAddition( )); + snprintf( vertxt, sizeof( vertxt ), "%s(%s)", PACKAGE_VERSION, ver ); + return IRC_WriteStrClient( Client, RPL_VERSION_MSG, Client_ID( prefix ), PACKAGE_NAME, vertxt, NGIRCd_DebugLevel, Conf_ServerName, NGIRCd_VersionAddition( )); #else return IRC_WriteStrClient( Client, RPL_VERSION_MSG, Client_ID( prefix ), PACKAGE_NAME, PACKAGE_VERSION, NGIRCd_DebugLevel, Conf_ServerName, NGIRCd_VersionAddition( )); #endif Index: src/ngircd/irc-login.c =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/src/ngircd/irc-login.c,v retrieving revision 1.34.2.1 retrieving revision 1.34.2.2 diff -u -r1.34.2.1 -r1.34.2.2 --- src/ngircd/irc-login.c 7 Nov 2003 20:51:11 -0000 1.34.2.1 +++ src/ngircd/irc-login.c 4 Dec 2003 14:13:42 -0000 1.34.2.2 @@ -14,7 +14,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-login.c,v 1.34.2.1 2003/11/07 20:51:11 alex Exp $"; +static char UNUSED id[] = "$Id: irc-login.c,v 1.34.2.2 2003/12/04 14:13:42 alex Exp $"; #include "imp.h" #include @@ -34,6 +34,7 @@ #include "irc.h" #include "irc-info.h" #include "irc-write.h" +#include "cvs-version.h" #include "exp.h" #include "irc-login.h" @@ -429,12 +430,16 @@ LOCAL BOOLEAN Hello_User( CLIENT *Client ) { +#ifdef CVSDATE + CHAR ver[12], vertxt[30]; +#endif + assert( Client != NULL ); - /* Passwort ueberpruefen */ + /* Check password ... */ if( strcmp( Client_Password( Client ), Conf_ServerPwd ) != 0 ) { - /* Falsches Passwort */ + /* Bad password! */ Log( LOG_ERR, "User \"%s\" rejected (connection %d): Bad password!", Client_Mask( Client ), Client_Conn( Client )); Conn_Close( Client_Conn( Client ), NULL, "Bad password", TRUE ); return DISCONNECTED; @@ -442,13 +447,29 @@ Log( LOG_NOTICE, "User \"%s\" registered (connection %d).", Client_Mask( Client ), Client_Conn( Client )); - /* Andere Server informieren */ + /* Inform other servers */ IRC_WriteStrServers( NULL, "NICK %s 1 %s %s 1 +%s :%s", Client_ID( Client ), Client_User( Client ), Client_Hostname( Client ), Client_Modes( Client ), Client_Info( Client )); + /* Welcome :-) */ if( ! IRC_WriteStrClient( Client, RPL_WELCOME_MSG, Client_ID( Client ), Client_Mask( Client ))) return FALSE; + + /* Version and system type */ +#ifdef CVSDATE + strlcpy( ver, CVSDATE, sizeof( ver )); + strncpy( ver + 4, ver + 5, 2 ); + strncpy( ver + 6, ver + 8, 3 ); + snprintf( vertxt, sizeof( vertxt ), "%s(%s)", PACKAGE_VERSION, ver ); + if( ! IRC_WriteStrClient( Client, RPL_YOURHOST_MSG, Client_ID( Client ), Client_ID( Client_ThisServer( )), vertxt, TARGET_CPU, TARGET_VENDOR, TARGET_OS )) return FALSE; +#else if( ! IRC_WriteStrClient( Client, RPL_YOURHOST_MSG, Client_ID( Client ), Client_ID( Client_ThisServer( )), PACKAGE_VERSION, TARGET_CPU, TARGET_VENDOR, TARGET_OS )) return FALSE; +#endif + if( ! IRC_WriteStrClient( Client, RPL_CREATED_MSG, Client_ID( Client ), NGIRCd_StartStr )) return FALSE; +#ifdef CVSDATE + if( ! IRC_WriteStrClient( Client, RPL_MYINFO_MSG, Client_ID( Client ), Client_ID( Client_ThisServer( )), vertxt, USERMODES, CHANMODES )) return FALSE; +#else if( ! IRC_WriteStrClient( Client, RPL_MYINFO_MSG, Client_ID( Client ), Client_ID( Client_ThisServer( )), PACKAGE_VERSION, USERMODES, CHANMODES )) return FALSE; +#endif /* Features */ if( ! IRC_WriteStrClient( Client, RPL_ISUPPORT_MSG, Client_ID( Client ), CLIENT_NICK_LEN - 1, CHANNEL_TOPIC_LEN - 1, CLIENT_AWAY_LEN - 1, Conf_MaxJoins )) return DISCONNECTED; Index: src/ngircd/irc-op.c =================================================================== RCS file: /usr/local/CVS/ngircd/ngircd/src/ngircd/irc-op.c,v retrieving revision 1.11 retrieving revision 1.11.4.1 diff -u -r1.11 -r1.11.4.1 --- src/ngircd/irc-op.c 12 Dec 2002 12:24:18 -0000 1.11 +++ src/ngircd/irc-op.c 5 Dec 2003 13:33:12 -0000 1.11.4.1 @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001,2002 by Alexander Barton (alex@barton.de) + * Copyright (c)2001-2003 by Alexander Barton (alex@barton.de) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,7 +14,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-op.c,v 1.11 2002/12/12 12:24:18 alex Exp $"; +static char UNUSED id[] = "$Id: irc-op.c,v 1.11.4.1 2003/12/05 13:33:12 alex Exp $"; #include "imp.h" #include @@ -69,14 +69,14 @@ assert( Client != NULL ); assert( Req != NULL ); - /* Falsche Anzahl Parameter? */ + /* Wrong number of parameters? */ if( Req->argc != 2 ) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command ); if( Client_Type( Client ) == CLIENT_SERVER ) from = Client_Search( Req->prefix ); else from = Client; if( ! from ) return IRC_WriteStrClient( Client, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->prefix ); - /* User suchen */ + /* Search user */ target = Client_Search( Req->argv[0] ); if(( ! target ) || ( Client_Type( target ) != CLIENT_USER )) return IRC_WriteStrClient( from, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->argv[0] ); @@ -84,36 +84,38 @@ if( chan ) { - /* Der Channel existiert bereits; ist der User Mitglied? */ + /* Channel exists. Is the user a valid member of the channel? */ if( ! Channel_IsMemberOf( chan, from )) return IRC_WriteStrClient( from, ERR_NOTONCHANNEL_MSG, Client_ID( Client ), Req->argv[1] ); - /* Ist der Channel "invite-only"? */ + /* Is the channel "invite-only"? */ if( strchr( Channel_Modes( chan ), 'i' )) { - /* Ja. Der User muss Channel-Operator sein! */ + /* Yes. The user must be channel operator! */ if( ! strchr( Channel_UserModes( chan, from ), 'o' )) return IRC_WriteStrClient( from, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( from ), Channel_Name( chan )); remember = TRUE; } - /* Ist der Ziel-User bereits Mitglied? */ + /* Is the target user already member of the channel? */ if( Channel_IsMemberOf( chan, target )) return IRC_WriteStrClient( from, ERR_USERONCHANNEL_MSG, Client_ID( from ), Req->argv[0], Req->argv[1] ); - } - /* Wenn der User gebanned ist, so muss das Invite auch gespeichert werden */ - if( Lists_CheckBanned( target, chan )) remember = TRUE; + /* If the target user is banned on that channel: remember invite */ + if( Lists_CheckBanned( target, chan )) remember = TRUE; - Log( LOG_DEBUG, "User \"%s\" invites \"%s\" to \"%s\" ...", Client_Mask( from ), Req->argv[0], Req->argv[1] ); - if( remember ) - { - if( ! Lists_AddInvited( from, Client_Mask( target ), chan, TRUE )) return CONNECTED; + if( remember ) + { + /* We must memember this invite */ + if( ! Lists_AddInvited( from, Client_Mask( target ), chan, TRUE )) return CONNECTED; + } } + + Log( LOG_DEBUG, "User \"%s\" invites \"%s\" to \"%s\" ...", Client_Mask( from ), Req->argv[0], Req->argv[1] ); - /* an Ziel-Client forwarden ... */ + /* Inform target client */ IRC_WriteStrClientPrefix( target, from, "INVITE %s %s", Req->argv[0], Req->argv[1] ); if( Client_Conn( target ) > NONE ) { - /* lokaler Ziel-Client, Status-Code melden */ + /* The target user is local, so we have to send the status code */ if( ! IRC_WriteStrClientPrefix( from, target, RPL_INVITING_MSG, Client_ID( from ), Req->argv[0], Req->argv[1] )) return DISCONNECTED; }