mirror of
https://github.com/osmarks/ngircd.git
synced 2025-07-03 10:22:49 +00:00
send "G" flag in WHOIS replies instead of "H" if client is marked as being away.
(reported by Dana Dahlstrom)
This commit is contained in:
parent
e92c889580
commit
082a92beef
@ -10,6 +10,7 @@
|
||||
-- ChangeLog --
|
||||
ngIRCd 0.11.1
|
||||
|
||||
- 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]
|
||||
|
||||
@ -737,4 +738,4 @@ ngIRCd 0.0.1, 31.12.2001
|
||||
|
||||
|
||||
--
|
||||
$Id: ChangeLog,v 1.332.2.7 2008/02/16 11:26:11 fw Exp $
|
||||
$Id: ChangeLog,v 1.332.2.8 2008/02/26 12:06:57 fw Exp $
|
||||
|
5
NEWS
5
NEWS
@ -9,6 +9,9 @@
|
||||
|
||||
-- NEWS --
|
||||
|
||||
ngIRCd 0.11.0 (2008-02-27)
|
||||
|
||||
- send "G" instead of "H" flag in WHO replies (reported by Dana Dahlstrom).
|
||||
|
||||
ngIRCd 0.11.0 (2008-01-15)
|
||||
|
||||
@ -251,4 +254,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.3 2008/02/26 12:06:57 fw Exp $
|
||||
|
@ -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 ));
|
||||
|
Loading…
x
Reference in New Issue
Block a user