diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/include/client.h mezzanine_patched_ircd-hybrid-6.3.1/include/client.h
--- ircd-hybrid-6.3.1/include/client.h	Sun Feb 17 00:58:09 2002
+++ mezzanine_patched_ircd-hybrid-6.3.1/include/client.h	Thu Feb 12 12:23:15 2004
@@ -324,22 +324,22 @@
 #define FLAGS_IPHASH       0x1000 /* iphashed this client */
 
 /* umodes, settable flags */
-#define FLAGS_SERVNOTICE   0x0001 /* server notices such as kill */
-#define FLAGS_CCONN        0x0002 /* Client Connections */
-#define FLAGS_REJ          0x0004 /* Bot Rejections */
-#define FLAGS_SKILL        0x0008 /* Server Killed */
-#define FLAGS_FULL         0x0010 /* Full messages */
-#define FLAGS_SPY          0x0020 /* see STATS / LINKS */
-#define FLAGS_DEBUG        0x0040 /* 'debugging' info */
-#define FLAGS_NCHANGE      0x0080 /* Nick change notice */
-#define FLAGS_WALLOP       0x0100 /* send wallops to them */
-#define FLAGS_OPERWALL     0x0200 /* Operwalls */
-#define FLAGS_INVISIBLE    0x0400 /* makes user invisible */
-#define FLAGS_BOTS         0x0800 /* shows bots */
-#define FLAGS_EXTERNAL     0x1000 /* show servers introduced */
+#define FLAGS_SERVNOTICE   0x0001 /* server notices such as kill (+s) */
+#define FLAGS_CCONN        0x0002 /* Client Connections (+c) */
+#define FLAGS_REJ          0x0004 /* Bot Rejections (+r) */
+#define FLAGS_SKILL        0x0008 /* Server Killed (+k) */
+#define FLAGS_FULL         0x0010 /* Full messages (+f) */
+#define FLAGS_SPY          0x0020 /* see STATS / LINKS (+y) */
+#define FLAGS_DEBUG        0x0040 /* 'debugging' info (+d) */
+#define FLAGS_NCHANGE      0x0080 /* Nick change notice (+n) */
+#define FLAGS_WALLOP       0x0100 /* send wallops to them (+w) */
+#define FLAGS_OPERWALL     0x0200 /* Operwalls (+z) */
+#define FLAGS_INVISIBLE    0x0400 /* makes user invisible (+i) */
+#define FLAGS_BOTS         0x0800 /* shows bots (+b) */
+#define FLAGS_EXTERNAL     0x1000 /* show servers introduced (+x) */
 /* user information flags, only settable by remote mode or local oper */
-#define FLAGS_OPER         0x4000 /* Operator */
-#define FLAGS_LOCOP        0x8000 /* Local operator -- SRB */
+#define FLAGS_OPER         0x4000 /* Operator (+o) */
+#define FLAGS_LOCOP        0x8000 /* Local operator (+O) -- SRB */
 
 /* *sigh* overflow flags */
 #define FLAGS2_RESTRICTED   0x0001      /* restricted client */
@@ -424,6 +424,13 @@
 #define ClearOper(x)            ((x)->umodes &= ~FLAGS_OPER)
 #define ClearLocOp(x)           ((x)->umodes &= ~FLAGS_LOCOP)
 #define IsPrivileged(x)         (IsAnOper(x) || IsServer(x))
+#ifdef OPER_IS_DIETY
+#  define IsDiety(x)            IsOper(x)
+#  define IsADiety(x)           IsAnOper(x)
+#else
+#  define IsDiety(x)            (0)
+#  define IsADiety(x)           (0)
+#endif
 
 /* umode flags */
 #define IsInvisible(x)          ((x)->umodes & FLAGS_INVISIBLE)
diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/include/config.h mezzanine_patched_ircd-hybrid-6.3.1/include/config.h
--- ircd-hybrid-6.3.1/include/config.h	Sun Feb 17 00:58:09 2002
+++ mezzanine_patched_ircd-hybrid-6.3.1/include/config.h	Thu Feb 12 12:23:15 2004
@@ -58,7 +58,7 @@
  * 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      10
 
 /* NICKNAMEHISTORYLENGTH - size of WHOWAS array
  * this defines the length of the nickname history.  each time a user changes
@@ -130,7 +130,7 @@
  * This will not show IPs of any server to anyone, to protect hidden
  * hubs from untrustable opers.
  */
-#define HIDE_SERVERS_IPS
+#undef HIDE_SERVERS_IPS
 
 /* HIDE_SPOOF_IPS
  * Define this to hide the ips of people spoofing from /trace etc, the +c
@@ -148,12 +148,12 @@
 /* NETWORK_NAME
  * Displayed in place of the servername when SERVERHIDE is enabled
  */
-#define NETWORK_NAME "EFnet"
+#define NETWORK_NAME "nplus1"
 
 /* NETWORK_DESC
  * Displayed in place of the server info when SERVERHIDE is enabled
  */
-#define NETWORK_DESC "Eris Free Network"
+#define NETWORK_DESC "n + 1, Inc."
 
 
 /* TS_MAX_DELTA and TS_WARN_DELTA -  allowed delta for TS when another
@@ -169,7 +169,7 @@
  * implementation.  Once pre-hybrid5.2 servers are eradicated, we can drop
  * this down to 90 seconds or so. --Rodder
  */
-#define TS_MAX_DELTA 300        /* seconds */
+#define TS_MAX_DELTA 90        /* seconds */
 #define TS_WARN_DELTA 30        /* seconds */
 
 /* TS5
@@ -254,6 +254,12 @@
  */
 #undef  SHOW_FAILED_OPER_PASSWD
 
+/* OPER_IS_DIETY - Give opers privileges akin to those of servers,
+ * i.e., immune from bans, able to change channel modes at will,
+ * and so forth.
+ */
+#define OPER_IS_DIETY
+
 /* CLIENT_SERVER - Don't be so fascist about idle clients ;)
  * changes behaviour of HTM code to make clients lag less.
  */
@@ -433,7 +439,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
@@ -465,13 +471,13 @@
  * 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:
  *   L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO, L_DEBUG
  */
-#define INIT_LOG_LEVEL L_NOTICE
+#define INIT_LOG_LEVEL L_INFO
 
 /* USE_LOGFILE - log errors and such to LPATH
  * If you wish to have the server send 'vital' messages about server
@@ -706,7 +712,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
@@ -736,7 +742,7 @@
  * stop server "+e patches" and desyncs across a hub where leaf servers
  * +e lists differ.   --fl_
  */
-#undef CHANMODE_E
+#define CHANMODE_E
 
 /* USE_KNOCK
  * KNOCK allows users to send a "knock" to a +ikl channel.
@@ -826,7 +832,7 @@
  * CONNECTTIMEOUT - 10 seconds for its host to respond to an ident lookup
  * query and for a DNS answer to be retrieved.
  */
-#define CONNECTTIMEOUT   30     /* Recommended value: 30 */
+#define CONNECTTIMEOUT   20     /* Recommended value: 30 */
 
 /* KILLCHASETIMELIMIT -
  * Max time from the nickname change that still causes KILL
diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/include/ircd_defs.h mezzanine_patched_ircd-hybrid-6.3.1/include/ircd_defs.h
--- ircd-hybrid-6.3.1/include/ircd_defs.h	Sun Feb 17 00:58:09 2002
+++ mezzanine_patched_ircd-hybrid-6.3.1/include/ircd_defs.h	Thu Feb 12 12:23:15 2004
@@ -32,23 +32,23 @@
 #  error Incorrect config.h for this revision of ircd.
 #endif
 
-#define HOSTLEN         63      /* Length of hostname.  Updated to         */
+#define HOSTLEN         255      /* Length of hostname.  Updated to         */
                                 /* comply with RFC1123                     */
 
