mirror of
https://github.com/osmarks/ngircd.git
synced 2025-10-23 02:07:37 +00:00
Compare commits
9 Commits
rel-0-11-0
...
branch-0-1
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3b69da0c52 | ||
![]() |
04933f5b8b | ||
![]() |
45df522bcb | ||
![]() |
51260c2e9f | ||
![]() |
55865d7fc6 | ||
![]() |
082a92beef | ||
![]() |
e92c889580 | ||
![]() |
de4676f066 | ||
![]() |
64a98338d5 |
10
ChangeLog
10
ChangeLog
@@ -10,6 +10,14 @@
|
||||
-- ChangeLog --
|
||||
|
||||
|
||||
ngIRCd 0.11.1 (2008-02-26)
|
||||
|
||||
- Fix sending of JOIN commands between servers when remote server appended
|
||||
mode flags. (Rolf Eike Beer) [from HEAD]
|
||||
- Send "G" instead of "H" flag in WHO replies. (reported by Dana Dahlstrom)
|
||||
- Under some circumstances ngIRCd issued channel MODE message with a
|
||||
trailing space. (Dana Dahlstrom) [from HEAD]
|
||||
|
||||
ngIRCd 0.11.0 (2008-01-15)
|
||||
|
||||
ngIRCd 0.11.0-pre2 (2008-01-07)
|
||||
@@ -734,4 +742,4 @@ ngIRCd 0.0.1, 31.12.2001
|
||||
|
||||
|
||||
--
|
||||
$Id: ChangeLog,v 1.332.2.6 2008/01/15 20:45:52 alex Exp $
|
||||
$Id: ChangeLog,v 1.332.2.11 2008/02/26 20:35:05 alex Exp $
|
||||
|
2
NEWS
2
NEWS
@@ -251,4 +251,4 @@ ngIRCd 0.0.1, 31.12.2001
|
||||
|
||||
|
||||
--
|
||||
$Id: NEWS,v 1.83.2.2 2008/01/15 20:45:52 alex Exp $
|
||||
$Id: NEWS,v 1.83.2.4 2008/02/26 19:22:07 alex Exp $
|
||||
|
@@ -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.125.2.3 2008/01/15 20:45:52 alex Exp $
|
||||
# $Id: configure.in,v 1.125.2.4 2008/02/26 19:37:34 alex Exp $
|
||||
#
|
||||
|
||||
# -- Initialisation --
|
||||
|
||||
AC_PREREQ(2.50)
|
||||
AC_INIT(ngircd, 0.11.0)
|
||||
AC_INIT(ngircd, 0.11.1)
|
||||
AC_CONFIG_SRCDIR(src/ngircd/ngircd.c)
|
||||
AC_CANONICAL_TARGET
|
||||
AM_INIT_AUTOMAKE(1.6)
|
||||
|
@@ -1,3 +1,9 @@
|
||||
ngircd (0.11.1-0ab1) unstable; urgency=low
|
||||
|
||||
* New "upstream" release 0.11.1.
|
||||
|
||||
-- Alexander Barton <alex@barton.de> Tue, 26 Feb 2008 20:24:55 +0100
|
||||
|
||||
ngircd (0.11.0-0ab1) unstable; urgency=low
|
||||
|
||||
* New "upstream" release 0.11.0.
|
||||
|
@@ -1,5 +1,5 @@
|
||||
%define name ngircd
|
||||
%define version 0.11.0
|
||||
%define version 0.11.1
|
||||
%define release 1
|
||||
%define prefix %{_prefix}
|
||||
|
||||
|
@@ -12,7 +12,7 @@
|
||||
|
||||
#include "portab.h"
|
||||
|
||||
static char UNUSED id[] = "$Id: io.c,v 1.28 2008/01/02 10:29:51 fw Exp $";
|
||||
static char UNUSED id[] = "$Id: io.c,v 1.28.2.1 2008/04/03 14:16:35 fw Exp $";
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
@@ -308,7 +308,7 @@ io_event_create(int fd, short what, void (*cbfunc) (int, short))
|
||||
|
||||
assert(fd >= 0);
|
||||
#if defined(IO_USE_SELECT) && defined(FD_SETSIZE)
|
||||
if (fd >= FD_SETSIZE) {
|
||||
if (io_masterfd < 0 && fd >= FD_SETSIZE) {
|
||||
Log(LOG_ERR,
|
||||
"fd %d exceeds FD_SETSIZE (%u) (select can't handle more file descriptors)",
|
||||
fd, FD_SETSIZE);
|
||||
|
@@ -14,7 +14,7 @@
|
||||
|
||||
#include "portab.h"
|
||||
|
||||
static char UNUSED id[] = "$Id: irc-channel.c,v 1.40.2.1 2008/01/07 11:42:14 fw Exp $";
|
||||
static char UNUSED id[] = "$Id: irc-channel.c,v 1.40.2.2 2008/02/26 12:07:41 fw Exp $";
|
||||
|
||||
#include "imp.h"
|
||||
#include <assert.h>
|
||||
@@ -79,6 +79,14 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
|
||||
{
|
||||
chan = NULL; flags = NULL;
|
||||
|
||||
if (Client_Type(Client) == CLIENT_SERVER) {
|
||||
flags = strchr( channame, 0x7 );
|
||||
if( flags ) {
|
||||
*flags = '\0';
|
||||
flags++;
|
||||
}
|
||||
}
|
||||
|
||||
/* wird der Channel neu angelegt? */
|
||||
if( Channel_Search( channame )) {
|
||||
is_new_chan = false;
|
||||
@@ -92,18 +100,6 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
|
||||
is_new_chan = true;
|
||||
}
|
||||
|
||||
/* Hat ein Server Channel-User-Modes uebergeben? */
|
||||
if( Client_Type( Client ) == CLIENT_SERVER )
|
||||
{
|
||||
/* Channel-Flags extrahieren */
|
||||
flags = strchr( channame, 0x7 );
|
||||
if( flags )
|
||||
{
|
||||
*flags = '\0';
|
||||
flags++;
|
||||
}
|
||||
}
|
||||
|
||||
/* Local client? */
|
||||
if( Client_Type( Client ) == CLIENT_USER )
|
||||
{
|
||||
|
@@ -14,7 +14,7 @@
|
||||
|
||||
#include "portab.h"
|
||||
|
||||
static char UNUSED id[] = "$Id: irc-info.c,v 1.41 2007/12/11 11:29:44 fw Exp $";
|
||||
static char UNUSED id[] = "$Id: irc-info.c,v 1.41.2.1 2008/02/26 12:06:57 fw Exp $";
|
||||
|
||||
#include "imp.h"
|
||||
#include <assert.h>
|
||||
@@ -648,7 +648,11 @@ IRC_WHO( CLIENT *Client, REQUEST *Req )
|
||||
if( ok && (( ! only_ops ) || ( strchr( Client_Modes( c ), 'o' ))))
|
||||
{
|
||||
/* Get flags */
|
||||
strcpy( flags, "H" );
|
||||
if (strchr(Client_Modes( c ), 'a'))
|
||||
strcpy(flags, "G"); /* away */
|
||||
else
|
||||
strcpy(flags, "H");
|
||||
|
||||
if( strchr( Client_Modes( c ), 'o' )) strlcat( flags, "*", sizeof( flags ));
|
||||
|
||||
/* Search suitable channel */
|
||||
@@ -1082,10 +1086,12 @@ IRC_Send_WHO( CLIENT *Client, CHANNEL *Chan, bool OnlyOps )
|
||||
if( strchr( Client_Modes( c ), 'i' )) is_visible = false;
|
||||
else is_visible = true;
|
||||
|
||||
if( is_member || is_visible )
|
||||
{
|
||||
/* Flags zusammenbasteln */
|
||||
strcpy( flags, "H" );
|
||||
if( is_member || is_visible ) {
|
||||
if (strchr(Client_Modes( c ), 'a'))
|
||||
strcpy(flags, "G"); /* away */
|
||||
else
|
||||
strcpy(flags, "H");
|
||||
|
||||
if( strchr( Client_Modes( c ), 'o' )) strlcat( flags, "*", sizeof( flags ));
|
||||
if( strchr( Channel_UserModes( Chan, c ), 'o' )) strlcat( flags, "@", sizeof( flags ));
|
||||
else if( strchr( Channel_UserModes( Chan, c ), 'v' )) strlcat( flags, "+", sizeof( flags ));
|
||||
|
@@ -14,7 +14,7 @@
|
||||
|
||||
#include "portab.h"
|
||||
|
||||
static char UNUSED id[] = "$Id: irc-login.c,v 1.54 2007/11/21 12:16:36 alex Exp $";
|
||||
static char UNUSED id[] = "$Id: irc-login.c,v 1.54.2.1 2008/02/05 11:48:37 fw Exp $";
|
||||
|
||||
#include "imp.h"
|
||||
#include <assert.h>
|
||||
@@ -601,8 +601,8 @@ Hello_User( CLIENT *Client )
|
||||
/* Version and system type */
|
||||
#ifdef CVSDATE
|
||||
strlcpy( ver, CVSDATE, sizeof( ver ));
|
||||
strncpy( ver + 4, ver + 5, 2 );
|
||||
strncpy( ver + 6, ver + 8, 3 );
|
||||
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
|
||||
|
@@ -14,7 +14,7 @@
|
||||
|
||||
#include "portab.h"
|
||||
|
||||
static char UNUSED id[] = "$Id: irc-mode.c,v 1.50 2007/10/14 12:08:57 alex Exp $";
|
||||
static char UNUSED id[] = "$Id: irc-mode.c,v 1.50.2.1 2008/02/16 11:26:12 fw Exp $";
|
||||
|
||||
#include "imp.h"
|
||||
#include <assert.h>
|
||||
@@ -317,7 +317,7 @@ Channel_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel )
|
||||
/* Prepare reply string */
|
||||
if( set ) strcpy( the_modes, "+" );
|
||||
else strcpy( the_modes, "-" );
|
||||
strcpy( the_args, " " );
|
||||
the_args[0] = '\0';
|
||||
|
||||
x[1] = '\0';
|
||||
ok = CONNECTED;
|
||||
@@ -528,8 +528,8 @@ Channel_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel )
|
||||
/* Channel-User-Mode */
|
||||
if( Channel_UserModeAdd( Channel, client, x[0] ))
|
||||
{
|
||||
strlcat( the_args, Client_ID( client ), sizeof( the_args ));
|
||||
strlcat( the_args, " ", sizeof( the_args ));
|
||||
strlcat( the_args, Client_ID( client ), sizeof( the_args ));
|
||||
strlcat( the_modes, x, sizeof( the_modes ));
|
||||
Log( LOG_DEBUG, "User \"%s\": Mode change on %s, now \"%s\"", Client_Mask( client ), Channel_Name( Channel ), Channel_UserModes( Channel, client ));
|
||||
}
|
||||
@@ -552,8 +552,8 @@ Channel_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel )
|
||||
/* Channel-User-Mode */
|
||||
if( Channel_UserModeDel( Channel, client, x[0] ))
|
||||
{
|
||||
strlcat( the_args, Client_ID( client ), sizeof( the_args ));
|
||||
strlcat( the_args, " ", sizeof( the_args ));
|
||||
strlcat( the_args, Client_ID( client ), sizeof( the_args ));
|
||||
strlcat( the_modes, x, sizeof( the_modes ));
|
||||
Log( LOG_DEBUG, "User \"%s\": Mode change on %s, now \"%s\"", Client_Mask( client ), Channel_Name( Channel ), Channel_UserModes( Channel, client ));
|
||||
}
|
||||
@@ -572,8 +572,7 @@ Channel_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel )
|
||||
/* Are there additional arguments to add? */
|
||||
if( argadd[0] )
|
||||
{
|
||||
len = strlen( the_args ) - 1;
|
||||
if( the_args[len] != ' ' ) strlcat( the_args, " ", sizeof( the_args ));
|
||||
strlcat( the_args, " ", sizeof( the_args ));
|
||||
strlcat( the_args, argadd, sizeof( the_args ));
|
||||
}
|
||||
}
|
||||
@@ -586,9 +585,6 @@ chan_exit:
|
||||
len = strlen( the_modes ) - 1;
|
||||
if(( the_modes[len] == '+' ) || ( the_modes[len] == '-' )) the_modes[len] = '\0';
|
||||
|
||||
/* Clean up argument string if there are none */
|
||||
if( ! the_args[1] ) the_args[0] = '\0';
|
||||
|
||||
if( Client_Type( Client ) == CLIENT_SERVER )
|
||||
{
|
||||
/* Forward mode changes to channel users and other servers */
|
||||
|
@@ -12,7 +12,7 @@
|
||||
|
||||
#include "portab.h"
|
||||
|
||||
static char UNUSED id[] = "$Id: parse.c,v 1.69 2007/11/21 12:16:36 alex Exp $";
|
||||
static char UNUSED id[] = "$Id: parse.c,v 1.69.2.1 2008/02/05 13:11:20 fw Exp $";
|
||||
|
||||
/**
|
||||
* @file
|
||||
@@ -358,7 +358,7 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
|
||||
bool result;
|
||||
COMMAND *cmd;
|
||||
NUMERIC *num;
|
||||
int i;
|
||||
int i, client_type;
|
||||
|
||||
assert( Idx >= 0 );
|
||||
assert( Req != NULL );
|
||||
@@ -436,6 +436,7 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
|
||||
}
|
||||
|
||||
cmd = My_Commands;
|
||||
client_type = Client_Type(client);
|
||||
while( cmd->name )
|
||||
{
|
||||
/* Befehl suchen */
|
||||
@@ -444,7 +445,7 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
|
||||
cmd++; continue;
|
||||
}
|
||||
|
||||
if( Client_Type( client ) & cmd->type )
|
||||
if( client_type & cmd->type )
|
||||
{
|
||||
/* Command is allowed for this client: call it and count produced bytes */
|
||||
Conn_ResetWCounter( );
|
||||
@@ -452,7 +453,7 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
|
||||
cmd->bytes += Conn_WCounter( );
|
||||
|
||||
/* Adjust counters */
|
||||
if( Client_Type( client ) != CLIENT_SERVER ) cmd->lcount++;
|
||||
if( client_type != CLIENT_SERVER ) cmd->lcount++;
|
||||
else cmd->rcount++;
|
||||
|
||||
return result;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# $Id: mode-test.e,v 1.6 2004/03/10 20:40:06 alex Exp $
|
||||
# $Id: mode-test.e,v 1.6.8.1 2008/02/16 11:26:13 fw Exp $
|
||||
|
||||
spawn telnet localhost 6789
|
||||
expect {
|
||||
@@ -72,7 +72,7 @@ expect {
|
||||
send "mode #channel +v nick\r"
|
||||
expect {
|
||||
timeout { exit 1 }
|
||||
"@* MODE #channel +v nick"
|
||||
"@* MODE #channel +v nick\r"
|
||||
}
|
||||
|
||||
send "mode #channel +I nick1\r"
|
||||
@@ -96,7 +96,7 @@ expect {
|
||||
send "mode #channel -vo nick nick\r"
|
||||
expect {
|
||||
timeout { exit 1 }
|
||||
"@* MODE #channel -vo nick nick"
|
||||
"@* MODE #channel -vo nick nick\r"
|
||||
}
|
||||
|
||||
send "quit\r"
|
||||
|
Reference in New Issue
Block a user