diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ngircd/Makefile.am | 19 | ||||
| -rw-r--r-- | src/ngircd/channel.c | 35 | ||||
| -rw-r--r-- | src/ngircd/irc-channel.c | 29 | ||||
| -rw-r--r-- | src/ngircd/irc-info.c | 26 | ||||
| -rw-r--r-- | src/ngircd/irc-login.c | 82 | ||||
| -rw-r--r-- | src/ngircd/ngircd.c | 10 | ||||
| -rw-r--r-- | src/testsuite/ngircd-test.conf | 2 |
7 files changed, 92 insertions, 111 deletions
diff --git a/src/ngircd/Makefile.am b/src/ngircd/Makefile.am index cfa45e19..1a5119f2 100644 --- a/src/ngircd/Makefile.am +++ b/src/ngircd/Makefile.am @@ -36,7 +36,7 @@ noinst_HEADERS = ngircd.h array.h channel.h client.h conf.h conn.h conn-func.h \ defines.h messages.h clean-local: - rm -f check-version check-help lint.out cvs-version.* + rm -f check-version check-help lint.out maintainer-clean-local: rm -f Makefile Makefile.in @@ -77,23 +77,6 @@ lint: || echo "Result: no warnings found."; \ echo; [ $$warnings -gt 0 ] && exit 1 -ngircd.c: cvs-version.h - -irc-login.c: cvs-version.h - -irc-info.c: cvs-version.h - -cvs-version.h: cvs-date - -cvs-date: - grep VERSION ../config.h | grep "CVS" \ - && echo "#define CVSDATE \"$$( grep "\$$Id" $(srcdir)/*.c \ - | $(AWK) "{ print \$$9 }" | sort | tail -1 \ - | sed -e "s/\//-/g" )\"" > cvs-version.new \ - || echo "" > cvs-version.new - diff cvs-version.h cvs-version.new 2>/dev/null \ - || cp cvs-version.new cvs-version.h - TESTS = check-version check-help # -eof- diff --git a/src/ngircd/channel.c b/src/ngircd/channel.c index 35922c2b..32f911a2 100644 --- a/src/ngircd/channel.c +++ b/src/ngircd/channel.c @@ -201,25 +201,38 @@ Channel_Join( CLIENT *Client, char *Name ) } /* Channel_Join */ +/** + * Remove client from channel. + * This function lets a client lead a channel. First, the function checks + * if the channel exists and the client is a member of it and sends out + * appropriate error messages if not. The real work is done by the function + * Remove_Client(). + */ GLOBAL bool -Channel_Part( CLIENT *Client, CLIENT *Origin, const char *Name, const char *Reason ) +Channel_Part(CLIENT * Client, CLIENT * Origin, const char *Name, const char *Reason) { CHANNEL *chan; - assert( Client != NULL ); - assert( Name != NULL ); - assert( Reason != NULL ); + assert(Client != NULL); + assert(Name != NULL); + assert(Reason != NULL); - chan = Channel_Search( Name ); - if(( ! chan ) || ( ! Get_Cl2Chan( chan, Client ))) - { - IRC_WriteStrClient( Client, ERR_NOSUCHCHANNEL_MSG, Client_ID( Client ), Name ); + chan = Channel_Search(Name); + if (!chan) { + IRC_WriteStrClient(Client, ERR_NOSUCHCHANNEL_MSG, + Client_ID(Client), Name); + return false; + } + if (!Get_Cl2Chan(chan, Client)) { + IRC_WriteStrClient(Client, ERR_NOTONCHANNEL_MSG, + Client_ID(Client), Name); return false; } - /* User aus Channel entfernen */ - if( ! Remove_Client( REMOVE_PART, chan, Client, Origin, Reason, true)) return false; - else return true; + if (!Remove_Client(REMOVE_PART, chan, Client, Origin, Reason, true)) + return false; + else + return true; } /* Channel_Part */ diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c index 55770571..c678ceeb 100644 --- a/src/ngircd/irc-channel.c +++ b/src/ngircd/irc-channel.c @@ -286,29 +286,36 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req ) } /* IRC_JOIN */ +/** + * Handler for the IRC "PART" command. + */ GLOBAL bool -IRC_PART( CLIENT *Client, REQUEST *Req ) +IRC_PART(CLIENT * Client, REQUEST * Req) { CLIENT *target; char *chan; - assert( Client != NULL ); - assert( Req != NULL ); + assert(Client != NULL); + assert(Req != NULL); if (Req->argc < 1 || Req->argc > 2) return IRC_WriteStrClient(Client, ERR_NEEDMOREPARAMS_MSG, - Client_ID(Client), Req->command); + Client_ID(Client), Req->command); - /* Wer ist der Absender? */ - if( Client_Type( Client ) == CLIENT_SERVER ) target = Client_Search( Req->prefix ); - else target = Client; - if( ! target ) return IRC_WriteStrClient( Client, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->prefix ); + /* Get the sender */ + if (Client_Type(Client) == CLIENT_SERVER) + target = Client_Search(Req->prefix); + else + target = Client; + if (!target) + return IRC_WriteStrClient(Client, ERR_NOSUCHNICK_MSG, + Client_ID(Client), Req->prefix); - /* Channel-Namen durchgehen */ + /* Loop over all the given channel names */ chan = strtok(Req->argv[0], ","); while (chan) { - Channel_Part(target, Client, chan, Req->argc > 1 ? Req->argv[1] : Client_ID(target)); - + Channel_Part(target, Client, chan, + Req->argc > 1 ? Req->argv[1] : Client_ID(target)); chan = strtok(NULL, ","); } return CONNECTED; diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c index 87ed2ad0..dbeed978 100644 --- a/src/ngircd/irc-info.c +++ b/src/ngircd/irc-info.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001-2005 Alexander Barton (alex@barton.de) + * Copyright (c)2001-2008 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,8 +14,6 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-info.c,v 1.44 2008/02/17 13:26:42 alex Exp $"; - #include "imp.h" #include <assert.h> #include <errno.h> @@ -25,7 +23,6 @@ static char UNUSED id[] = "$Id: irc-info.c,v 1.44 2008/02/17 13:26:42 alex Exp $ #include <strings.h> #include "ngircd.h" -#include "cvs-version.h" #include "conn-func.h" #include "conn-zip.h" #include "client.h" @@ -640,9 +637,6 @@ GLOBAL bool IRC_VERSION( CLIENT *Client, REQUEST *Req ) { CLIENT *target, *prefix; -#ifdef CVSDATE - char ver[12], vertxt[30]; -#endif assert( Client != NULL ); assert( Req != NULL ); @@ -669,21 +663,15 @@ IRC_VERSION( CLIENT *Client, REQUEST *Req ) return CONNECTED; } - /* mit Versionsinfo antworten */ - IRC_SetPenalty( Client, 1 ); -#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 ); - 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 + /* send version information */ + IRC_SetPenalty(Client, 1); + return IRC_WriteStrClient(Client, RPL_VERSION_MSG, Client_ID(prefix), + PACKAGE_NAME, PACKAGE_VERSION, + NGIRCd_DebugLevel, Conf_ServerName, + NGIRCd_VersionAddition); } /* IRC_VERSION */ - static bool write_whoreply(CLIENT *Client, CLIENT *c, const char *channelname, const char *flags) { diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c index 1f7038ee..dd436192 100644 --- a/src/ngircd/irc-login.c +++ b/src/ngircd/irc-login.c @@ -1,6 +1,6 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001,2002 by Alexander Barton (alex@barton.de) + * Copyright (c)2001-2008 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,8 +14,6 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-login.c,v 1.55 2008/02/05 11:46:55 fw Exp $"; - #include "imp.h" #include <assert.h> #include <stdio.h> @@ -35,7 +33,6 @@ static char UNUSED id[] = "$Id: irc-login.c,v 1.55 2008/02/05 11:46:55 fw Exp $" #include "irc.h" #include "irc-info.h" #include "irc-write.h" -#include "cvs-version.h" #include "exp.h" #include "irc-login.h" @@ -507,7 +504,7 @@ IRC_PING(CLIENT *Client, REQUEST *Req) Client_ID(from), Client_ID(Client)); #else /* Some clients depend on the argument being returned in the PONG - * reply (not mentioned in any RFC, though) */ + * reply (not mentioned in any RFC, though) */ return IRC_WriteStrClient(Client, "PONG %s :%s", Client_ID(from), Req->argv[0]); #endif @@ -573,61 +570,60 @@ IRC_PONG(CLIENT *Client, REQUEST *Req) static bool -Hello_User( CLIENT *Client ) +Hello_User(CLIENT * Client) { -#ifdef CVSDATE - char ver[12], vertxt[30]; -#endif - - assert( Client != NULL ); + assert(Client != NULL); /* Check password ... */ - if( strcmp( Client_Password( Client ), Conf_ServerPwd ) != 0 ) - { + if (strcmp(Client_Password(Client), Conf_ServerPwd) != 0) { /* 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); + 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; } - Log( LOG_NOTICE, "User \"%s\" registered (connection %d).", Client_Mask( Client ), Client_Conn( Client )); + Log(LOG_NOTICE, "User \"%s\" registered (connection %d).", + Client_Mask(Client), Client_Conn(Client)); /* 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 )); - memmove( ver + 4, ver + 5, 2 ); - memmove( 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 + IRC_WriteStrServers(NULL, "NICK %s 1 %s %s 1 +%s :%s", + Client_ID(Client), Client_User(Client), + Client_Hostname(Client), Client_Modes(Client), + Client_Info(Client)); + + if (!IRC_WriteStrClient + (Client, RPL_WELCOME_MSG, Client_ID(Client), Client_Mask(Client))) + return false; + if (!IRC_WriteStrClient + (Client, RPL_YOURHOST_MSG, Client_ID(Client), + Client_ID(Client_ThisServer()), PACKAGE_VERSION, TARGET_CPU, + TARGET_VENDOR, TARGET_OS)) + return false; + if (!IRC_WriteStrClient + (Client, RPL_CREATED_MSG, Client_ID(Client), NGIRCd_StartStr)) + return false; + if (!IRC_WriteStrClient + (Client, RPL_MYINFO_MSG, Client_ID(Client), + Client_ID(Client_ThisServer()), PACKAGE_VERSION, USERMODES, + CHANMODES)) + return false; /* Features supported by this server (005 numeric, ISUPPORT), * see <http://www.irc.org/tech_docs/005.html> for details. */ - if (! IRC_Send_ISUPPORT(Client)) + if (!IRC_Send_ISUPPORT(Client)) return DISCONNECTED; - Client_SetType( Client, CLIENT_USER ); + Client_SetType(Client, CLIENT_USER); - if( ! IRC_Send_LUSERS( Client )) return DISCONNECTED; - if( ! IRC_Show_MOTD( Client )) return DISCONNECTED; + if (!IRC_Send_LUSERS(Client)) + return DISCONNECTED; + if (!IRC_Show_MOTD(Client)) + return DISCONNECTED; /* Suspend the client for a second ... */ - IRC_SetPenalty( Client, 1 ); + IRC_SetPenalty(Client, 1); return CONNECTED; } /* Hello_User */ diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c index 5b872fc5..626b8b23 100644 --- a/src/ngircd/ngircd.c +++ b/src/ngircd/ngircd.c @@ -40,7 +40,6 @@ #include "client.h" #include "channel.h" #include "conf.h" -#include "cvs-version.h" #include "lists.h" #include "log.h" #include "parse.h" @@ -410,12 +409,9 @@ Fill_Version( void ) strlcat( NGIRCd_VersionAddition, "/", sizeof( NGIRCd_VersionAddition )); strlcat( NGIRCd_VersionAddition, TARGET_OS, sizeof( NGIRCd_VersionAddition )); -#ifdef CVSDATE - snprintf( NGIRCd_Version, sizeof NGIRCd_Version,"%s %s(%s)-%s", PACKAGE_NAME, PACKAGE_VERSION, CVSDATE, NGIRCd_VersionAddition); -#else - snprintf( NGIRCd_Version, sizeof NGIRCd_Version, "%s %s-%s", PACKAGE_NAME, PACKAGE_VERSION, NGIRCd_VersionAddition); -#endif -} /* Fill_Version */ + snprintf(NGIRCd_Version, sizeof NGIRCd_Version, "%s %s-%s", + PACKAGE_NAME, PACKAGE_VERSION, NGIRCd_VersionAddition); + } /* Fill_Version */ /** diff --git a/src/testsuite/ngircd-test.conf b/src/testsuite/ngircd-test.conf index 5b1fbe33..0bec96d3 100644 --- a/src/testsuite/ngircd-test.conf +++ b/src/testsuite/ngircd-test.conf @@ -7,8 +7,6 @@ MotdFile = ngircd-test.motd AdminEMail = admin@irc.server MaxConnectionsIP = 0 - ServerUID = 1 - ServerGID = 1 OperCanUseMode = yes [Operator] |