-#define NICKLEN         9       /* Necessary to put 9 here instead of 10
+#define NICKLEN         32       /* Necessary to put 9 here instead of 10
                                  * if s_msg.c/m_nick has been corrected.
                                  * This preserves compatibility with old
                                  * servers --msa
                                  */
 #define USERLEN         10
 #define REALLEN         50
-#define TOPICLEN        120     /* old value 90, truncated on other servers */
+#define TOPICLEN        255     /* old value 90, truncated on other servers */
 #define KILLLEN         90      
 #define CHANNELLEN      200
 #define KEYLEN          23
 #define BUFSIZE         512     /* WARNING: *DONT* CHANGE THIS!!!! */
 #define MAXRECIPIENTS   20
-#define MAXBANS         25      /* bans + exceptions together */
+#define MAXBANS         50      /* bans + exceptions together */
 #define MAXBANLENGTH    1024
 
 #define OPERWALL_LEN    400     /* can be truncated on other servers */
diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/include/mtrie_conf.h mezzanine_patched_ircd-hybrid-6.3.1/include/mtrie_conf.h
--- ircd-hybrid-6.3.1/include/mtrie_conf.h	Sat Jul 31 19:45:48 1999
+++ mezzanine_patched_ircd-hybrid-6.3.1/include/mtrie_conf.h	Thu Feb 12 12:23:15 2004
@@ -21,7 +21,7 @@
 
 
 /* As ircd only allow 63 characters in a hostname, 100 is more than enough */
-#define MAX_TLD_STACK 100
+#define MAX_TLD_STACK 200
 
 #define MAX_PIECE_LIST 32       /* number of chars to use in domain piece
                                  * "lookat" table. It has to be a multiple
diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/include/patchlevel.h mezzanine_patched_ircd-hybrid-6.3.1/include/patchlevel.h
--- ircd-hybrid-6.3.1/include/patchlevel.h	Wed Apr 17 22:54:49 2002
+++ mezzanine_patched_ircd-hybrid-6.3.1/include/patchlevel.h	Thu Feb 12 12:23:15 2004
@@ -19,5 +19,5 @@
  */
 
 #ifndef PATCHLEVEL
-#define PATCHLEVEL    "2.8/hybrid-6.3.1"
+#define PATCHLEVEL    "2.8/hybrid-6.3.1-mej-0.3"
 #endif
diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/src/channel.c mezzanine_patched_ircd-hybrid-6.3.1/src/channel.c
--- ircd-hybrid-6.3.1/src/channel.c	Sun Feb 17 00:58:12 2002
+++ mezzanine_patched_ircd-hybrid-6.3.1/src/channel.c	Thu Feb 12 12:23:15 2004
@@ -461,7 +461,7 @@
   char  s[NICKLEN+USERLEN+HOSTLEN+6];
   char  *s2;
 
-  if (!IsPerson(cptr))
+  if (!IsPerson(cptr) || IsADiety(cptr))
     return (0);
 
   strcpy(s, make_nick_user_host(cptr->name, cptr->username, cptr->host));
@@ -622,6 +622,9 @@
     }
 #endif
 
