diff options
Diffstat (limited to 'irc_send.c')
-rw-r--r-- | irc_send.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -162,7 +162,8 @@ void irc_send_names( irc_channel_t *ic ) channel is invalid, just give an empty reply. */ for( l = ic->users; l; l = l->next ) { - irc_user_t *iu = l->data; + irc_channel_user_t *icu = l->data; + irc_user_t *iu = icu->iu; if( strlen( namelist ) + strlen( iu->nick ) > sizeof( namelist ) - 4 ) { @@ -242,9 +243,13 @@ void irc_send_whois( irc_user_t *iu ) void irc_send_who( irc_t *irc, GSList *l, const char *channel ) { + gboolean is_channel = strcmp( channel, "**" ) != 0; + while( l ) { irc_user_t *iu = l->data; + if( is_channel ) + iu = ((irc_channel_user_t*)iu)->iu; /* TODO(wilmer): Restore away/channel information here */ irc_send_num( irc, 352, "%s %s %s %s %s %c :0 %s", channel ? : "*", iu->user, iu->host, irc->root->host, |