[X2serv-cvs] CVS: x2/source commands.c,1.140,1.141 parse.c,1.58,1.59 server.c,1.15,1.16
Brought to you by:
sirvulcan
From: Alex S. <ru...@us...> - 2001-04-11 09:04:35
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv6683/source Modified Files: commands.c parse.c server.c Log Message: Added support for JOIN 0 which was missing. (now that the ircu sends it, we should parse it ;) NOTE: While testing this out, x2dev (which was an un-patched x2) segfaulted, which suggests all prior versions of x2 to this one are vulnerable to a bug when users use JOIN 0 a lot and then quit! Index: commands.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/commands.c,v retrieving revision 1.140 retrieving revision 1.141 diff -C2 -r1.140 -r1.141 *** commands.c 2001/03/14 15:37:48 1.140 --- commands.c 2001/04/11 09:04:31 1.141 *************** *** 858,861 **** --- 858,862 ---- char modetmp[20] = ""; AuthHandleListType ahptr; + JoinedChansListType jptr; /* The ownerlist is really for what chans were in, *************** *** 899,902 **** --- 900,907 ---- { send_to_user(uptr, "\002 %s\002 on %s.", ahptr->hptr->Handle, ahptr->cptr->Name); + } + for(jptr = target->Chans;jptr;jptr = jptr->Next) + { + send_to_user(uptr, "\002 In channel %s", jptr->cptr->Name); } Index: parse.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/parse.c,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -r1.58 -r1.59 *** parse.c 2001/02/28 10:11:29 1.58 --- parse.c 2001/04/11 09:04:31 1.59 *************** *** 422,430 **** ChannelListType cptr; cptr = GetChannel(&channel[i+1]); ! ProcessJoin(cptr, uptr, &channel[i+1], 'J'); channel[i] = '\0'; } } ! ProcessJoin(GetChannel(channel), uptr, channel, 'J'); return(0); } --- 422,445 ---- ChannelListType cptr; cptr = GetChannel(&channel[i+1]); ! if(!strcmp(&channel[i+1], "0")) ! { ! RemoveNickFromAllChannels(uptr); ! } ! else ! { ! ProcessJoin(cptr, uptr, &channel[i+1], 'J'); ! } channel[i] = '\0'; } } ! if(!strcmp(channel, "0")) ! { ! /* JOIN 0 means part all join'd channels. */ ! RemoveNickFromAllChannels(uptr); ! } ! else ! { ! ProcessJoin(GetChannel(channel), uptr, channel, 'J'); ! } return(0); } Index: server.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/server.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** server.c 2001/03/04 10:30:22 1.15 --- server.c 2001/04/11 09:04:31 1.16 *************** *** 101,105 **** if(UserPtr == NULL) return(FALSE); ! sprintf(uhr, "%s@%s$%s", UserPtr->UserID, UserPtr->Address, UserPtr->RealName); gptr = SuperGlines; --- 101,105 ---- if(UserPtr == NULL) return(FALSE); ! sprintf(uhr, "%s!%s@%s$%s", UserPtr->Nick, UserPtr->UserID, UserPtr->Address, UserPtr->RealName); gptr = SuperGlines; |