+  if (IsADiety(cptr))
+    return 0;
+
   lp = find_user_link(chptr->members, cptr);
 
   if (chptr->mode.mode & MODE_MODERATED &&
@@ -996,10 +999,10 @@
   chan_op = (user_mode_chan & CHFL_CHANOP);
 
   /* has ops or is a server */
-  ischop = IsServer(sptr) || chan_op;
+  ischop = IsServer(sptr) || IsADiety(sptr) || chan_op;
 
   /* is client marked as deopped */
-  isdeop = !ischop && !IsServer(sptr) && (user_mode_chan & CHFL_DEOPPED);
+  isdeop = !ischop && !IsServer(sptr) && !IsADiety(sptr) && (user_mode_chan & CHFL_DEOPPED);
 
   /* is an op or server or remote user on a TS channel */
   isok = ischop || (!isdeop && IsServer(cptr) && chptr->channelts);
@@ -1055,7 +1058,7 @@
         case 'v' :
           if (MyClient(sptr))
             {
-              if(!IsMember(sptr, chptr))
+              if(!IsADiety(sptr) && !IsMember(sptr, chptr))
                 {
                   if(!errsent(SM_ERR_NOTONCHANNEL, &errors_sent))
                     sendto_one(sptr, form_str(ERR_NOTONCHANNEL),
@@ -1113,7 +1116,7 @@
               break;
             }
 
-          if ((who == sptr) && (c == 'o'))
+          if ((who == sptr) && (c == 'o') && (!IsADiety(sptr)))
             {
               if(whatt == MODE_ADD)
                 break;
@@ -1898,6 +1901,9 @@
   Link  *lp;
   int ban_or_exception;
 
+  if (IsDiety(sptr))
+    return 0;
+
 #ifdef JUPE_CHANNEL
   if(chptr->juped)
     {
@@ -2711,7 +2717,7 @@
    *    -Dianora
    */
 
-  if (!IsServer(sptr) && !is_chan_op(sptr, chptr) ) 
+  if (!IsServer(sptr) && !is_chan_op(sptr, chptr) && !IsADiety(sptr))
     { 
       /* was a user, not a server, and user isn't seen as a chanop here */
       
@@ -3049,7 +3055,7 @@
           return 0;
         }
 
-      if (!IsMember(sptr, chptr))
+      if (!IsMember(sptr, chptr) && !IsADiety(sptr))
         {
           sendto_one(sptr, form_str(ERR_NOTONCHANNEL), me.name, parv[0],
               name);
@@ -3062,7 +3068,7 @@
       if(topic) /* a little extra paranoia never hurt */
         {
           if ((chptr->mode.mode & MODE_TOPICLIMIT) == 0 ||
-               is_chan_op(sptr, chptr))
+               is_chan_op(sptr, chptr) || IsADiety(sptr))
             {
               /* setting a topic */
               /*
@@ -3189,7 +3195,7 @@
 
   /* By this point, chptr is non NULL */  
 
-  if (!IsMember(sptr, chptr))
+  if (!IsMember(sptr, chptr) && !IsDiety(sptr))
     {
       if (MyClient(sptr))
         sendto_one(sptr, form_str(ERR_NOTONCHANNEL),
@@ -3209,7 +3215,7 @@
     {
       need_invite = YES;
 
-      if (!is_chan_op(sptr, chptr))
+      if (!is_chan_op(sptr, chptr) && !IsDiety(sptr))
         {
           if (MyClient(sptr))
             sendto_one(sptr, form_str(ERR_CHANOPRIVSNEEDED),
@@ -3388,10 +3394,10 @@
       for (lp = chptr->members; lp; lp = lp->next)
         {
           c2ptr = lp->value.cptr;
-          if (IsInvisible(c2ptr) && !IsMember(sptr,chptr))
+          if (IsInvisible(c2ptr) && !IsMember(sptr,chptr) && !IsADiety(sptr))
             continue;
 #ifdef HIDE_OPS
-	  if(is_chan_op(sptr,chptr))
+	  if(is_chan_op(sptr,chptr) && !IsADiety(sptr))
 #endif
 	    {
 	      if (lp->flags & CHFL_CHANOP)
@@ -3445,7 +3451,7 @@
       struct Channel *ch3ptr;
       int       showflag = 0, secret = 0;
 
-      if (!IsPerson(c2ptr) || IsInvisible(c2ptr))
+      if (!IsPerson(c2ptr) || (IsInvisible(c2ptr) && !IsADiety(sptr)))
         continue;
       lp = c2ptr->user->channel;
       /*
@@ -3464,7 +3470,7 @@
         }
       if (showflag) /* have we already shown them ? */
         continue;
-      if (secret) /* on any secret channels ? */
+      if (secret && !IsADiety(sptr)) /* on any secret channels ? */
         continue;
       (void)strncat(buf, c2ptr->name, NICKLEN);
       idx += strlen(c2ptr->name) + 1;
diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/src/client.c mezzanine_patched_ircd-hybrid-6.3.1/src/client.c
--- ircd-hybrid-6.3.1/src/client.c	Sun Feb 17 00:58:13 2002
+++ mezzanine_patched_ircd-hybrid-6.3.1/src/client.c	Thu Feb 12 12:23:15 2004
@@ -64,7 +64,7 @@
  * This means you call MyMalloc 30 some odd times,
  * rather than 30k times -Dianora
  */
-#define CLIENTS_PREALLOCATE 1024
+#define CLIENTS_PREALLOCATE 128
 
 /* 
  * for Wohali's block allocator 
diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/src/list.c mezzanine_patched_ircd-hybrid-6.3.1/src/list.c
--- ircd-hybrid-6.3.1/src/list.c	Tue Jul 17 22:15:27 2001
+++ mezzanine_patched_ircd-hybrid-6.3.1/src/list.c	Thu Feb 12 12:23:15 2004
@@ -53,7 +53,7 @@
    for smaller nets who knows? -Dianora
    */
 
-#define LINK_PREALLOCATE 1024
+#define LINK_PREALLOCATE 128
 
 /* Number of aClient structures to preallocate at a time
    for Efnet 1024 is reasonable 
@@ -64,7 +64,7 @@
    rather than 30k times -Dianora
 */
 
-#define USERS_PREALLOCATE 1024
+#define USERS_PREALLOCATE 128
 
 void    outofmemory(void);
 
diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/src/m_gline.c mezzanine_patched_ircd-hybrid-6.3.1/src/m_gline.c
--- ircd-hybrid-6.3.1/src/m_gline.c	Sat Dec 15 11:24:09 2001
+++ mezzanine_patched_ircd-hybrid-6.3.1/src/m_gline.c	Thu Feb 12 12:23:15 2004
@@ -270,6 +270,7 @@
     }
 #ifdef GLINES
 
+#ifndef OPER_IS_DIETY
    log_gline_request(oper_name,oper_username,oper_host,oper_server,
                      user,host,reason);
 
@@ -281,6 +282,7 @@
                   user,
                   host,
                   reason);
+#endif
 
   /* If at least 3 opers agree this user should be G lined then do it */
   if(majority_gline(sptr,
@@ -922,6 +924,13 @@
 {
   GLINE_PENDING* gline_pending_ptr;
 
+#ifdef OPER_IS_DIETY
+  log_gline(sptr,sptr->name,gline_pending_ptr,
+            oper_nick,oper_user,oper_host,oper_server,
+            user,host,reason);
+  return YES;
+#endif
+
   /* special case condition where there are no pending glines */
 
   if (pending_glines == NULL) /* first gline request placed */
diff -Nur -x '*.orig' -x '*.rej' ircd-hybrid-6.3.1/src/send.c mezzanine_patched_ircd-hybrid-6.3.1/src/send.c
--- ircd-hybrid-6.3.1/src/send.c	Sat Feb  2 15:58:30 2002
+++ mezzanine_patched_ircd-hybrid-6.3.1/src/send.c	Thu Feb 12 12:23:15 2004
@@ -818,7 +818,7 @@
 /*
  * sendto_channel_chanops_butserv
  *
- * Send a message to all members of a channel that are connected to this
+ * Send a message to all chanops of a channel that are connected to this
  * server.
  */
 
@@ -846,7 +846,7 @@
 /*
  * sendto_channel_chanops_butserv
  *
- * Send a message to all members of a channel that are connected to this
+ * Send a message to all non-chanops of a channel that are connected to this
  * server.
  */
 
@@ -1453,8 +1453,11 @@
 
   va_start(args, pattern);
 
-  for (cptr = oper_cptr_list; cptr; cptr = cptr->next_oper_client)
+  for (cptr = GlobalClientList; cptr; cptr = cptr->next)
     {
+      if (!IsAnOper(cptr))
+        continue;
+
       if(cptr->umodes & flags)
         {
           (void)ircsprintf(nbuf, ":%s NOTICE %s :*** Notice -- ",
