x2serv-cvs Mailing List for X2 IRC Channel and Oper Services (Page 9)
Brought to you by:
sirvulcan
You can subscribe to this list here.
2001 |
Jan
(33) |
Feb
(14) |
Mar
(26) |
Apr
(19) |
May
(28) |
Jun
(5) |
Jul
(6) |
Aug
(5) |
Sep
(6) |
Oct
(1) |
Nov
(21) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(3) |
Feb
(14) |
Mar
|
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2003 |
Jan
(1) |
Feb
(4) |
Mar
|
Apr
|
May
(4) |
Jun
(6) |
Jul
|
Aug
|
Sep
|
Oct
(7) |
Nov
|
Dec
|
2004 |
Jan
|
Feb
|
Mar
(7) |
Apr
|
May
|
Jun
(19) |
Jul
(5) |
Aug
(16) |
Sep
(4) |
Oct
(10) |
Nov
(7) |
Dec
(6) |
2005 |
Jan
(4) |
Feb
(5) |
Mar
(24) |
Apr
(6) |
May
(17) |
Jun
(11) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Wolfram K. <qu...@sq...> - 2001-11-14 18:58:32
|
Patch in DIFF attached to the mail, two changes: (A) when you attempted to KICK a user from a channel, IF the user was ONLINE but NOT in the channel, X2 wouldn't respond, has been fixed. (B) When services were shutdown with QUIT, the reason in the SQUIT message was missing due to a minor bug, fixed. - Wolfram Knipp |
From: Alex S. <ru...@us...> - 2001-11-14 17:15:26
|
Update of /cvsroot/x2serv/x2/HELP In directory usw-pr-cvs1:/tmp/cvs-serv29514 Modified Files: SET Log Message: fixed bug in .help set (peonvoice = voice) Index: SET =================================================================== RCS file: /cvsroot/x2serv/x2/HELP/SET,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** SET 2001/07/12 12:18:33 1.5 --- SET 2001/11/14 17:15:21 1.6 *************** *** 23,27 **** modes. BANTIMEOUT : this controls how long bans are left active. ! PEONVOICE : this determines if $n gives +v to PEONS. USERINFO : this controls if $n displays info lines when users join. --- 23,27 ---- modes. BANTIMEOUT : this controls how long bans are left active. ! VOICE : this determines if $n gives +v to PEONS. USERINFO : this controls if $n displays info lines when users join. |
From: Alex S. <ru...@us...> - 2001-11-11 12:23:24
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv21739 Modified Files: commands.c Log Message: blist allowed anyone to look at the banlist, while the reset of the llist commands didnt. Fixed. Index: commands.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/commands.c,v retrieving revision 1.160 retrieving revision 1.161 diff -C2 -r1.160 -r1.161 *** commands.c 2001/09/21 11:57:06 1.160 --- commands.c 2001/11/11 12:23:21 1.161 *************** *** 135,139 **** { "CLIST", c_clist, REGED, 0, 0, 0, F, T }, { "WLIST", c_wlist, REGED, 0, 0, 0, F, T }, ! { "BLIST", c_llist, REGED, 0, T, T, F, T }, { "LLIST", c_llist, REGED, PE, T, T, F, T }, { "CHANSTAT", c_chanstat, REQED, 0, 0, 0, F, T }, --- 135,139 ---- { "CLIST", c_clist, REGED, 0, 0, 0, F, T }, { "WLIST", c_wlist, REGED, 0, 0, 0, F, T }, ! { "BLIST", c_llist, REGED, PE, T, T, F, T }, { "LLIST", c_llist, REGED, PE, T, T, F, T }, { "CHANSTAT", c_chanstat, REQED, 0, 0, 0, F, T }, |
From: Alex S. <ru...@us...> - 2001-11-11 11:37:18
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv8847/source Modified Files: misc.c Log Message: A fix so that its more obvious who did a command: The accounting.log (and thus the .last command) now shows handle, in addition to n!u@h. Also shows handle during login command. Index: misc.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/misc.c,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -r1.45 -r1.46 *** misc.c 2001/08/03 09:15:22 1.45 --- misc.c 2001/11/11 11:37:12 1.46 *************** *** 290,306 **** FILE* LOGFILE; char buff[MAXLEN*4]; /* global nick!user@host command rest [time] */ /* #channel nick!user@host +h command rest [time] */ if( ! (strcasecmp(command, "LOGIN") && strcasecmp(command, "RESETPASS") && - strcasecmp(command, "PASS") && strcasecmp(command, "MLOGIN") ) ) { ! rest = "*********"; /* hide passwords */ } if(ChanSecurity) { ! sprintf(buff, "[%s] %s %s!%s@%s %s %s %s", time2str(time(NULL)), ! cptr->Name, uptr->Nick, uptr->UserID, uptr->Address, HelpOverride?"+h":"-h", command, rest); } --- 290,310 ---- FILE* LOGFILE; char buff[MAXLEN*4]; + int hidepass = 0; /* global nick!user@host command rest [time] */ /* #channel nick!user@host +h command rest [time] */ if( ! (strcasecmp(command, "LOGIN") && strcasecmp(command, "RESETPASS") && strcasecmp(command, "MLOGIN") ) ) { ! rest = strtok(rest, " "); } + if(!(strcasecmp(command, "PASS"))) + { + rest = "*********"; + } if(ChanSecurity) { ! sprintf(buff, "[%s] %s %s(%s!%s@%s) %s %s %s", time2str(time(NULL)), ! cptr->Name, hptr?hptr->Handle:"*", uptr->Nick, uptr->UserID, uptr->Address, HelpOverride?"+h":"-h", command, rest); } |
From: Alex S. <ru...@us...> - 2001-11-11 11:37:18
|
Update of /cvsroot/x2serv/x2 In directory usw-pr-cvs1:/tmp/cvs-serv8847 Modified Files: configure Log Message: A fix so that its more obvious who did a command: The accounting.log (and thus the .last command) now shows handle, in addition to n!u@h. Also shows handle during login command. Index: configure =================================================================== RCS file: /cvsroot/x2serv/x2/configure,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** configure 2000/10/11 03:14:38 1.2 --- configure 2001/11/11 11:37:11 1.3 *************** *** 525,529 **** PACKAGE=x2serv ! VERSION=5.0.3 --- 525,529 ---- PACKAGE=x2serv ! VERSION=5.1 *************** *** 1345,1349 **** /* Ultrix mips cc rejects this. */ ! typedef int charset[2]; const charset x = {0,0}; /* SunOS 4.1.1 cc rejects this. */ char const *const *ccp; --- 1345,1349 ---- /* Ultrix mips cc rejects this. */ ! typedef int charset[2]; const charset x; /* SunOS 4.1.1 cc rejects this. */ char const *const *ccp; |
From: Alex S. <ru...@us...> - 2001-11-08 12:54:46
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv20672 Modified Files: config.h Log Message: more 5.1 cleanup.. Index: config.h =================================================================== RCS file: /cvsroot/x2serv/x2/source/config.h,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -r1.62 -r1.63 *** config.h 2001/11/08 12:44:54 1.62 --- config.h 2001/11/08 12:54:42 1.63 *************** *** 34,38 **** /* * Please do not remove the name 'X2' and the version from this reply. If you ! * make modifications please use the format: 5.0+<yournet>.<yourversion> * Or, use one of the replies provided. Obviously theres no way for me * to enforce this, but I have put many hundreds of hours into this program --- 34,38 ---- /* * Please do not remove the name 'X2' and the version from this reply. If you ! * make modifications please use the format: 5.1+<yournet>.<yourversion> * Or, use one of the replies provided. Obviously theres no way for me * to enforce this, but I have put many hundreds of hours into this program |
From: Alex S. <ru...@us...> - 2001-11-08 12:53:10
|
Update of /cvsroot/x2serv/x2 In directory usw-pr-cvs1:/tmp/cvs-serv20287 Modified Files: configure.in Log Message: cleaned up some more 5.1 version changes Index: configure.in =================================================================== RCS file: /cvsroot/x2serv/x2/configure.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** configure.in 2000/10/11 03:14:38 1.2 --- configure.in 2001/11/08 12:53:07 1.3 *************** *** 3,7 **** AC_CONFIG_HEADER(source/setup.h) PACKAGE=x2serv ! VERSION=5.0.3 AC_SUBST(PACKAGE) AC_SUBST(VERSION) --- 3,7 ---- AC_CONFIG_HEADER(source/setup.h) PACKAGE=x2serv ! VERSION=5.1 AC_SUBST(PACKAGE) AC_SUBST(VERSION) |
From: Alex S. <ru...@us...> - 2001-11-08 12:53:10
|
Update of /cvsroot/x2serv/x2/doc In directory usw-pr-cvs1:/tmp/cvs-serv20287/doc Modified Files: ircd.txt Log Message: cleaned up some more 5.1 version changes Index: ircd.txt =================================================================== RCS file: /cvsroot/x2serv/x2/doc/ircd.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** ircd.txt 2001/03/21 18:26:42 1.1 --- ircd.txt 2001/11/08 12:53:07 1.2 *************** *** 15,19 **** 90% of the questions I get regarding X2 are from ! people who are trying to link X2 to misc. irc servers which are not universal ircd. The answer is it does not work. They communicate differently. Its --- 15,19 ---- 90% of the questions I get regarding X2 are from ! people who are trying to link X2 to irc servers which are not universal ircd. The answer is it does not work. They communicate differently. Its |
From: Alex S. <ru...@us...> - 2001-11-08 12:44:58
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv18238 Modified Files: config.h Log Message: Rolled the version reply to 5.1 in preperation for release. Index: config.h =================================================================== RCS file: /cvsroot/x2serv/x2/source/config.h,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -r1.61 -r1.62 *** config.h 2001/11/08 08:21:08 1.61 --- config.h 2001/11/08 12:44:54 1.62 *************** *** 40,47 **** * on. * [alternate replies] ! * #define VERSION "X2 v5.0 - Channel and Oper services" ! * #define VERSION "<YourNet> Channel services powered by Rubin's X2 version 5.0" */ ! #define VERSION "X2 v5.0.99 - AfterNET Channel Services" /* This is used to refer to your network in various places. It should be one word, eg "AfterNET" */ --- 40,47 ---- * on. * [alternate replies] ! * #define VERSION "X2 v5.1 - Channel and Oper services" ! * #define VERSION "<YourNet> Channel services powered by Rubin's X2 version 5.1" */ ! #define VERSION "X2 v5.1 - AfterNET Channel Services" /* This is used to refer to your network in various places. It should be one word, eg "AfterNET" */ |
From: Alex S. <ru...@us...> - 2001-11-08 08:21:15
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv13537/source Modified Files: chan.c config.h parse.c user.c Log Message: Updating the readme's and stuff in preperation for a release. Index: chan.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/chan.c,v retrieving revision 1.76 retrieving revision 1.77 diff -C2 -r1.76 -r1.77 *** chan.c 2001/08/28 17:37:08 1.76 --- chan.c 2001/11/08 08:21:08 1.77 *************** *** 430,433 **** --- 430,434 ---- char *numnick = NULL; char *banstring; + char *exemptstring; char *key; char *limit; *************** *** 529,532 **** --- 530,549 ---- } break; + case 'e': + exemptstring = (char *) strtok(params, " "); + params = (char *) strtok(NULL, "\0\n"); + if (!exemptstring) + break; + if (sign == '+') + { + // if (!IsModeK(uptr)) /* If its not a service doing it */ + // add_exempt(cptr, exemptstring); + } + else + /* sign == '-' */ + { + //delete_exempt(cptr, exemptstring); + } + break; case 'v': numnick = (char *) strtok(params, " "); *************** *** 617,620 **** --- 634,659 ---- } break; + case 'R': + if (modeok(cptr, uptr)) + break; + if (sign == '+') + { + if (cptr->MinModes & CMODER) + { + strcat(unminmode, "R"); + did_change = TRUE; + } + } + else + /* sign == '-' */ + { + if (cptr->PlusModes & CMODER) + { + strcat(unplusmode, "R"); + did_change = TRUE; + } + } + break; + case 'i': if (modeok(cptr, uptr)) Index: config.h =================================================================== RCS file: /cvsroot/x2serv/x2/source/config.h,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -r1.60 -r1.61 *** config.h 2001/08/28 17:37:08 1.60 --- config.h 2001/11/08 08:21:08 1.61 *************** *** 207,210 **** --- 207,212 ---- /* These are for channel mode parsing */ #define NOMODES 0 + #define CMODEe 512 + #define CMODER 256 #define CMODEn 128 #define CMODEt 64 *************** *** 217,222 **** /* These are for User mode parsing.. */ ! #define UMODEaway 512 ! #define UMODEgod 256 #define UMODEx 128 #define UMODEs 64 --- 219,226 ---- /* These are for User mode parsing.. */ ! #define UMODEaway 2048 ! #define UMODEgod 1024 ! #define UMODER 512 ! #define UMODEr 256 #define UMODEx 128 #define UMODEs 64 *************** *** 472,476 **** struct JoinedChansStruct *Chans; int Clones; ! unsigned int Modes:10; /* 0 0 0 0 0 0 0 0 0 = bits */ time_t LastInvite; struct UserStruct *NextA; --- 476,480 ---- struct JoinedChansStruct *Chans; int Clones; ! unsigned int Modes; /* 0 0 0 0 0 0 0 0 0 0 0 = bits */ time_t LastInvite; struct UserStruct *NextA; *************** *** 499,504 **** { char *Name; /* n t s p i l k m = modes */ ! unsigned int Modes; /* 0 0 0 0 0 0 0 0 = bits */ ! char *Topic; /* 8 7 6 5 4 3 2 1 = bit position */ char *Email; char *Description; --- 503,508 ---- { char *Name; /* n t s p i l k m = modes */ ! unsigned int Modes; /* 0 0 0 0 0 0 0 0 0 = bits */ ! char *Topic; /* 9 8 7 6 5 4 3 2 1 = bit position */ char *Email; char *Description; Index: parse.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/parse.c,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -r1.67 -r1.68 *** parse.c 2001/09/18 12:51:26 1.67 --- parse.c 2001/11/08 08:21:08 1.68 *************** *** 493,497 **** check only on /join, and not on /part, we were getting strange wallops */ ! #ifndef CHARMIN #define CHAR_MIN -128 #endif --- 493,497 ---- check only on /join, and not on /part, we were getting strange wallops */ ! #ifndef CHAR_MIN #define CHAR_MIN -128 #endif Index: user.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/user.c,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -r1.33 -r1.34 *** user.c 2001/04/10 01:11:17 1.33 --- user.c 2001/11/08 08:21:08 1.34 *************** *** 564,567 **** --- 564,573 ---- UserMode = UMODEx; break; + case 'r': + UserMode = UMODEr; + break; + case 'R': + UserMode = UMODER; + break; case '-': Operator = ch; |
From: Alex S. <ru...@us...> - 2001-11-08 08:21:12
|
Update of /cvsroot/x2serv/x2 In directory usw-pr-cvs1:/tmp/cvs-serv13537 Modified Files: INSTALL README Log Message: Updating the readme's and stuff in preperation for a release. Index: INSTALL =================================================================== RCS file: /cvsroot/x2serv/x2/INSTALL,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** INSTALL 2001/03/21 18:42:49 1.5 --- INSTALL 2001/11/08 08:21:08 1.6 *************** *** 1,15 **** Ok, quick and dirty: ! X2 WORKS ONLY WITH UNIVERSAL IRCD http://x2serv.sourceforge.net it will NOT connect to Undernet ircu2.10.08 or higher without ! serious modifications!!! (Undernet has stopped using the P10 protocol) Basic Install procedure: ------------------------- ./configure --prefix="installdirectory" # where installdirectory is the path to install. (/home/rubin/x2serv, for example) ! vi source/config.h # make any changes deemed necessary make make install # this will copy bin and example config files to ??? above cd installdirectory ! vi x2.conf # edit settings for your net etc ------------------------- --- 1,15 ---- Ok, quick and dirty: ! X2 WORKS ONLY WITH UNIVERSAL IRCD http://www.sourceforge.net/projects/ircu it will NOT connect to Undernet ircu2.10.08 or higher without ! serious modifications!!! (Undernet has changed the P10 protocol they use) Basic Install procedure: ------------------------- ./configure --prefix="installdirectory" # where installdirectory is the path to install. (/home/rubin/x2serv, for example) ! edit source/config.h # make any changes deemed necessary make make install # this will copy bin and example config files to ??? above cd installdirectory ! edit x2.conf # edit settings for your net etc ------------------------- *************** *** 23,29 **** Please see the documents in the doc/ directory for details on some ! administrative features such as routing and news. -Rubin ru...@af... ! http://www.rdrop.com/~rubin "I know EVERYTHING. I just Can't remember it all at once." --- 23,29 ---- Please see the documents in the doc/ directory for details on some ! administrative features such as routing, news, and upgrading. -Rubin ru...@af... ! http://rubin.loxxin.net "I know EVERYTHING. I just Can't remember it all at once." Index: README =================================================================== RCS file: /cvsroot/x2serv/x2/README,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** README 2001/09/04 02:34:37 1.6 --- README 2001/11/08 08:21:08 1.7 *************** *** 2,34 **** Alright folks here it is. Complete channel and oper services ! for universal ircd or any P10 irc network (undernet too, for now) - In addition, we've totally ditched the userlist system and rebuilt it - from scratch. New system is login/pass based, but you can add 'secure' - hostmasks if you dont want to put in a pass. All the ambiguity - surrounding accesses and handles is gone, AND, 5.1 automatically upgrades - from 5.0.3 data files too, so theres no hassle. - - We also totally rewrote alomst every internal function to pass and accept - references rather then passing individual strings around; the result we lookup - information WAY less, use less memory, and (can you believe it) even less CPU then before. - - -------- X2 5.0.99 (pre 5.1) development -------- - - This release is _ALPHA_. It appears stable enough to - run without crashing a network, but we need testers! - see http://sourceforge.net/projects/x2serv/ to submit bugs, - feature requests, etc. You can also obtain the latest - CVS version from there. - - -------- X2 5.x Channel and Oper Services ------- - I am hereby releasing the source to the channel services we at AfterNet have been using for several years to the general public, under the terms and conditions of the GNU public liscence. ! It is my firm belief that the heart of the internet is dieing. Too many people have forgotten the benifits of free information and sharing, in ! favor of commercial moneymaking. By providing to you, this software which embodies thousands of hours of --- 2,23 ---- Alright folks here it is. Complete channel and oper services ! for universal ircd based IRC network. This version of x2 is compatable ! with universal ircd ircu2.10.08.37 or above. The 2.10.09 release is ! reccomended. ! ***X2 DOES NOT WORK WITH UNDERNET IRC DAEMON!*** ! Undernet has made changes to the P10 protocol which X2 is NOT COMPATABLE with. I am hereby releasing the source to the channel services we at AfterNet have been using for several years to the general public, under the terms and conditions of the GNU public liscence. ! -- Sharing -- ! It is my belief that the heart of the internet is dieing. Too many people have forgotten the benifits of free information and sharing, in ! favor of commercial moneymaking. ! [upd: Since this plea first went out in ~1998, MANY service coders ! have made the noble decision to opensource their code. Services ! of all flavors and sizes are now available to anyone running an irc ! network. Keep it up-- we are all on the net together.] By providing to you, this software which embodies thousands of hours of *************** *** 36,47 **** nifty program you may some day write, to the public for free. Please use this in any way it helps you, all I ask is that proper credit is ! given where due. If you make fixes, or neato improvements, please ! take a moment to "man diff" and email me a diff file containing your ! modifications. In this way all of us can share your work. When I see ! my work being passed off as somone elses with no credit, it makes me ! wonder if releasing future versions is worth it. -Rubin (ru...@af...) ! P.S. Check it out, X2 based services are now running on the following nets! ---------------------------------------------------- --- 25,37 ---- nifty program you may some day write, to the public for free. Please use this in any way it helps you, all I ask is that proper credit is ! given where due. When I see my work being passed off as somone elses ! with no credit, it makes me wonder if releasing future versions is ! worth it. If you make fixes, or neato improvements, please take a ! moment to email me a diff file containing your modifications. In ! this way all of us can share your work. -Rubin (ru...@af...) ! -- X2 spotted in the wild -- ! Check it out! X2 based services are now running on the following nets! ---------------------------------------------------- *************** *** 49,62 **** ---------------------------------------------------- AfterNET irc.afternet.org X2 300 ! GamesNet irc.gamesnet.net ChanServ 4500 ! AsylumNet irc.asylum-net.org X 200 ! TeleFragged irc.telefragged.com ChanServ 250 ! GDChat irc.GDChat.org X2 10 ! clanshack irc.clanshack.com ChanServ 15 ! uNFaNet.Org irc.unfanet.org X2 15 ! AbleNet irc.ablenet.org X2 13 - YourNet? email me! ru...@af... ---------- Changes in 5.0.3 -------- --- 39,87 ---- ---------------------------------------------------- AfterNET irc.afternet.org X2 300 ! AsylumNet irc.asylum-net.org X 700 ! TeleFragged irc.telefragged.com ChanServ 35 ! GDChat irc.GDChat.org X2 40 ! uNFaNet.Org irc.unfanet.org X2 10 ! AbleNet irc.ablenet.org X2 25 ! ! Add your net? Email me. ru...@af... ! ! -- Changes -- ! ------- Changes for 5.1 ------------------------ ! Note: This is a major upgrade. If you're upgrading from a ! 5.0.3 or earlier release, you should know that we've totally ! ditched the userlist system and rebuilt it from scratch. ! New system is login/pass based, but you can add 'secure' ! hostmasks if you dont want to put in a pass. All the ambiguity ! surrounding accesses and handles is gone, AND, 5.1 automatically upgrades ! from 5.0.3 data files too, so theres no hassle. It works quite differently ! from before however, so it will take some adjustment on the part of your ! users. + We also totally rewrote alomst every internal function to pass and accept + references rather then passing individual strings around; the result + we lookup information WAY less, use less memory, and (can you believe + it) even less CPU then before. + + Some of the many new features: + * Improved wingate checking. Also can scan for sub7 connections + * New auto-routing feature, can "smartly" reconnect servers according + to a map provided by you. + * More secure userlist scheme + * time limited channel suspensions with reason field and logging. + * Automatically deletes unused channels and logs them. + * crash problems with the calc command fixed + * Now uses autoconf to create makefiles etc. + * Help files support variable substitution for network, x2nick, cmdchar, etc + * Spell checked everything + * Fixed hash size limit handling + * Internal optimizations + * Added support for run's P10 server protocol + http://www.xs4all.nl/~carlo17/irc/P10.html + Currently ONLY universal ircd (http://www.sf.net/projects/ircu) + supports this. + * Nolonger supports P9 (undernet 2.10.07 or lower) ircd's. + * Nolonger supports Hybrid TS4 servers. ---------- Changes in 5.0.3 -------- |
From: Alex S. <ru...@us...> - 2001-10-28 16:00:06
|
Update of /cvsroot/x2serv/x2/HELP In directory usw-pr-cvs1:/tmp/cvs-serv9668 Modified Files: DELLAMER Log Message: fixed an error in the see also line referencing things that didnt exist Index: DELLAMER =================================================================== RCS file: /cvsroot/x2serv/x2/HELP/DELLAMER,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** DELLAMER 2000/12/19 08:11:55 1.2 --- DELLAMER 2001/10/28 16:00:02 1.3 *************** *** 8,10 **** DELLAMER is available to levels MANAGER or above. ! SEE ALSO: FDELLAMER LLIST ACCESS UNLAMER INVITEME --- 8,10 ---- DELLAMER is available to levels MANAGER or above. ! SEE ALSO: LLIST ACCESS INVITEME |
From: Richard P. <lys...@us...> - 2001-09-21 11:57:09
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv29719 Modified Files: calc.c commands.c Log Message: Fixed the calc and enabled it Index: calc.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/calc.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** calc.c 2001/01/02 10:53:45 1.10 --- calc.c 2001/09/21 11:57:06 1.11 *************** *** 371,375 **** if (List->Type == mNumber) { PostFix = PostFix->Next = List; ! List = List->Next; PostFix->Next = NULL; } --- 371,375 ---- if (List->Type == mNumber) { PostFix = PostFix->Next = List; ! ListFirst = List = List->Next; PostFix->Next = NULL; } *************** *** 391,395 **** Stack->Next = NULL; Temp = List; ! List = List->Next; free(Temp); break; --- 391,395 ---- Stack->Next = NULL; Temp = List; ! ListFirst = List = List->Next; free(Temp); break; Index: commands.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/commands.c,v retrieving revision 1.159 retrieving revision 1.160 diff -C2 -r1.159 -r1.160 *** commands.c 2001/09/18 12:51:26 1.159 --- commands.c 2001/09/21 11:57:06 1.160 *************** *** 203,209 **** { "8BALL", c_8ball, NONE, 0, 0, 0, F, T }, { "8", c_8ball, NONE, 0, 0, 0, F, T }, - /* Disabled due to crashes { "CALC", c_calc, NONE, 0, 0, 0, F, T }, - */ { "WHOIS", c_whois, NONE, 0, 0, 0, T, T }, { "WHOAMI", c_whoami, NONE, 0, 0, 0, F, T }, --- 203,207 ---- |
From: Richard P. <lys...@us...> - 2001-09-18 12:51:29
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv2746/source Modified Files: commands.c parse.c Log Message: Changed a little bug, .access didn't say 'a lamer' when it was supposed to say it. Also suppresed a warning when CHAR_MIN was already defined. Index: commands.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/commands.c,v retrieving revision 1.158 retrieving revision 1.159 diff -C2 -r1.158 -r1.159 *** commands.c 2001/09/17 04:32:27 1.158 --- commands.c 2001/09/18 12:51:26 1.159 *************** *** 1872,1876 **** } else if (target && IsChanLamer(cptr, target)) ! send_to_user(uptr, "%s is %s from %s!", target->Nick, level, cptr->Name); else send_to_user(uptr, "%s is not on the %s userlist.", target->Nick, cptr->Name); --- 1872,1876 ---- } else if (target && IsChanLamer(cptr, target)) ! send_to_user(uptr, "%s is a lamer from %s!", target->Nick, cptr->Name); else send_to_user(uptr, "%s is not on the %s userlist.", target->Nick, cptr->Name); Index: parse.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/parse.c,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -r1.66 -r1.67 *** parse.c 2001/07/28 19:17:24 1.66 --- parse.c 2001/09/18 12:51:26 1.67 *************** *** 493,497 **** --- 493,499 ---- check only on /join, and not on /part, we were getting strange wallops */ + #ifndef CHARMIN #define CHAR_MIN -128 + #endif const unsigned int NTL_char_attrib[] = { #if (CHAR_MIN<0) |
From: Alex S. <ru...@us...> - 2001-09-17 04:32:30
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv17510 Modified Files: commands.c Log Message: disabled the calc command (again) due to crashes. Index: commands.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/commands.c,v retrieving revision 1.157 retrieving revision 1.158 diff -C2 -r1.157 -r1.158 *** commands.c 2001/09/03 13:28:46 1.157 --- commands.c 2001/09/17 04:32:27 1.158 *************** *** 203,207 **** --- 203,209 ---- { "8BALL", c_8ball, NONE, 0, 0, 0, F, T }, { "8", c_8ball, NONE, 0, 0, 0, F, T }, + /* Disabled due to crashes { "CALC", c_calc, NONE, 0, 0, 0, F, T }, + */ { "WHOIS", c_whois, NONE, 0, 0, 0, T, T }, { "WHOAMI", c_whoami, NONE, 0, 0, 0, F, T }, |
From: Alex S. <ru...@us...> - 2001-09-04 02:34:40
|
Update of /cvsroot/x2serv/x2/HELP In directory usw-pr-cvs1:/tmp/cvs-serv27996/HELP Modified Files: SUSPEND Log Message: Updated suspend help file. Index: SUSPEND =================================================================== RCS file: /cvsroot/x2serv/x2/HELP/SUSPEND,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** SUSPEND 2001/05/31 14:10:32 1.6 --- SUSPEND 2001/09/04 02:34:37 1.7 *************** *** 1,3 **** ! Usage: SUSPEND [#channel] <reason> ------------------------------- The SUSPEND command is used by ircops to temporarily take $n --- 1,3 ---- ! Usage: SUSPEND [#channel] <#>:MIN/HOUR/DAY <reason> ------------------------------- The SUSPEND command is used by ircops to temporarily take $n *************** *** 5,14 **** It is a non-destructive alternative to UNREG, when you would prefer not to delete the userlist. The time of the suspension ! is saved, along with a reason, and the nick of who suspended ! it (much like a gline). ! ! Suspended channels do not currently automatically unsuspend ! themselves, but you can view a list of suspended channels with ! the SEARCHCHAN --suspended command. SUSPEND is available to IRCOPS only. --- 5,10 ---- It is a non-destructive alternative to UNREG, when you would prefer not to delete the userlist. The time of the suspension ! is saved, along with a reason, the amount of time $n is suspended from ! the channel for, and the nick of who suspended it (much like a gline). SUSPEND is available to IRCOPS only. |
From: Alex S. <ru...@us...> - 2001-09-04 02:34:40
|
Update of /cvsroot/x2serv/x2 In directory usw-pr-cvs1:/tmp/cvs-serv27996 Modified Files: README Log Message: Updated suspend help file. Index: README =================================================================== RCS file: /cvsroot/x2serv/x2/README,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** README 2000/10/11 08:18:35 1.5 --- README 2001/09/04 02:34:37 1.6 *************** *** 49,55 **** ---------------------------------------------------- AfterNET irc.afternet.org X2 300 ! GamesNet irc.gamesnet.net ChanServ 3000 ! AsylumNet irc.monmouth.com X 80 TeleFragged irc.telefragged.com ChanServ 250 YourNet? email me! ru...@af... --- 49,60 ---- ---------------------------------------------------- AfterNET irc.afternet.org X2 300 ! GamesNet irc.gamesnet.net ChanServ 4500 ! AsylumNet irc.asylum-net.org X 200 TeleFragged irc.telefragged.com ChanServ 250 + GDChat irc.GDChat.org X2 10 + clanshack irc.clanshack.com ChanServ 15 + uNFaNet.Org irc.unfanet.org X2 15 + AbleNet irc.ablenet.org X2 13 + YourNet? email me! ru...@af... |
From: Richard P. <lys...@us...> - 2001-09-03 13:28:49
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv458/source Modified Files: commands.c Log Message: Fixed suspend. It took the wrong argument as suspendreason. Index: commands.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/commands.c,v retrieving revision 1.156 retrieving revision 1.157 diff -C2 -r1.156 -r1.157 *** commands.c 2001/08/28 17:37:08 1.156 --- commands.c 2001/09/03 13:28:46 1.157 *************** *** 1697,1704 **** } ! sprintf(Buf2, "<%s> %s [%s]", uptr->Nick, rest, t2s(Buf, time(NULL))); cptr->Suspended = malloc(strlen(Buf2) + 1); strcpy(cptr->Suspended, Buf2); ! send_to_user(uptr, "Channel %s is marked as suspended: %s", cptr->Name, rest); cptr->settings[INCHAN] = 0; send_part(cptr, "Suspended by %s.", uptr->Nick); --- 1697,1704 ---- } ! sprintf(Buf2, "<%s> %s [%s]", uptr->Nick, Arg2, t2s(Buf, time(NULL))); cptr->Suspended = malloc(strlen(Buf2) + 1); strcpy(cptr->Suspended, Buf2); ! send_to_user(uptr, "Channel %s is marked as suspended: %s", cptr->Name, Arg2); cptr->settings[INCHAN] = 0; send_part(cptr, "Suspended by %s.", uptr->Nick); |
From: Richard P. <lys...@us...> - 2001-08-28 17:37:11
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv1373 Modified Files: chan.c chan.h commands.c config.h main.c Log Message: The suspend command has now a timeout, like the glines have. Example: .suspend 7:day reason All suspended channel which haven't got a timeout yet, get a timeout of one year The lamerlist is now only visible for people on the userlist Invite is now only possible when x2 is inside the channel Index: chan.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/chan.c,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -r1.75 -r1.76 *** chan.c 2001/04/13 01:40:52 1.75 --- chan.c 2001/08/28 17:37:08 1.76 *************** *** 1411,1414 **** --- 1411,1418 ---- NewChan->Regged = IsRegged; NewChan->Suspended = NULL; + /* Set the suspended timeout to a year later. If we encounter a + suspended channel that hasn't got a timeout yet, then this will + be the timeout */ + NewChan->SuspendedTime = time(0) + 31536000; ConvertModeString(ModeString, &NewChan->PlusModes, &NewChan->MinModes, &NewChan->Key, &NewChan->Limit); if(settings) *************** *** 1500,1504 **** /* Suspended is optional and must thus come AFTER ReggedBy */ if (ChanPtr->Suspended) ! fprintf(FilePtr, "PSUSPENDED %s\n", ChanPtr->Suspended); for(hptr = ChanPtr->Handles;hptr;hptr = hptr->Next) --- 1504,1511 ---- /* Suspended is optional and must thus come AFTER ReggedBy */ if (ChanPtr->Suspended) ! { ! fprintf(FilePtr, "PSUSPENDED %s\n", ChanPtr->Suspended); ! fprintf(FilePtr, "XSUSPENDEDTIME %lu\n", ChanPtr->SuspendedTime); ! } for(hptr = ChanPtr->Handles;hptr;hptr = hptr->Next) *************** *** 2282,2286 **** return(TRUE); } - ! --- 2289,2319 ---- return(TRUE); } ! void CheckSuspendedTimeouts() ! { ! char ModeString[LINEBUFFSIZE]; ! int i; ! ChannelListType ChanPtr; ! ! for (i = 0; i < CHANSEGSIZE; i++) ! { ! ChanPtr = Channels->Table[i]; ! while (ChanPtr) ! { ! if (ChanPtr->Regged && ChanPtr->Suspended && (ChanPtr->SuspendedTime < time(NULL))) ! { ! free(ChanPtr->Suspended); ! ChanPtr->Suspended = NULL; ! ChanPtr->settings[INCHAN] = 1; ! send_join(ChanPtr); ! send_opchan(ChanPtr); ! send_chanmode(ChanPtr, "%s", GetModeString(ModeString, ChanPtr->PlusModes, ! ChanPtr->MinModes, ChanPtr->Key, ChanPtr->Limit)); ! if (strcmp(ChanPtr->Topic, "*") && ChanPtr->settings[TOPICFREQ]) ! send_topic(ChanPtr, ChanPtr->Topic); ! WriteChanOpFile(ChanPtr); ! } ! ChanPtr = ChanPtr->Next; ! } ! } ! } Index: chan.h =================================================================== RCS file: /cvsroot/x2serv/x2/source/chan.h,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -r1.26 -r1.27 *** chan.h 2001/01/22 07:24:33 1.26 --- chan.h 2001/08/28 17:37:08 1.27 *************** *** 75,76 **** --- 75,77 ---- int GetChanStats(ChannelListType cptr, int *w, int *c, int *m, int *o, int *p, int *b); + void CheckSuspendedTimeouts(); Index: commands.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/commands.c,v retrieving revision 1.155 retrieving revision 1.156 diff -C2 -r1.155 -r1.156 *** commands.c 2001/08/03 09:15:22 1.155 --- commands.c 2001/08/28 17:37:08 1.156 *************** *** 126,133 **** { "USERS", c_userlist, REGED, 0, 0, 0, F, T }, { "USERLIST", c_userlist, REGED, 0, 0, 0, F, T }, ! { "LAMERLIST", c_llist, REGED, 0, T, T, F, T }, ! { "LAMELIST", c_llist, REGED, 0, T, T, F, T }, ! { "LAMERS", c_llist, REGED, 0, T, T, F, T }, ! { "SHITLIST", c_llist, REGED, 0, T, T, F, T }, { "PLIST", c_plist, REGED, 0, T, T, F, T }, { "OLIST", c_olist, REGED, 0, T, T, F, T }, --- 126,133 ---- { "USERS", c_userlist, REGED, 0, 0, 0, F, T }, { "USERLIST", c_userlist, REGED, 0, 0, 0, F, T }, ! { "LAMERLIST", c_llist, REGED, PE, T, T, F, T }, ! { "LAMELIST", c_llist, REGED, PE, T, T, F, T }, ! { "LAMERS", c_llist, REGED, PE, T, T, F, T }, ! { "SHITLIST", c_llist, REGED, PE, T, T, F, T }, { "PLIST", c_plist, REGED, 0, T, T, F, T }, { "OLIST", c_olist, REGED, 0, T, T, F, T }, *************** *** 136,140 **** { "WLIST", c_wlist, REGED, 0, 0, 0, F, T }, { "BLIST", c_llist, REGED, 0, T, T, F, T }, ! { "LLIST", c_llist, REGED, 0, T, T, F, T }, { "CHANSTAT", c_chanstat, REQED, 0, 0, 0, F, T }, { "CHANSTATS", c_chanstat, REQED, 0, 0, 0, F, T }, --- 136,140 ---- { "WLIST", c_wlist, REGED, 0, 0, 0, F, T }, { "BLIST", c_llist, REGED, 0, T, T, F, T }, ! { "LLIST", c_llist, REGED, PE, T, T, F, T }, { "CHANSTAT", c_chanstat, REQED, 0, 0, 0, F, T }, { "CHANSTATS", c_chanstat, REQED, 0, 0, 0, F, T }, *************** *** 1158,1161 **** --- 1158,1166 ---- targetnick = strtok(rest, " "); + if(!cptr->settings[INCHAN] || cptr->Suspended) + { + send_to_user(uptr, "I need to be in the channel to invite persons"); + return(FALSE); + } if(!targetnick || !*targetnick) { *************** *** 1498,1501 **** --- 1503,1507 ---- char* topicsearch; char* chansearch; + char buff[MAXLEN]; if(!(rest && *rest)) *************** *** 1557,1562 **** if(secret == 0) { ! send_to_user(uptr, "%29s : %s", TempChanPtr->Name, TempChanPtr->Suspended?TempChanPtr->Suspended:(TempChanPtr->Topic?TempChanPtr->Topic:"")); ! count++; } } --- 1563,1575 ---- if(secret == 0) { ! if (TempChanPtr->Suspended) ! { ! send_to_user(uptr, "%29s : %s %s", TempChanPtr->Name, t2s(buff, TempChanPtr->SuspendedTime), TempChanPtr->Suspended); ! } ! else ! { ! send_to_user(uptr, "%29s : %s", TempChanPtr->Name, TempChanPtr->Topic?TempChanPtr->Topic:""); ! } ! count++; } } *************** *** 1607,1610 **** --- 1620,1630 ---- char Buf[MAXLEN]; char Buf2[MAXLEN]; + char* Arg1; + char* Arg2; + char* Arg3; + char* Arg4; + int i; + int len; + int Value; if (cptr->Suspended) *************** *** 1612,1621 **** send_to_user(uptr, "Channel %s is already marked as suspended: %s", cptr->Name, cptr->Suspended); return(FALSE); } ! if (!rest || !*rest) { ! send_to_user(uptr, "Please input a reason"); return(FALSE); } sprintf(Buf2, "<%s> %s [%s]", uptr->Nick, rest, t2s(Buf, time(NULL))); cptr->Suspended = malloc(strlen(Buf2) + 1); --- 1632,1700 ---- send_to_user(uptr, "Channel %s is already marked as suspended: %s", cptr->Name, cptr->Suspended); return(FALSE); + } + + Arg1 = strtok(rest, " "); + Arg2 = strtok(NULL, ""); + + if (!Arg1 || !Arg2) + { + send_to_user(uptr, "Usage: SUSPEND <#channel> <time>:<unit> <reason>"); + return(FALSE); + } + + if (!strchr(Arg1, ':')) + { + send_to_user(uptr, "\002Illegal time argument.\002"); + return(FALSE); + } + Arg3 = (char *) strtok(Arg1, ":"); + Arg4 = (char *) strtok(NULL, " "); + if (!Arg3 || !Arg4) + { + send_to_user(uptr, "\002Invalid time argument.\002"); + return(FALSE); } ! ! len = strlen(Arg3); ! if (len > 5) { ! send_to_user(uptr, "\002Illegal time value.\002"); return(FALSE); } + + for (i = 0; i < len; i++) + { + if (!isdigit(Arg3[i])) + { + send_to_user(uptr, "\002Illegal time value.\002"); + return(FALSE); + } + } + Value = atoi(Arg3); + + if ((strlen(Arg4) > 4)) + { + send_to_user(uptr, "\002Illegal time period.\002"); + return(FALSE); + } + + if (!strcasecmp(Arg4, "MIN")) + cptr->SuspendedTime = time(NULL) + Value * 60; + else if (!strcasecmp(Arg4, "M")) + cptr->SuspendedTime = time(NULL) + Value * 60; + else if (!strcasecmp(Arg4, "HOUR")) + cptr->SuspendedTime = time(NULL) + Value * 3600; + else if (!strcasecmp(Arg4, "H")) + cptr->SuspendedTime = time(NULL) + Value * 3600; + else if (!strcasecmp(Arg4, "D")) + cptr->SuspendedTime = time(NULL) + Value * 86400; + else if (!strcasecmp(Arg4, "DAY")) + cptr->SuspendedTime = time(NULL) + Value * 86400; + else + { + send_to_user(uptr, "\002Illegal time period.\002 Use <#>:MIN/HOUR/DAY"); + return(FALSE); + } + sprintf(Buf2, "<%s> %s [%s]", uptr->Nick, rest, t2s(Buf, time(NULL))); cptr->Suspended = malloc(strlen(Buf2) + 1); Index: config.h =================================================================== RCS file: /cvsroot/x2serv/x2/source/config.h,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -r1.59 -r1.60 *** config.h 2001/04/25 06:05:40 1.59 --- config.h 2001/08/28 17:37:08 1.60 *************** *** 523,526 **** --- 523,527 ---- /* of people in channel. */ char *Suspended; /* NULL if not suspended, reason otherwise */ + time_t SuspendedTime; struct ChanStruct *Next; } Index: main.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/main.c,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -r1.54 -r1.55 *** main.c 2001/08/03 09:15:22 1.54 --- main.c 2001/08/28 17:37:08 1.55 *************** *** 647,650 **** --- 647,660 ---- strcpy(cptr->Suspended, ptrbuff); continue; + case 'X': /* XSuspendedTime (see PSuspended) */ + if (cptr == NULL) + { + printf("XSUSPENDEDTIME before channel fully defined (%s line %d).\n", ChanName, line2); + return (0); + } + ptrbuff = (char *) mysep(&lb, " "); + cptr->SuspendedTime = strtol(ptrbuff, NULL, 10); + continue; + default: printf("Unknown key %s in CHANS/%s\n", key, ChanName); return(0); *************** *** 922,926 **** bantimer = Now; CheckBanTimeouts(); ! CheckGlineTimeouts(); /* Superglines nolonger time out. */ /*CheckSuperGlineTimeouts(); */ --- 932,937 ---- bantimer = Now; CheckBanTimeouts(); ! CheckGlineTimeouts(); ! CheckSuspendedTimeouts(); /* Superglines nolonger time out. */ /*CheckSuperGlineTimeouts(); */ |
From: Alex S. <ru...@us...> - 2001-08-27 11:52:46
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv20150 Modified Files: gatetool.c Log Message: Some more verbose info screens in gatetool.c Index: gatetool.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/gatetool.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** gatetool.c 2001/08/27 11:34:27 1.2 --- gatetool.c 2001/08/27 11:52:44 1.3 *************** *** 18,23 **** #include <errno.h> - #define SOCKSPORT 1080 - /* Got some docs on this key.. * http://www.socks.nec.com/protocol/socks4.protocol --- 18,21 ---- *************** *** 31,42 **** * more configurable/reliable. */ ! /*unsigned char keystring[] = {0x04, 0x01, 0x1A, 0x0B, 0xC7, ! 0x02, 0xD2, 0xF1, 0x62, 0x6C, ! *converting to dec..* 0x61, 0x68, 0x74, 0x65, 0x73, 0x74, 0x00}; ! */ ! /* NOTE: If the IP below (206.58.8.1) is not routable, the socks check will FAIL! */ ! /* TODO : Put this IP in the config file somehow. */ ! /* {PORT} {Agora's IP} {Userid..} */ unsigned char keystring[] = {4, 1, 26,11, 206,58,8,1, 'r','u','b','i','n'}; --- 29,36 ---- * more configurable/reliable. */ ! /* NOTE: If the IP below (206.58.8.1) is not routable, ! * the socks check will FAIL! */ + /* {PORT} {Agora's IP} {Userid..} */ unsigned char keystring[] = {4, 1, 26,11, 206,58,8,1, 'r','u','b','i','n'}; *************** *** 110,114 **** printf("sock is negitive in CheckSend for loop\n"); } ! printf("Sending magic string\n"); send(sock, keystring, 17, 0); --- 104,108 ---- printf("sock is negitive in CheckSend for loop\n"); } ! printf("Sending magic string...\n"); send(sock, keystring, 17, 0); *************** *** 123,127 **** strcat(decstr, buf); } ! printf("Got [%s]\n", decstr); /* Apparently new versions are out that use 05b as a responce, --- 117,126 ---- strcat(decstr, buf); } ! printf("VN CD DSTPORT DSTIP\n"); ! printf("-------------------\n"); ! printf("%s\n", decstr); ! printf("-------------------\n"); ! printf("VN: ?\n"); ! printf("CD: 90=granted; 91=rejected; 92=ident required; 93=ident user conflicted\n"); /* Apparently new versions are out that use 05b as a responce, |
From: Alex S. <ru...@us...> - 2001-08-27 11:34:29
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv16489 Modified Files: gate.c gatetool.c Log Message: Updated the wingate checker to detect a new type of wingate we are seeing on afternet, signature: 48 90 Index: gate.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/gate.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -r1.19 -r1.20 *** gate.c 2001/07/18 09:25:08 1.19 --- gate.c 2001/08/27 11:34:27 1.20 *************** *** 314,318 **** * 93=rejected coz ident userid's conflicted * -Rubin */ ! if( ( (tmpstr[0] == 0) || (tmpstr[0] == 4) ) && (tmpstr[1] == 90) ) /* 90 = granted */ { /* We got one! */ --- 314,318 ---- * 93=rejected coz ident userid's conflicted * -Rubin */ ! if( ( (tmpstr[0] == 0) || (tmpstr[0] == 4) || (tmpstr[0] == 48)) && (tmpstr[1] == 90) ) /* 90 = granted */ { /* We got one! */ Index: gatetool.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/gatetool.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** gatetool.c 2001/08/27 11:30:40 1.1 --- gatetool.c 2001/08/27 11:34:27 1.2 *************** *** 139,143 **** * 93=rejected coz ident userid's conflicted * -Rubin */ ! if( ( (tmpstr[0] == 0) || (tmpstr[0] == 4) ) && (tmpstr[1] == 90) ) /* 90 = granted */ { /* We got one! */ --- 139,143 ---- * 93=rejected coz ident userid's conflicted * -Rubin */ ! if( ( (tmpstr[0] == 0) || (tmpstr[0] == 4) || tmpstr[0] == 48 ) && (tmpstr[1] == 90) ) /* 90 = granted */ { /* We got one! */ |
From: Alex S. <ru...@us...> - 2001-08-27 11:30:44
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv15766 Added Files: gatetool.c Log Message: A tool for inspecting wingates from the commandline. --- NEW FILE --- /********************** * Gate Tool - Probe a socks proxy * and print the byte response (if any) it * returns (its signature) * * For help determining triggers for * insecure wingate detectors. * */ #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <stdarg.h> #include <fcntl.h> #include <unistd.h> #include <errno.h> #define SOCKSPORT 1080 /* Got some docs on this key.. * http://www.socks.nec.com/protocol/socks4.protocol * DESC: VN CD DSTPORT DSTIP USERID ... NULL * BYTES: 1 1 2 4 variable * VALUES: 4, 1, 26, 11, 199,2,210,241, "Rubin", 0 * these are the base 10 values.. note that 199.2.210.241 is * agora's ip address. When agora goes down the connections * started to fail, due to no route to host.. and the scan * broke. So it would be better to connect to something * more configurable/reliable. */ /*unsigned char keystring[] = {0x04, 0x01, 0x1A, 0x0B, 0xC7, 0x02, 0xD2, 0xF1, 0x62, 0x6C, *converting to dec..* 0x61, 0x68, 0x74, 0x65, 0x73, 0x74, 0x00}; */ /* NOTE: If the IP below (206.58.8.1) is not routable, the socks check will FAIL! */ /* TODO : Put this IP in the config file somehow. */ /* {PORT} {Agora's IP} {Userid..} */ unsigned char keystring[] = {4, 1, 26,11, 206,58,8,1, 'r','u','b','i','n'}; int sock, c; int MaxSock = 0; char tmpstr[20]; char decstr[200]; int i; char buf[2000]; void BeginGateScan(char *IP); int main(int argc, char *argv[]) { char *IP; if(argc < 1) { printf("USAGE: %s <IP>\n", argv[0]); return; } IP = argv[1]; BeginGateScan(IP); } void BeginGateScan(char *IP) { struct sockaddr_in GateAddr; unsigned long int longip; longip = inet_addr(IP); bzero((char *) &GateAddr, sizeof(GateAddr)); GateAddr.sin_addr.s_addr = longip; GateAddr.sin_family = AF_INET; GateAddr.sin_port = htons(SOCKSPORT); if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("ERROR: socket() returned error: %s\n", strerror(errno)); printf("Terminating gate checking due to unrecoverable error\n"); return; } if(sock > MaxSock) MaxSock = sock; fcntl(sock, F_SETFL /*, O_NONBLOCK */); if(connect(sock, (struct sockaddr *) &GateAddr, sizeof(GateAddr)) >= 0) { printf("Called connect() for gate..\n"); } else { if(errno == EINPROGRESS) { /* connect is non blocking, use select to finish..*/ printf("Non blocking connect waiting to finish..\n"); } else { printf("Connect failed. :%s:\n", strerror(errno)); close(sock); return; } } if(sock < 0) { printf("sock is negitive in CheckSend for loop\n"); } printf("Sending magic string\n"); send(sock, keystring, 17, 0); /* Read the incomming response */ c = read(sock, tmpstr, 10); if(c >=0) { strcpy(decstr, ""); for(i=0;i<c;i++) { sprintf(buf, "%d ", tmpstr[i]); strcat(decstr, buf); } printf("Got [%s]\n", decstr); /* Apparently new versions are out that use 05b as a responce, * or maybe because agora is not reachable today.. regardless, * expanding the search a bit so the 2nd byte can be 0x5a or 0x5b. * TODO : add this * 0x04 0x5a 0x57 0x0b : another type of responce gotten.. * Ok, found some socks protocol docs: * http://www.socks.nec.com/protocol/socks4.protocol * Description: VN CD DSTPORT DSTIP * Bytes: 1 1 2 4 * CD is 90=granted - gline them * 91=rejected/failed * 92=rejected due to lack of ident, * 93=rejected coz ident userid's conflicted * -Rubin */ if( ( (tmpstr[0] == 0) || (tmpstr[0] == 4) ) && (tmpstr[1] == 90) ) /* 90 = granted */ { /* We got one! */ printf("Wingate detected\n"); } else { /* Connected but not an insecure gate */ close(sock); printf("Wingate not detected\n"); } } else { printf("Read error to socket. 0 bytes read.\n"); close(sock); return; } } |
From: Alex S. <ru...@us...> - 2001-08-03 09:15:27
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv7950 Modified Files: commands.c main.c misc.c Log Message: Fixing dellamer bug - AddyOk() wasnt accepting ' and ` as acceptable chars. Index: commands.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/commands.c,v retrieving revision 1.154 retrieving revision 1.155 diff -C2 -r1.154 -r1.155 *** commands.c 2001/07/19 02:17:27 1.154 --- commands.c 2001/08/03 09:15:22 1.155 *************** *** 3938,3942 **** } if (!AddyOk(Address)) ! { /* if the address doesnt have address stuff in it (!@ etc) */ if((target = FindNick(Address, UsersN))) { /* if theres a user on with that nick */ --- 3938,3942 ---- } if (!AddyOk(Address)) ! { /* if the address doesnt have address stuff in it (!@ etc) */ if((target = FindNick(Address, UsersN))) { /* if theres a user on with that nick */ Index: main.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/main.c,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -r1.53 -r1.54 *** main.c 2001/05/29 09:35:02 1.53 --- main.c 2001/08/03 09:15:22 1.54 *************** *** 569,572 **** --- 569,577 ---- Mask = (char *) mysep(&lb, " "); Reason = (char *) mysep(&lb, "\n\0"); + if(!AddyOk(Mask)) + { + printf("Ignoring lamer %s because its not valid.\n", Mask); + continue; + } AddLamer(cptr, BanTime, LastSeen, Mask, Reason); continue; Index: misc.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/misc.c,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -r1.44 -r1.45 *** misc.c 2001/05/10 13:59:31 1.44 --- misc.c 2001/08/03 09:15:22 1.45 *************** *** 1290,1293 **** --- 1290,1294 ---- case '*': case '?': case '+': case '-': case '.': case '\\': case '^': case '_': case '{': case '[': case '}': case ']': case '~': + case '\'': case '`': continue; case '!': { |
From: Alex <ru...@bl...> - 2001-07-29 00:06:22
|
Probably misc.c is a good place for the table, but i'm not really picky. -Rubin On Sat, 28 Jul 2001, Richard Peters wrote: > Update of /cvsroot/x2serv/x2/source > In directory usw-pr-cvs1:/tmp/cvs-serv17214 > > Modified Files: > parse.c > Log Message: > Fixed a bug. > > ircu cleans up a channelname when you do a /join #channame. Some special > chars have a lowercase variant, that lowercase is used. The cleaned-up > channel name is passed on to other servers, like x2. When you do a /part > #channame, then channame is not cleaned up before sending to other servers. > X2 gets stuck with a channame that it doesn't recognize, and it wallops > about it. The sollution: let x2 clean up the channame when it processes the > /part > > The block that I pasted from ircu that solves this bug, is kinda large and I > don't know if this is the right place to insert it into the source. You > might want to take a look for a more appropriate place. > > > Index: parse.c > =================================================================== > RCS file: /cvsroot/x2serv/x2/source/parse.c,v > retrieving revision 1.65 > retrieving revision 1.66 > diff -C2 -r1.65 -r1.66 > *** parse.c 2001/06/28 10:06:13 1.65 > --- parse.c 2001/07/28 19:17:24 1.66 > *************** > *** 489,492 **** > --- 489,634 ---- > return(0); > } > + > + /* Copied this from ircu. Since they were so nice to provide this > + check only on /join, and not on /part, we were getting strange > + wallops */ > + #define CHAR_MIN -128 > + const unsigned int NTL_char_attrib[] = { > + #if (CHAR_MIN<0) > + /* x80-x87 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* x88-x8f */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* x90-x97 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* x98-x9f */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xa0-xa7 */ 0x0000, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xa8-xaf */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xb0-xb7 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xb8-xbf */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xc0-xc7 */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, > + /* xc8-xcf */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, > + /* xd0-xd7 */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x0400, > + /* xd8-xdf */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x0400, > + /* xe0-xe7 */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, > + /* xe8-xef */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, > + /* xf0-xf7 */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x0400, > + /* xf8-xff */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x0400 > + , > + #endif /* (CHAR_MIN<0) */ > + /* x00-x07 */ 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0004, > + /* x08-x0f */ 0x0404, 0x0504, 0x10504, 0x0504, 0x0504, 0x10504, 0x0404, 0x0404, > + /* x10-x17 */ 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, > + /* x18-x1f */ 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, > + /* ' '-x27 */ 0x0140, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x24d0, > + /* '('-'/' */ 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x00d0, 0x74d0, 0xe4d0, 0x04d0, > + /* '0'-'7' */ 0xf459, 0xf459, 0xf459, 0xf459, 0xf459, 0xf459, 0xf459, 0xf459, > + /* '8'-'?' */ 0xf459, 0xf459, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, > + /* '@'-'G' */ 0x04d0, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, > + /* 'H'-'O' */ 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, > + /* 'P'-'W' */ 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, > + /* 'X'-'_' */ 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x74d0, > + /* '`'-'g' */ 0x34d0, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, > + /* 'h'-'o' */ 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, > + /* 'p'-'w' */ 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, > + /* 'x'-x7f */ 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x0400 > + #if (!(CHAR_MIN<0)) > + , > + /* x80-x87 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* x88-x8f */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* x90-x97 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* x98-x9f */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xa0-xa7 */ 0x0000, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xa8-xaf */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xb0-xb7 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xb8-xbf */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, > + /* xc0-xc7 */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, > + /* xc8-xcf */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, > + /* xd0-xd7 */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x0400, > + /* xd8-xdf */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x0400, > + /* xe0-xe7 */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, > + /* xe8-xef */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, > + /* xf0-xf7 */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x0400, > + /* xf8-xff */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x0400 > + #endif /* (!(CHAR_MIN<0)) */ > + }; > + const char NTL_tolower_tab[] = { > + #if (CHAR_MIN<0) > + /* x80-x87 */ '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', > + /* x88-x8f */ '\x88', '\x89', '\x8a', '\x8b', '\x8c', '\x8d', '\x8e', '\x8f', > + /* x90-x97 */ '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', > + /* x98-x9f */ '\x98', '\x99', '\x9a', '\x9b', '\x9c', '\x9d', '\x9e', '\x9f', > + /* xa0-xa7 */ '\xa0', '\xa1', '\xa2', '\xa3', '\xa4', '\xa5', '\xa6', '\xa7', > + /* xa8-xaf */ '\xa8', '\xa9', '\xaa', '\xab', '\xac', '\xad', '\xae', '\xaf', > + /* xb0-xb7 */ '\xb0', '\xb1', '\xb2', '\xb3', '\xb4', '\xb5', '\xb6', '\xb7', > + /* xb8-xbf */ '\xb8', '\xb9', '\xba', '\xbb', '\xbc', '\xbd', '\xbe', '\xbf', > + /* xc0-xc7 */ '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7', > + /* xc8-xcf */ '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef', > + /* xd0-xd7 */ '\xd0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xd7', > + /* xd8-xdf */ '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\xfd', '\xfe', '\xdf', > + /* xe0-xe7 */ '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7', > + /* xe8-xef */ '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef', > + /* xf0-xf7 */ '\xf0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xf7', > + /* xf8-xff */ '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\xfd', '\xfe', '\xff' > + , > + #endif /* (CHAR_MIN<0) */ > + /* x00-x07 */ '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', > + /* x08-x0f */ '\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', > + /* x10-x17 */ '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', > + /* x18-x1f */ '\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', > + /* ' '-x27 */ ' ', '!', '"', '#', '$', '%', '&', '\x27', > + /* '('-'/' */ '(', ')', '*', '+', ',', '-', '.', '/', > + /* '0'-'7' */ '0', '1', '2', '3', '4', '5', '6', '7', > + /* '8'-'?' */ '8', '9', ':', ';', '<', '=', '>', '?', > + /* '@'-'G' */ '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', > + /* 'H'-'O' */ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', > + /* 'P'-'W' */ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', > + /* 'X'-'_' */ 'x', 'y', 'z', '{', '|', '}', '~', '_', > + /* '`'-'g' */ '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', > + /* 'h'-'o' */ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', > + /* 'p'-'w' */ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', > + /* 'x'-x7f */ 'x', 'y', 'z', '{', '|', '}', '~', '\x7f' > + #if (!(CHAR_MIN<0)) > + , > + /* x80-x87 */ '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', > + /* x88-x8f */ '\x88', '\x89', '\x8a', '\x8b', '\x8c', '\x8d', '\x8e', '\x8f', > + /* x90-x97 */ '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', > + /* x98-x9f */ '\x98', '\x99', '\x9a', '\x9b', '\x9c', '\x9d', '\x9e', '\x9f', > + /* xa0-xa7 */ '\xa0', '\xa1', '\xa2', '\xa3', '\xa4', '\xa5', '\xa6', '\xa7', > + /* xa8-xaf */ '\xa8', '\xa9', '\xaa', '\xab', '\xac', '\xad', '\xae', '\xaf', > + /* xb0-xb7 */ '\xb0', '\xb1', '\xb2', '\xb3', '\xb4', '\xb5', '\xb6', '\xb7', > + /* xb8-xbf */ '\xb8', '\xb9', '\xba', '\xbb', '\xbc', '\xbd', '\xbe', '\xbf', > + /* xc0-xc7 */ '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7', > + /* xc8-xcf */ '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef', > + /* xd0-xd7 */ '\xd0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xd7', > + /* xd8-xdf */ '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\xfd', '\xfe', '\xdf', > + /* xe0-xe7 */ '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7', > + /* xe8-xef */ '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef', > + /* xf0-xf7 */ '\xf0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xf7', > + /* xf8-xff */ '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\xfd', '\xfe', '\xff' > + #endif /* (!(CHAR_MIN<0)) */ > + }; > + #define NTL_IRCCH 0x0400 /* Channel's names charset */ > + #define NTL_IRCCL 0x0800 /* Force toLower() in ch-name */ > + #define isIrcCh(c) (NTL_char_attrib[(c)-CHAR_MIN] & NTL_IRCCH) > + #define isIrcCl(c) (NTL_char_attrib[(c)-CHAR_MIN] & NTL_IRCCL) > + #define toLower(c) (NTL_tolower_tab[(c)-CHAR_MIN]) > + > + static void clean_channelname(char *cn) > + { > + for (; *cn; cn++) > + { > + if (!isIrcCh(*cn)) > + { > + *cn = '\0'; > + return; > + } > + if (isIrcCl(*cn)) > + { > + *cn = toLower(*cn); > + /* Missed the Icelandic letter ETH last time: */ > + if ((unsigned char)(*cn) == 0xd0) > + *cn = (char)0xf0; > + } > + } > + } > + > /* PART */ > int m_part(M_PARAMS) > *************** > *** 506,509 **** > --- 648,652 ---- > if(channel[i] == ',') > { > + clean_channelname(&channel[i+1]); > if((cptr = GetChannel(&channel[i+1]))) > { > *************** > *** 517,520 **** > --- 660,664 ---- > } > } > + clean_channelname(channel); > if((cptr = GetChannel(channel))) > { > > > _______________________________________________ > X2serv-cvs mailing list > X2s...@li... > http://lists.sourceforge.net/lists/listinfo/x2serv-cvs > |
From: Richard P. <lys...@us...> - 2001-07-28 19:17:27
|
Update of /cvsroot/x2serv/x2/source In directory usw-pr-cvs1:/tmp/cvs-serv17214 Modified Files: parse.c Log Message: Fixed a bug. ircu cleans up a channelname when you do a /join #channame. Some special chars have a lowercase variant, that lowercase is used. The cleaned-up channel name is passed on to other servers, like x2. When you do a /part #channame, then channame is not cleaned up before sending to other servers. X2 gets stuck with a channame that it doesn't recognize, and it wallops about it. The sollution: let x2 clean up the channame when it processes the /part The block that I pasted from ircu that solves this bug, is kinda large and I don't know if this is the right place to insert it into the source. You might want to take a look for a more appropriate place. Index: parse.c =================================================================== RCS file: /cvsroot/x2serv/x2/source/parse.c,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -r1.65 -r1.66 *** parse.c 2001/06/28 10:06:13 1.65 --- parse.c 2001/07/28 19:17:24 1.66 *************** *** 489,492 **** --- 489,634 ---- return(0); } + + /* Copied this from ircu. Since they were so nice to provide this + check only on /join, and not on /part, we were getting strange + wallops */ + #define CHAR_MIN -128 + const unsigned int NTL_char_attrib[] = { + #if (CHAR_MIN<0) + /* x80-x87 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* x88-x8f */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* x90-x97 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* x98-x9f */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xa0-xa7 */ 0x0000, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xa8-xaf */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xb0-xb7 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xb8-xbf */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xc0-xc7 */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, + /* xc8-xcf */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, + /* xd0-xd7 */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x0400, + /* xd8-xdf */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x0400, + /* xe0-xe7 */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, + /* xe8-xef */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, + /* xf0-xf7 */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x0400, + /* xf8-xff */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x0400 + , + #endif /* (CHAR_MIN<0) */ + /* x00-x07 */ 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0004, + /* x08-x0f */ 0x0404, 0x0504, 0x10504, 0x0504, 0x0504, 0x10504, 0x0404, 0x0404, + /* x10-x17 */ 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + /* x18-x1f */ 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, 0x0404, + /* ' '-x27 */ 0x0140, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x24d0, + /* '('-'/' */ 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x00d0, 0x74d0, 0xe4d0, 0x04d0, + /* '0'-'7' */ 0xf459, 0xf459, 0xf459, 0xf459, 0xf459, 0xf459, 0xf459, 0xf459, + /* '8'-'?' */ 0xf459, 0xf459, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + /* '@'-'G' */ 0x04d0, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, + /* 'H'-'O' */ 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, + /* 'P'-'W' */ 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, + /* 'X'-'_' */ 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x7653, 0x74d0, + /* '`'-'g' */ 0x34d0, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, + /* 'h'-'o' */ 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, + /* 'p'-'w' */ 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, + /* 'x'-x7f */ 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x7473, 0x0400 + #if (!(CHAR_MIN<0)) + , + /* x80-x87 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* x88-x8f */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* x90-x97 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* x98-x9f */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xa0-xa7 */ 0x0000, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xa8-xaf */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xb0-xb7 */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xb8-xbf */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, + /* xc0-xc7 */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, + /* xc8-xcf */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, + /* xd0-xd7 */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x0400, + /* xd8-xdf */ 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x2c00, 0x0400, + /* xe0-xe7 */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, + /* xe8-xef */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, + /* xf0-xf7 */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x0400, + /* xf8-xff */ 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x2400, 0x0400 + #endif /* (!(CHAR_MIN<0)) */ + }; + const char NTL_tolower_tab[] = { + #if (CHAR_MIN<0) + /* x80-x87 */ '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', + /* x88-x8f */ '\x88', '\x89', '\x8a', '\x8b', '\x8c', '\x8d', '\x8e', '\x8f', + /* x90-x97 */ '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', + /* x98-x9f */ '\x98', '\x99', '\x9a', '\x9b', '\x9c', '\x9d', '\x9e', '\x9f', + /* xa0-xa7 */ '\xa0', '\xa1', '\xa2', '\xa3', '\xa4', '\xa5', '\xa6', '\xa7', + /* xa8-xaf */ '\xa8', '\xa9', '\xaa', '\xab', '\xac', '\xad', '\xae', '\xaf', + /* xb0-xb7 */ '\xb0', '\xb1', '\xb2', '\xb3', '\xb4', '\xb5', '\xb6', '\xb7', + /* xb8-xbf */ '\xb8', '\xb9', '\xba', '\xbb', '\xbc', '\xbd', '\xbe', '\xbf', + /* xc0-xc7 */ '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7', + /* xc8-xcf */ '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef', + /* xd0-xd7 */ '\xd0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xd7', + /* xd8-xdf */ '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\xfd', '\xfe', '\xdf', + /* xe0-xe7 */ '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7', + /* xe8-xef */ '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef', + /* xf0-xf7 */ '\xf0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xf7', + /* xf8-xff */ '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\xfd', '\xfe', '\xff' + , + #endif /* (CHAR_MIN<0) */ + /* x00-x07 */ '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', + /* x08-x0f */ '\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f', + /* x10-x17 */ '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', + /* x18-x1f */ '\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', + /* ' '-x27 */ ' ', '!', '"', '#', '$', '%', '&', '\x27', + /* '('-'/' */ '(', ')', '*', '+', ',', '-', '.', '/', + /* '0'-'7' */ '0', '1', '2', '3', '4', '5', '6', '7', + /* '8'-'?' */ '8', '9', ':', ';', '<', '=', '>', '?', + /* '@'-'G' */ '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + /* 'H'-'O' */ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + /* 'P'-'W' */ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + /* 'X'-'_' */ 'x', 'y', 'z', '{', '|', '}', '~', '_', + /* '`'-'g' */ '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + /* 'h'-'o' */ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + /* 'p'-'w' */ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + /* 'x'-x7f */ 'x', 'y', 'z', '{', '|', '}', '~', '\x7f' + #if (!(CHAR_MIN<0)) + , + /* x80-x87 */ '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', + /* x88-x8f */ '\x88', '\x89', '\x8a', '\x8b', '\x8c', '\x8d', '\x8e', '\x8f', + /* x90-x97 */ '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', + /* x98-x9f */ '\x98', '\x99', '\x9a', '\x9b', '\x9c', '\x9d', '\x9e', '\x9f', + /* xa0-xa7 */ '\xa0', '\xa1', '\xa2', '\xa3', '\xa4', '\xa5', '\xa6', '\xa7', + /* xa8-xaf */ '\xa8', '\xa9', '\xaa', '\xab', '\xac', '\xad', '\xae', '\xaf', + /* xb0-xb7 */ '\xb0', '\xb1', '\xb2', '\xb3', '\xb4', '\xb5', '\xb6', '\xb7', + /* xb8-xbf */ '\xb8', '\xb9', '\xba', '\xbb', '\xbc', '\xbd', '\xbe', '\xbf', + /* xc0-xc7 */ '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7', + /* xc8-xcf */ '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef', + /* xd0-xd7 */ '\xd0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xd7', + /* xd8-xdf */ '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\xfd', '\xfe', '\xdf', + /* xe0-xe7 */ '\xe0', '\xe1', '\xe2', '\xe3', '\xe4', '\xe5', '\xe6', '\xe7', + /* xe8-xef */ '\xe8', '\xe9', '\xea', '\xeb', '\xec', '\xed', '\xee', '\xef', + /* xf0-xf7 */ '\xf0', '\xf1', '\xf2', '\xf3', '\xf4', '\xf5', '\xf6', '\xf7', + /* xf8-xff */ '\xf8', '\xf9', '\xfa', '\xfb', '\xfc', '\xfd', '\xfe', '\xff' + #endif /* (!(CHAR_MIN<0)) */ + }; + #define NTL_IRCCH 0x0400 /* Channel's names charset */ + #define NTL_IRCCL 0x0800 /* Force toLower() in ch-name */ + #define isIrcCh(c) (NTL_char_attrib[(c)-CHAR_MIN] & NTL_IRCCH) + #define isIrcCl(c) (NTL_char_attrib[(c)-CHAR_MIN] & NTL_IRCCL) + #define toLower(c) (NTL_tolower_tab[(c)-CHAR_MIN]) + + static void clean_channelname(char *cn) + { + for (; *cn; cn++) + { + if (!isIrcCh(*cn)) + { + *cn = '\0'; + return; + } + if (isIrcCl(*cn)) + { + *cn = toLower(*cn); + /* Missed the Icelandic letter ETH last time: */ + if ((unsigned char)(*cn) == 0xd0) + *cn = (char)0xf0; + } + } + } + /* PART */ int m_part(M_PARAMS) *************** *** 506,509 **** --- 648,652 ---- if(channel[i] == ',') { + clean_channelname(&channel[i+1]); if((cptr = GetChannel(&channel[i+1]))) { *************** *** 517,520 **** --- 660,664 ---- } } + clean_channelname(channel); if((cptr = GetChannel(channel))) { |