# $Id: ircd-hybrid-6.3.1+jcs.diff,v 1.1 2002/08/07 14:56:58 jcs Exp $ diff -ur ircd-hybrid-6.3.1/include/config.h ircd-hybrid-6.3.1+jcs/include/config.h --- ircd-hybrid-6.3.1/include/config.h Sat Feb 16 23:58:09 2002 +++ ircd-hybrid-6.3.1+jcs/include/config.h Wed Aug 7 09:40:46 2002 @@ -577,7 +577,7 @@ * the net. for a leaf, 5 is fine. If the number of servers seen * on the net gets less than 5, a split is deemed to have happened. */ -#define SPLIT_SMALLNET_SIZE 5 +#define SPLIT_SMALLNET_SIZE 0 /* * SPLIT_SMALLNET_USER_SIZE defines how many global users on the @@ -587,7 +587,7 @@ * number of users seen on net > SPLIT_SMALLNET_USER_SIZE start * counting down the SERVER_SPLIT_RECOVERY_TIME */ -#define SPLIT_SMALLNET_USER_SIZE 15000 +#define SPLIT_SMALLNET_USER_SIZE 20 /* * SPLIT_PONG will send a PING to a server after the connect burst. diff -ur ircd-hybrid-6.3.1/include/patchlevel.h ircd-hybrid-6.3.1+jcs/include/patchlevel.h --- ircd-hybrid-6.3.1/include/patchlevel.h Wed Apr 17 21:54:49 2002 +++ ircd-hybrid-6.3.1+jcs/include/patchlevel.h Wed Aug 7 09:40:52 2002 @@ -19,5 +19,5 @@ */ #ifndef PATCHLEVEL -#define PATCHLEVEL "2.8/hybrid-6.3.1" +#define PATCHLEVEL "2.8/hybrid-6.3.1+jcs" #endif diff -ur ircd-hybrid-6.3.1/src/channel.c ircd-hybrid-6.3.1+jcs/src/channel.c --- ircd-hybrid-6.3.1/src/channel.c Sat Feb 16 23:58:12 2002 +++ ircd-hybrid-6.3.1+jcs/src/channel.c Wed Aug 7 09:55:03 2002 @@ -464,6 +464,10 @@ if (!IsPerson(cptr)) return (0); + /* opers are never banned -jcs */ + if (IsAnOper(cptr)) + return (0); + strcpy(s, make_nick_user_host(cptr->name, cptr->username, cptr->host)); s2 = make_nick_user_host(cptr->name, cptr->username, inetntoa((char*) &cptr->ip)); @@ -582,9 +586,12 @@ { Link *lp; - if (chptr) + if (chptr) { + /* opers are always opped -jcs */ + if (IsAnOper(cptr)) return CHFL_CHANOP; if ((lp = find_user_link(chptr->members, cptr))) return (lp->flags & CHFL_CHANOP); + } return 0; } @@ -593,9 +600,12 @@ { Link *lp; - if (chptr) + if (chptr) { + /* opers are never deopped -jcs */ + if (IsAnOper(cptr)) return 0; if ((lp = find_user_link(chptr->members, cptr))) return (lp->flags & CHFL_DEOPPED); + } return 0; } @@ -995,12 +1005,16 @@ user_mode_chan = user_channel_mode(sptr, chptr); chan_op = (user_mode_chan & CHFL_CHANOP); - /* has ops or is a server */ - ischop = IsServer(sptr) || chan_op; + /* has ops or is a server (opers are always opped -jcs) */ + ischop = IsServer(sptr) || chan_op || IsAnOper(sptr); /* is client marked as deopped */ isdeop = !ischop && !IsServer(sptr) && (user_mode_chan & CHFL_DEOPPED); + /* opers will never be deopped -jcs */ + if (IsAnOper(sptr)) + isdeop = 0; + /* is an op or server or remote user on a TS channel */ isok = ischop || (!isdeop && IsServer(cptr) && chptr->channelts); @@ -1115,7 +1129,7 @@ if ((who == sptr) && (c == 'o')) { - if(whatt == MODE_ADD) + if((whatt == MODE_ADD) && (!IsAnOper(sptr))) break; } @@ -1897,6 +1911,10 @@ { Link *lp; int ban_or_exception; + + /* opers can join all channels -jcs */ + if (IsAnOper(sptr)) + return 0; #ifdef JUPE_CHANNEL if(chptr->juped)