Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • irc.c

    r2f13222 r9b63df6  
    657657                c = conv_findchannel( channel );
    658658       
    659         /* RFCs say there is no error reply allowed on NAMES, so when the
     659        /* RFC's say there is no error reply allowed on NAMES, so when the
    660660           channel is invalid, just give an empty reply. */
    661661       
     
    671671                                        s = "";
    672672                               
    673                                 irc_reply( irc, 353, "= %s :%s%s", channel, s, u->nick );
     673                                irc_reply( irc, 353, "@ %s :%s%s", channel, s, u->nick );
    674674                        }
    675675                        else if( !u->gc )
     
    682682                                        s = "";
    683683                               
    684                                 irc_reply( irc, 353, "= %s :%s%s", channel, s, u->nick );
     684                                irc_reply( irc, 353, "@ %s :%s%s", channel, s, u->nick );
    685685                        }
    686686                }
     
    697697                for( l = c->in_room; l; l = l->next )
    698698                        if( ( u = user_findhandle( c->gc, l->data ) ) )
    699                                 irc_reply( irc, 353, "= %s :%s%s", channel, "", u->nick );
     699                                irc_reply( irc, 353, "@ %s :%s%s", channel, "", u->nick );
    700700        }
    701701       
     
    735735        irc_reply( irc,   5, "PREFIX=(ov)@+ CHANTYPES=#& CHANMODES=,,,%s NICKLEN=%d NETWORK=BitlBee CASEMAPPING=rfc1459 MAXTARGETS=1 WATCH=128 :are supported by this server", CMODES, MAX_NICK_LENGTH - 1 );
    736736        irc_motd( irc );
    737         irc->umode[0] = '\0';
    738737        irc_umode_set( irc, "+" UMODE, 1 );
    739738
     
    843842        char m[256], st = 1, *t;
    844843        int i;
    845         char changes[512], *p, st2 = 2;
    846         char badflag = 0;
    847844       
    848845        memset( m, 0, sizeof( m ) );
     
    850847        for( t = irc->umode; *t; t ++ )
    851848                m[(int)*t] = 1;
    852 
    853         p = changes;
     849       
    854850        for( t = s; *t; t ++ )
    855851        {
     
    857853                        st = *t == '+';
    858854                else if( st == 0 || ( strchr( UMODES, *t ) || ( allow_priv && strchr( UMODES_PRIV, *t ) ) ) )
    859                 {
    860                         if( m[(int)*t] != st)
    861                         {
    862                                 if( st != st2 )
    863                                         st2 = st, *p++ = st ? '+' : '-';
    864                                 *p++ = *t;
    865                         }
    866855                        m[(int)*t] = st;
    867                 }
    868                 else
    869                         badflag = 1;
    870         }
    871         *p = '\0';
     856        }
    872857       
    873858        memset( irc->umode, 0, sizeof( irc->umode ) );
     
    877862                        irc->umode[strlen(irc->umode)] = i;
    878863       
    879         if( badflag )
    880                 irc_reply( irc, 501, ":Unknown MODE flag" );
    881         /* Deliberately no !user@host on the prefix here */
    882         if( *changes )
    883                 irc_write( irc, ":%s MODE %s %s", irc->nick, irc->nick, changes );
     864        irc_reply( irc, 221, "+%s", irc->umode );
    884865}
    885866
Note: See TracChangeset for help on using the changeset viewer.