Changeset 757 for branches


Ignore:
Timestamp:
07/05/06 02:17:59 (6 years ago)
Author:
wd
Message:

Fix SJOIN sending spurious gack, add an assert for a totally bogus condition
in check_collision.

Location:
branches/ithildin-1.1/modules/ircd/commands
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/ithildin-1.1/modules/ircd/commands/nick.c

    r593 r757  
    289289check_collision(client_t *known, client_t *unknown, bool new) { 
    290290 
     291    /* This condition is extremely incorrect for what should be obvious 
     292     * reasons. */ 
     293    assert(known != unknown); 
     294 
    291295    /* known is the only one which might be a local connection.  if it is on 
    292296     * our server and is unregistered then drop it no matter what. */ 
  • branches/ithildin-1.1/modules/ircd/commands/sjoin.c

    r749 r757  
    3939    add_to_channel(cli, chan, true); 
    4040    sendto_channel_local(chan, cli, NULL, "JOIN", NULL); 
    41     sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, true, sptr, cli, NULL, NULL, 
    42             "SJOIN", "%d %s", chan->created, chan->name); 
    43     sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, false, sptr, cli, NULL, NULL, 
    44             "JOIN", "%s", chan->name); 
     41    sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, true, cli->server, cli, NULL, 
     42            NULL, "SJOIN", "%d %s", chan->created, chan->name); 
     43    sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, false, cli->server, cli, NULL, 
     44            NULL, "JOIN", "%s", chan->name); 
    4545 
    4646    return COMMAND_WEIGHT_NONE; 
     
    118118             * channel. */ 
    119119            sendto_channel_local(chan, cp, NULL, "JOIN", NULL); 
    120             sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, false, sptr, cp, 
     120            sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, false, srv, cp, 
    121121                    NULL, chan->name, "JOIN", NULL); 
    122122            if (changeok) { 
     
    137137                    /* okay... assume that non SJOIN servers also don't use 
    138138                     * TSMODE.. */ 
    139                     sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, false, sptr, 
     139                    sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, false, srv, 
    140140                           NULL, srv, chan->name, "MODE", "+%s%s %d", modes, 
    141141                           modebuf, chan->created);  
     
    153153    /* if we have leftover modes, send them first */ 
    154154    if (changeok && mset) { 
    155         sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, false, sptr, 
     155        sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, false, srv, 
    156156               NULL, srv, chan->name, "MODE", "+%s%s %d", modes, 
    157157               modebuf, chan->created);  
     
    168168        mlen += sprintf(&modebuf[mlen], " %s", argv[i++]); 
    169169 
    170     sendto_serv_butone(srv, NULL, srv, NULL, "SJOIN", "%d %s %s%s :%s", 
    171             chan->created, chan->name, argv[3], modebuf, realjoiners); 
     170    sendto_serv_pflag_butone(PROTOCOL_SFL_SJOIN, true, srv, NULL, srv, NULL, 
     171            "SJOIN", "%d %s %s%s :%s", chan->created, chan->name, argv[3], 
     172            modebuf, realjoiners); 
    172173 
    173174    return 1; 
Note: See TracChangeset for help on using the changeset viewer.