diff -uNrd ircd-hybrid-6.0/include/config.h Hybrid-6+JW/include/config.h --- ircd-hybrid-6.0/include/config.h Sun Nov 26 23:11:47 2000 +++ Hybrid-6+JW/include/config.h Thu Feb 8 10:44:37 2001 @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * - * $Id: config.h,v 1.90 2000/11/27 04:11:47 lusky Exp $ + * $Id: config.h,v 1.78 2000/04/24 02:21:06 lusky Exp $ */ #ifndef INCLUDED_config_h #define INCLUDED_config_h @@ -51,21 +51,14 @@ * system limits. If you know what you are doing, increase them now */ -#define HARD_FDLIMIT_ 256 -#define INIT_MAXCLIENTS 200 - -#if defined(__CYGWIN__) -#undef HARD_FDLIMIT_ -#define HARD_FDLIMIT_ 25 -#undef INIT_MAXCLIENTS -#define INIT_MAXCLIENTS 20 -#endif /* __CYGWIN__ */ +#define HARD_FDLIMIT_ 2048 +#define INIT_MAXCLIENTS 1024 /* * This is how many 'buffer connections' we allow... * Remember, MAX_BUFFER + MAX_CLIENTS can't exceed HARD_FDLIMIT :) */ -#define MAX_BUFFER 60 +#define MAX_BUFFER 24 /* NICKNAMEHISTORYLENGTH - size of WHOWAS array * this defines the length of the nickname history. each time a user changes @@ -107,42 +100,42 @@ * */ -#define DPATH "/usr/local/ircd/" -#define SPATH "/usr/local/ircd/ircd" +#define DPATH "/home/irc/ircd/" +#define SPATH "/home/irc/ircd/ircd" #define CPATH "ircd.conf" -#define KPATH "kline.conf" +#define KPATH "kline.conf" #define DLPATH "kline.conf" #define MPATH "ircd.motd" -#define LPATH "ircd.log" -#define PPATH "ircd.pid" +#define LPATH "ircd.log" +#define PPATH "ircd.pid" #define HPATH "opers.txt" #define OPATH "opers.motd" - + /* HIDE_OPS * Define this to prevent non chanops from seeing what ops a channel has * NOT ADEQUATELY TESTED YET, DON'T USE ON PRODUCTION NETWORK --Rodder + * This is not ready for primetime yet (Leave #undef on for Xworld) --John-Work */ -/* #undef HIDE_OPS */ +#undef HIDE_OPS */ /* SERVERHIDE * Define this to prevent users from seeing what server a user is on. * It also hide IP address in STATS commands and various notices, disables * TRACE and LTRACE, and prevents hunting by nickname for nonopers. - * NOT ADEQUATELY TESTED YET, DON'T USE ON PRODUCTION NETWORK --Rodder + * Turn these on to change /links output (Turn on for Xworld) --John-Work */ -/* #undef SERVERHIDE */ - +#define SERVERHIDE */ + /* NETWORK_NAME * Displayed in place of the servername when SERVERHIDE is enabled - */ -#define NETWORK_NAME "EFnet" - + */ +#define NETWORK_NAME "XWORLD" + /* NETWORK_DESC * Displayed in place of the server info when SERVERHIDE is enabled */ -#define NETWORK_DESC "Eris Free Network" - - +#define NETWORK_DESC "XWORLD IRC Network" + /* TS_MAX_DELTA and TS_WARN_DELTA - allowed delta for TS when another * server connects. * @@ -155,6 +148,9 @@ * TS_MAX_DELTA currently set to 30 minutes to deal with older timedelta * implementation. Once pre-hybrid5.2 servers are eradicated, we can drop this * down to 90 seconds or so. --Rodder + * + * When running this code u must run some for of time syncing + * I recommend ntpdate running in a cron every 5 min --John-Work */ #define TS_MAX_DELTA 300 /* seconds */ #define TS_WARN_DELTA 30 /* seconds */ @@ -165,7 +161,7 @@ * accept K-lines from those servers. * This is useful for sites with more than one client server. */ -#undef SLAVE_SERVERS +#define SLAVE_SERVERS /* SEPARATE_QUOTE_KLINES_BY_DATE * If you define this, then klines will be read and written @@ -185,8 +181,8 @@ * * These need to be defined if you want to use SYSLOG logging, too. */ -#define FNAME_USERLOG "/usr/local/ircd/users" /* */ -#define FNAME_OPERLOG "/usr/local/ircd/opers" /* */ +#define FNAME_USERLOG "/home/irc/ircd/users" /* */ +#define FNAME_OPERLOG "/home/irc/ircd/opers" /* */ /* RFC1035_ANAL * Defining this causes ircd to reject hostnames with non-compliant chars. @@ -194,29 +190,17 @@ */ #define RFC1035_ANAL -/* ALLOW_DOT_IN_IDENT - * Defining this will allow periods in ident replies. Use of this is - * strongly discouraged on public networks - */ -#undef ALLOW_DOT_IN_IDENT - /* MAX_MULTI_MESSAGES * Maximum number of recipients to a PRIVMSG. Any more than MAX_MULTI_MESSAGES * will not be sent. If MAX_MULTI_MESSAGES is 1, then any PRIVMSG with a ',' in * the target will be rejected */ -#define MAX_MULTI_MESSAGES 2 - -/* NO_DUPE_MULTI_MESSAGES - * Define this to check for duplicate recipients in PRIVMSG, at the expense - * of noticeable CPU cycles. - */ -#define NO_DUPE_MULTI_MESSAGES +#define MAX_MULTI_MESSAGES 3 /* WARN_NO_NLINE * Define this if you want ops to get noticed about "things" trying to * connect as servers that don't have N: lines. Twits with misconfigured - * servers can get really annoying with this enabled. + * servers can get really annoying with enabled. */ #define WARN_NO_NLINE @@ -237,12 +221,12 @@ /* SHOW_FAILED_OPER_ID - if FAILED_OPER_NOTICE is defined, also notify when * a client fails to oper because of a identity mismatch (wrong host or nick) */ -#undef SHOW_FAILED_OPER_ID +#define SHOW_FAILED_OPER_ID /* SHOW_FAILED_OPER_PASSWD - if FAILED_OPER_NOTICE is defined, also show the * attempted passwd */ -#undef SHOW_FAILED_OPER_PASSWD +#define SHOW_FAILED_OPER_PASSWD /* BAN_INFO - Shows you who and when someone did a ban */ @@ -261,10 +245,21 @@ * define if you want to block local clients from nickflooding */ #define ANTI_NICK_FLOOD + /* defaults allow 5 nick changes in 20 seconds */ #define MAX_NICK_TIME 20 #define MAX_NICK_CHANGES 5 + +/* Define this is you wish to be as 31337 as John-Work - Please note that this is not + * and officaly sponsered function of Hybrid IRCD and by defining this you do so + * at your own risk. This code allows you to pick what ever host mask u choose in your I lines. + */ + +#define SPOOF_FREEFORM + +#define OPERS_CAN_HACK_OPS + /* DO_IDENTD - check identd * if you undefine this, ircd will never check identd regardless of * @'s in I:lines. You must still use @'s in your I: lines to get @@ -308,7 +303,7 @@ */ #define BOTCHECK -/* x_LINES_OPER_ONLY - Allow only local opers to see these stats +/* X_LINES_OPER_ONLY - Allow only local opers to see these stats * * Any one with an F line can almost always get on the server, as * some file descriptors are reserved for people with this F line @@ -317,15 +312,6 @@ #define B_LINES_OPER_ONLY #define E_LINES_OPER_ONLY #define F_LINES_OPER_ONLY -#undef I_LINES_OPER_ONLY -#undef K_LINES_OPER_ONLY -#undef O_LINES_OPER_ONLY -#undef P_LINES_OPER_ONLY - -/* SPOOF_NOTICE - See a notice when a user connects with a - * spoofed I: line - */ -#define SPOOF_NOTICE /* STATS_NOTICE - See a notice when a user does a /stats * @@ -340,18 +326,13 @@ * Why do opers need this at all? Its an invasion of privacy. bah. * you don't need this. -Dianora */ -#undef WHOIS_NOTICE +#define WHOIS_NOTICE /* WHOIS_WAIT - minimum seconds between remote use of WHOIS before * max use count is reset */ #define WHOIS_WAIT 1 -/* NO_WHOIS_WILDCARDS - disable the use of wildcards in WHOIS. - * this will probably be permanently enabled in the next release. - */ -#define NO_WHOIS_WILDCARDS - /* PACE_WAIT - minimum seconds between use of MOTD, INFO, HELP, LINKS, TRACE * -Dianora */ @@ -364,8 +345,8 @@ /* If you are an admin that does not think operwall/wallops * should be used instead of a channel, define this. */ -#define PACE_WALLOPS -#define WALLOPS_WAIT 10 +#undef PACE_WALLOPS +#undef WALLOPS_WAIT 10 /* SHORT_MOTD * There are client ignoring the FORCE_MOTD MOTD numeric, there is @@ -400,7 +381,7 @@ * Above 4 will only give a rather marginal increase in compression for a * large increase in CPU usage. */ -#define ZIP_LEVEL 2 +#define ZIP_LEVEL 3 /* * OPER_UMODES LOCOP_UMODES - set these to be the initial umodes when OPER'ing @@ -436,7 +417,7 @@ * a server is in class 0 (the default class if none is set). * */ -#define MAXIMUM_LINKS 1 +#define MAXIMUM_LINKS 500 /* HUB - enable server-server routing * If your server is running as a a HUB Server then define this. @@ -444,14 +425,14 @@ * to a leaf which just has 1 server (typically the uplink). Define this * correctly for performance reasons. */ -#undef HUB +#define HUB /* CMDLINE_CONFIG - allow conf-file to be specified on command line * NOTE: defining CMDLINE_CONFIG and installing ircd SUID or SGID is a MAJOR * security problem - they can use the "-f" option to read any files * that the 'new' access lets them. */ -#define CMDLINE_CONFIG +#undef CMDLINE_CONFIG /* INIT_LOG_LEVEL - what level of information is logged to ircd.log * options are: @@ -475,17 +456,21 @@ */ #define USE_SYSLOG +#if defined(__CYGWIN__) +#undef USE_SYSLOG +#endif + #ifdef USE_SYSLOG /* SYSLOG_KILL SYSLOG_SQUIT SYSLOG_CONNECT SYSLOG_USERS SYSLOG_OPER * If you use syslog above, you may want to turn some (none) of the * spurious log messages for KILL,SQUIT,etc off. */ -#undef SYSLOG_KILL /* log all operator kills to syslog */ -#undef SYSLOG_SQUIT /* log all remote squits for all servers to syslog */ -#undef SYSLOG_CONNECT /* log remote connect messages for other all servs */ -#undef SYSLOG_USERS /* send userlog stuff to syslog */ -#undef SYSLOG_OPER /* log all users who successfully become an Op */ -#undef SYSLOG_BLOCK_ALLOCATOR /* debug block allocator */ +#define SYSLOG_KILL /* log all operator kills to syslog */ +#define SYSLOG_SQUIT /* log all remote squits for all servers to syslog */ +#define SYSLOG_CONNECT /* log remote connect messages for other all servs */ +#define SYSLOG_USERS /* send userlog stuff to syslog */ +#define SYSLOG_OPER /* log all users who successfully become an Op */ +#define SYSLOG_BLOCK_ALLOCATOR /* debug block allocator */ /* LOG_FACILITY - facility to use for syslog() * Define the facility you want to use for syslog(). Ask your @@ -499,12 +484,12 @@ * define this if you want to use crypted passwords for operators in your * ircd.conf file. */ -#define CRYPT_OPER_PASSWORD +#undef CRYPT_OPER_PASSWORD /* CRYPT_LINK_PASSWORD - use crypted N-line passwords in the ircd.conf * If you want to store encrypted passwords in N-lines for server links, * define this. For a C/N pair in your ircd.conf file, the password - * need not be the same for both, as long as the opposite end has the + * need not be the same for both, as long as hte opposite end has the * right password in the opposite line. */ #undef CRYPT_LINK_PASSWORD @@ -565,7 +550,7 @@ * if there are no servers presently connected to this server * opers are not affected. */ -#undef NO_CHANOPS_WHEN_SPLIT +#define NO_CHANOPS_WHEN_SPLIT /* * NO_JOIN_ON_SPLIT_SIMPLE @@ -609,7 +594,7 @@ * number of users seen on net > SPLIT_SMALLNET_USER_SIZE start * counting down the SERVER_SPLIT_RECOVERY_TIME */ -#define SPLIT_SMALLNET_USER_SIZE 10000 +#define SPLIT_SMALLNET_USER_SIZE 1 /* * SPLIT_PONG will send a PING to a server after the connect burst. @@ -657,9 +642,15 @@ * beyond the idle limit */ #undef IDLE_CHECK -#define IDLE_TIME 60 +#undef IDLE_TIME 60 #define OPER_IDLE +/* If defined USE_IP_I_LINE_FIRST will search IP I lines first + * and use that in preference over the mtrie. (hi jimmie) + * -Dianora + */ +#define USE_IP_I_LINE_FIRST + /* SEND_FAKE_KILL_TO_CLIENT - make the client think it's being /KILL'ed * * This was originally intended to prevent clients from reconnecting to the @@ -679,9 +670,10 @@ * Displays only Oper, Serv, Link, and Class reports even if the O-line is * active. Useful for just showing pertinent info of a specific server. * Note however that if the target server is not running this option then - * you will still receive a normal trace output. + * you will still receive a normal trace output. Defining this will remove + * "STATS p" funtionality since the two are basically redundant. */ -#define LTRACE +#undef LTRACE /* * LWALLOPS - Like wallops but only local. @@ -692,8 +684,6 @@ /* * Define this to enable WintrHawk "styling" - * Currently this shows the actual quit message on the Client exiting - * notice, rather than the error or "Client Quit" */ #define WINTRHAWK @@ -729,7 +719,7 @@ * Port where ircd resides. NOTE: This *MUST* be greater than 1024 if you * plan to run ircd under any other uid than root. */ -#define PORTNUM 6667 +#define PORTNUM 7070 /* MAXCONNECTIONS - don't touch - change the HARD_FDLIMIT_ instead * Maximum number of network connections your server will allow. This should @@ -781,7 +771,7 @@ /* WRITEWAITDELAY - Number of seconds to wait for write to * complete if stuck. */ -#define WRITEWAITDELAY 15 /* Recommended value: 15 */ +#define WRITEWAITDELAY 10 /* Recommended value: 15 */ /* CONNECTTIMEOUT - * Number of seconds to wait for a connect(2) call to complete. @@ -840,7 +830,7 @@ /* JUPE_CHANNEL - jupes a channel from being joined on this server only * if added to Q lines e.g. Q:\#packet_channel:Tired of packets */ -#undef JUPE_CHANNEL +#define JUPE_CHANNEL /* * ANTI_SPAMBOT @@ -868,7 +858,7 @@ * the join/leave counter is decremented each time a LEAVE is done * */ -#define MIN_JOIN_LEAVE_TIME 60 +#define MIN_JOIN_LEAVE_TIME 60 #define MAX_JOIN_LEAVE_COUNT 25 #define OPER_SPAM_COUNTDOWN 5 #define JOIN_LEAVE_COUNT_EXPIRE_TIME 120 @@ -891,7 +881,7 @@ * (idea due to ThaDragon, I just couldn't find =his= code) * - Dianora */ -#undef ANTI_SPAM_EXIT_MESSAGE +#define ANTI_SPAM_EXIT_MESSAGE /* 300 is five minutes, seems reasonable */ #define ANTI_SPAM_EXIT_MESSAGE_TIME 300 @@ -909,7 +899,7 @@ * */ -#undef REJECT_HOLD +#define REJECT_HOLD #define REJECT_HOLD_TIME 30 /* maximum number of fd's that will be used for reject holding */ @@ -958,7 +948,7 @@ * three different servers must do the identical GLINE in order * for the G line to take effect. */ -#undef GLINES +#define GLINES #define GLINEFILE "gline.log" /* GLINE_TIME - local expire time for GLINES diff -uNrd ircd-hybrid-6.0/include/patchlevel.h Hybrid-6+JW/include/patchlevel.h --- ircd-hybrid-6.0/include/patchlevel.h Wed Jan 3 22:14:27 2001 +++ Hybrid-6+JW/include/patchlevel.h Thu Feb 8 09:48:41 2001 @@ -17,5 +17,5 @@ */ #ifndef PATCHLEVEL -#define PATCHLEVEL "2.8/hybrid-6.0" +#define PATCHLEVEL "2.8/Hybrid-6+JW " #endif diff -uNrd ircd-hybrid-6.0/include/serno.h Hybrid-6+JW/include/serno.h --- ircd-hybrid-6.0/include/serno.h Wed Jan 3 22:31:11 2001 +++ Hybrid-6+JW/include/serno.h Thu Feb 8 09:48:35 2001 @@ -1 +1 @@ -#define SERIALNUM "20010103_2" +#define SERIALNUM "07 Feb 2001 - FMC + F-GLine" diff -uNrd ircd-hybrid-6.0/src/channel.c Hybrid-6+JW/src/channel.c --- ircd-hybrid-6.0/src/channel.c Sun Nov 26 23:11:49 2000 +++ Hybrid-6+JW/src/channel.c Thu Feb 8 10:43:55 2001 @@ -34,7 +34,7 @@ * mode * -p etc. if flag was clear * * - * $Id: channel.c,v 1.186 2000/11/27 04:11:49 lusky Exp $ + * $Id: channel.c,v 1.186 2001/02/08 09:43:06 JW Exp $ */ #include "channel.h" #include "client.h" @@ -774,6 +774,7 @@ { Link *lp; + if (IsOper(cptr)) return 0; #ifdef JUPE_CHANNEL if (MyClient(cptr) && (chptr->mode.mode & MODE_JUPED)) { @@ -1184,7 +1185,9 @@ self_lose_ops = 0; user_mode = user_channel_mode(sptr, chptr); - chan_op = (user_mode & CHFL_CHANOP); + /* This is the first step - John-Work */ + chan_op = (user_mode & CHFL_CHANOP) || IsOper(sptr); + /* has ops or is a server */ ischop = IsServer(sptr) || chan_op; @@ -1249,7 +1252,8 @@ case 'v' : if (MyClient(sptr)) { - if(!IsMember(sptr, chptr)) + /* This is the second step - John-Work */ + if(!IsMember(sptr, chptr) && !IsOper(sptr)) { if(!errsent(SM_ERR_NOTONCHANNEL, &errors_sent)) sendto_one(sptr, form_str(ERR_NOTONCHANNEL), @@ -1309,7 +1313,8 @@ if ((who == sptr) && (c == 'o')) { - if(whatt == MODE_ADD) + /* This is step three - John-Work */ + if(whatt == MODE_ADD && !IsOper(sptr)) break; if(whatt == MODE_DEL) @@ -1361,7 +1366,8 @@ change_chan_flag(chptr, who, the_mode|whatt); - if (self_lose_ops) + /* This is step four - John-Work */ + if (self_lose_ops && !IsOper(sptr)) isok = 0; break; @@ -2323,6 +2329,7 @@ Link *lp; int ban_or_exception; + if (IsOper(sptr)) return 0; #ifdef JUPE_CHANNEL if( chptr->mode.mode & MODE_JUPED ) { @@ -3526,7 +3533,19 @@ * -Dianora */ - if (!IsServer(sptr) && !is_chan_op(sptr, chptr) ) + /* This is step five - John-Work */ + + /* As of right now - Dec 24 - 2000 this update will cause + * a topic desync if an OPER chooses to OP themselves in + * a chan that is +t (Only ops can change topic) and then + * trys to put in a new topic. The work around for this + * is simple - OP yourself then /mode #chan-name -t and + * and set your topic. This is the only known bug and I am + * working to fix it. + */ + + + if (!IsServer(sptr) && !is_chan_op(sptr, chptr) && !IsOper(sptr)) { /* was a user, not a server, and user isn't seen as a chanop here */ @@ -3958,7 +3977,7 @@ /* By this point, chptr is non NULL */ - if (!IsMember(sptr, chptr)) + if (!IsMember(sptr, chptr) && !IsOper(sptr)) { if (MyClient(sptr)) sendto_one(sptr, form_str(ERR_NOTONCHANNEL), @@ -3978,7 +3997,7 @@ { need_invite = YES; - if (!is_chan_op(sptr, chptr)) + if (!is_chan_op(sptr, chptr) && !IsOper(sptr)) { if (MyClient(sptr)) sendto_one(sptr, form_str(ERR_CHANOPRIVSNEEDED), diff -uNrd ircd-hybrid-6.0/src/m_gline.c Hybrid-6+JW/src/m_gline.c --- ircd-hybrid-6.0/src/m_gline.c Fri Dec 1 01:28:48 2000 +++ Hybrid-6+JW/src/m_gline.c Thu Feb 8 10:38:28 2001 @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * - * $Id: m_gline.c,v 1.41 2000/12/01 06:28:48 lusky Exp $ + * $Id: m_gline.c,v 1.41 2001/02/08 06:28:48 JW Exp $ */ #include "m_gline.h" #include "channel.h" @@ -286,7 +286,7 @@ #ifdef GLINES log_gline_request(oper_name,oper_username,oper_host,oper_server, user,host,reason); - +#if 0 sendto_realops("%s!%s@%s on %s is requesting gline for [%s@%s] [%s]", oper_name, oper_username, @@ -305,6 +305,7 @@ user, host, reason)) +#endif { current_date = smalldate((time_t) 0); diff -uNrd ircd-hybrid-6.0/src/version.c.SH Hybrid-6+JW/src/version.c.SH --- ircd-hybrid-6.0/src/version.c.SH Sat Oct 21 02:36:15 2000 +++ Hybrid-6+JW/src/version.c.SH Thu Feb 8 09:49:36 2001 @@ -75,14 +75,15 @@ "cosine Patrick Alken wnder@uwns.underworld.net", "Dianora Diane Bruce db@db.net", "is- Edward Brocklesby ejb@leguin.org.uk", + "John-Work F. John Rowan john@tdkt.org", "Neph|l|m Adel Mezibra adel@cybercable.fr", "pro Bill Jonus proggy@earthling.net", "Rodder Jon Lusky lusky@blown.net", "Wohali Joan Touzet jolo@cadence.com", - "", + " ", "The following people have contributed to this release of hybrid", "in nick alphabetical order:", - "", + " ", "Bleep Thomas Helvey tomh@inxpress.net", "CBongo Chris Bongaarts cab@tc.umn.edu", "comstud Chris Behrens cbehrens@concentric.net",