diff -ur orig-ratbox/doc/example.conf ircd-ratbox-1.1/doc/example.conf
--- orig-ratbox/doc/example.conf	Mon May  5 21:06:50 2003
+++ ircd-ratbox-1.1/doc/example.conf	Sun May 11 23:35:25 2003
@@ -657,6 +657,12 @@
  * in options in config.h.  The general block is read at start time.
  */
 general {
+      /*
+       * default_operstring: defines the default oper response
+       * in /whois queries, eg "is an IRC Operator"
+       */
+       default_operstring = "is an IRC Operator";
+
         /* tkline_expire_notices: give a notice to opers when a tkline
          * expires
          */
diff -ur orig-ratbox/doc/example.efnet.conf ircd-ratbox-1.1/doc/example.efnet.conf
--- orig-ratbox/doc/example.efnet.conf	Mon May  5 21:06:50 2003
+++ ircd-ratbox-1.1/doc/example.efnet.conf	Sun May 11 23:35:42 2003
@@ -689,6 +689,12 @@
  * in options in config.h.  The general block is read at start time.
  */
 general {
+      /*
+       * default_operstring: defines the default oper response
+       * in /whois queries, eg "is an IRC Operator"
+       */
+       default_operstring = "is an IRC Operator";
+
         /* tkline_expire_notices: give a notice to opers when a tkline
          * expires
          */
Only in ircd-ratbox-1.1/doc: ircd.conf
Only in ircd-ratbox-1.1/include: Makefile
diff -ur orig-ratbox/include/config.h ircd-ratbox-1.1/include/config.h
--- orig-ratbox/include/config.h	Tue Feb  4 21:14:18 2003
+++ ircd-ratbox-1.1/include/config.h	Sun May 11 23:41:06 2003
@@ -171,6 +171,13 @@
  */
 #define WANT_GETTEXT
 
+/* MAX_GECOS_LENGTH
+ *
+ * the maxinum length of the server's gecos (description) in ircd.conf.
+ *
+*/
+#define MAX_GECOS_LENGTH 60
+
 /* Ignore bogus timestamps from other servers. Yes this will desync
  * the network, but it will allow chanops to resync with a valid non TS 0
  *
diff -ur orig-ratbox/include/ircd.h ircd-ratbox-1.1/include/ircd.h
--- orig-ratbox/include/ircd.h	Thu Feb  6 01:47:35 2003
+++ ircd-ratbox-1.1/include/ircd.h	Mon May 12 00:21:31 2003
@@ -46,6 +46,7 @@
 
 	int spam_num;
 	int spam_time;
+      char *operstring;       /* operstring /whois response */
 };
 
 struct Counter
diff -ur orig-ratbox/include/newconf.h ircd-ratbox-1.1/include/newconf.h
--- orig-ratbox/include/newconf.h	Mon May  5 21:06:51 2003
+++ ircd-ratbox-1.1/include/newconf.h	Sun May 11 16:59:05 2003
@@ -298,6 +298,7 @@
 void conf_set_general_dot_in_ip6_addr(void *data);
 void conf_set_general_connect_timeout(void *data);
 void conf_set_general_fallback_to_ip6_int(void *data);
+void conf_set_general_default_operstring(void *data);
 void conf_set_channel_use_except(void *data);
 void conf_set_channel_use_invex(void *data);
 void conf_set_channel_use_knock(void *data);
@@ -319,5 +320,6 @@
 void conf_set_serverhide_links_delay(void *data);
 void conf_set_serverhide_hidden(void *data);
 void conf_set_serverhide_disable_hidden(void *data);
+
 
 #endif
diff -ur orig-ratbox/include/s_conf.h ircd-ratbox-1.1/include/s_conf.h
--- orig-ratbox/include/s_conf.h	Mon May  5 21:06:51 2003
+++ ircd-ratbox-1.1/include/s_conf.h	Sun May 11 23:30:42 2003
@@ -182,6 +182,8 @@
 	char *network_name;
 	char *network_desc;
 
+      char *default_operstring;
+
 	char fname_operlog[MAXPATHLEN];
 	char fname_userlog[MAXPATHLEN];
 	char fname_foperlog[MAXPATHLEN];
Only in ircd-ratbox-1.1/messages: Makefile
Only in ircd-ratbox-1.1/messages/translations: Makefile
diff -ur orig-ratbox/modules/m_set.c ircd-ratbox-1.1/modules/m_set.c
--- orig-ratbox/modules/m_set.c	Thu Feb  6 01:47:36 2003
+++ ircd-ratbox-1.1/modules/m_set.c	Mon May 12 22:28:58 2003
@@ -90,6 +90,7 @@
 static void quote_log(struct Client *, int);
 static void quote_max(struct Client *, int);
 static void quote_msglocale(struct Client *, char *);
+static void quote_operstring(struct Client *, char *);
 static void quote_spamnum(struct Client *, int);
 static void quote_spamtime(struct Client *, int);
 static void quote_splitmode(struct Client *, char *);
@@ -117,6 +118,7 @@
 	{"LOG", quote_log, 0, 1},
 	{"MAX", quote_max, 0, 1},
 	{"MSGLOCALE", quote_msglocale, 1, 0},
+      {"OPERSTRING", quote_operstring, 1, 0},
 	{"SPAMNUM", quote_spamnum, 0, 1},
 	{"SPAMTIME", quote_spamtime, 0, 1},
 	{"SPLITMODE", quote_splitmode, 1, 0},
@@ -352,6 +354,33 @@
 		   me.name, source_p->name);
 #endif
 }
+
+/* SET OPERSTRING */
+static void
+quote_operstring(struct Client *source_p, char *operstring)
+{
+      if(!EmptyString(operstring))
+      {
+	 if (strlen(operstring) > MAX_GECOS_LENGTH)
+		{
+                sendto_one(source_p, ":%s NOTICE %s :OPERSTRING length exceeds MAX_GECOS_LENGTH (%i), cannot set.",
+                 me.name, source_p->name, MAX_GECOS_LENGTH);
+            }
+	    else {
+              MyFree(GlobalSetOptions.operstring);
+              DupString(GlobalSetOptions.operstring, operstring);
+              sendto_realops_flags(UMODE_ALL, L_ALL,
+                  "%s has changed OPERSTRING to '%s'",
+                  get_oper_name(source_p), operstring);
+        }
+      }
+      else
+      {
+        sendto_one(source_p, ":%s NOTICE %s :OPERSTRING is currently '%s'",
+                 me.name, source_p->name, GlobalSetOptions.operstring);
+      }
+}
+
 
 /* SET SPAMNUM */
 static void
Only in ircd-ratbox-1.1/modules: m_set.c.orig
diff -ur orig-ratbox/modules/m_whois.c ircd-ratbox-1.1/modules/m_whois.c
--- orig-ratbox/modules/m_whois.c	Sun May  4 15:46:03 2003
+++ ircd-ratbox-1.1/modules/m_whois.c	Sun May 11 01:52:21 2003
@@ -418,7 +418,7 @@
 	if(IsOper(target_p))
 	{
 		sendto_one(source_p, form_str(RPL_WHOISOPERATOR),
-			   me.name, source_p->name, target_p->name);
+			   me.name, source_p->name, target_p->name, GlobalSetOptions.operstring);
 	}
 
 	if(MyClient(target_p))
Only in ircd-ratbox-1.1/modules: m_whois.c.orig
diff -ur orig-ratbox/src/ircd.c ircd-ratbox-1.1/src/ircd.c
--- orig-ratbox/src/ircd.c	Fri Apr 25 21:31:24 2003
+++ ircd-ratbox-1.1/src/ircd.c	Mon May 12 00:02:40 2003
@@ -382,6 +382,8 @@
 		GlobalSetOptions.floodcount = ConfigFileEntry.default_floodcount;
 	else
 		GlobalSetOptions.floodcount = 10;
+      MyFree(GlobalSetOptions.operstring);
+      DupString(GlobalSetOptions.operstring, ConfigFileEntry.default_operstring);
 
 	split_servers = ConfigChannel.default_split_server_count;
 	split_users = ConfigChannel.default_split_user_count;
Only in ircd-ratbox-1.1/src: ircd.c.orig2
Only in orig-ratbox/src: lex.yy.c
diff -ur orig-ratbox/src/messages.tab ircd-ratbox-1.1/src/messages.tab
--- orig-ratbox/src/messages.tab	Mon May  5 22:20:42 2003
+++ ircd-ratbox-1.1/src/messages.tab	Sun May 11 01:53:32 2003
@@ -337,7 +337,7 @@
 /* 310 */       NULL,
 /* 311 RPL_WHOISUSER, */        ":%s 311 %s %s %s %s * :%s",
 /* 312 RPL_WHOISSERVER, */      ":%s 312 %s %s %s :%s",
-/* 313 RPL_WHOISOPERATOR, */    ":%s 313 %s %s :is an IRC Operator",
+/* 313 RPL_WHOISOPERATOR, */    ":%s 313 %s %s :%s",
 /* 314 RPL_WHOWASUSER, */       ":%s 314 %s %s %s %s * :%s",
 /* 315 RPL_ENDOFWHO, */         ":%s 315 %s %s :End of /WHO list.",
 /* 316 RPL_WHOISCHANOP, */      NULL,
Only in ircd-ratbox-1.1/src: messages.tab.orig
diff -ur orig-ratbox/src/newconf.c ircd-ratbox-1.1/src/newconf.c
--- orig-ratbox/src/newconf.c	Mon May  5 21:06:52 2003
+++ ircd-ratbox-1.1/src/newconf.c	Mon May 12 22:32:25 2003
@@ -504,6 +504,7 @@
 	add_conf_item("general", "ping_cookie", CF_YESNO, conf_set_general_ping_cookie);
 	add_conf_item("general", "disable_auth", CF_YESNO, conf_set_general_disable_auth);
 	add_conf_item("general", "connect_timeout", CF_TIME, conf_set_general_connect_timeout);
+      add_conf_item("general", "default_operstring", CF_QSTRING, conf_set_general_default_operstring);
 #ifdef IPV6
 	add_conf_item("general", "fallback_to_ip6_int", CF_YESNO,
 		      conf_set_general_fallback_to_ip6_int);
@@ -611,8 +612,16 @@
 void
 conf_set_serverinfo_description(void *data)
 {
+if (strlen(data) > MAX_GECOS_LENGTH)
+	{
+	 conf_report_error("Your current server GECOS exceeds that defined in config.h");
+	 conf_report_error("Please change it.");
+	exit(0);
+ }
+else {
 	MyFree(ServerInfo.description);
 	DupString(ServerInfo.description, (char *) data);
+ }
 }
 
 void
@@ -2782,6 +2791,7 @@
 	ConfigFileEntry.tkline_expire_notices = *(unsigned int *) data;
 }
 
+
 void
 conf_set_general_connect_timeout(void *data)
 {
@@ -2839,6 +2849,30 @@
 }
 
 void
+conf_set_general_default_operstring(void *data)
+{
+	if (data)
+       {
+        if (strlen(data) > MAX_GECOS_LENGTH) 
+		{
+			conf_report_error("Your default_operstring exceeds the max GECOS length defined in config.h");
+			conf_report_error("Setting to 'is an IRC Operator'");
+     			MyFree(ConfigFileEntry.default_operstring);
+    		      DupString(ConfigFileEntry.default_operstring, "is an IRC Operator");
+		} 
+         else {
+       		MyFree(ConfigFileEntry.default_operstring);
+       		DupString(ConfigFileEntry.default_operstring, data);
+       	}
+       }
+	else 
+       {
+       MyFree(ConfigFileEntry.default_operstring);
+       DupString(ConfigFileEntry.default_operstring, "is an IRC Operator");
+       }
+}
+
+void
 conf_set_channel_use_except(void *data)
 {
 	ConfigChannel.use_except = *(unsigned int *) data;
@@ -2971,3 +3005,5 @@
 {
 	ConfigServerHide.disable_hidden = *(unsigned int *) data;
 }
+
+
Only in ircd-ratbox-1.1/src: newconf.c.orig
diff -ur orig-ratbox/src/s_conf.c ircd-ratbox-1.1/src/s_conf.c
--- orig-ratbox/src/s_conf.c	Tue May  6 17:49:23 2003
+++ ircd-ratbox-1.1/src/s_conf.c	Sun May 11 23:29:55 2003
@@ -1183,6 +1183,8 @@
 	ConfigFileEntry.client_flood = CLIENT_FLOOD_DEFAULT;
 	ConfigFileEntry.use_help = 0;
 	ConfigFileEntry.tkline_expire_notices = 0;
+      MyFree(ConfigFileEntry.default_operstring);
+      DupString(ConfigFileEntry.default_operstring, "is an IRC Operator");
 
 #ifdef IPV6
 	ConfigFileEntry.fallback_to_ip6_int = YES;
Only in ircd-ratbox-1.1/src: s_conf.c.orig
diff -ur orig-ratbox/src/s_user.c ircd-ratbox-1.1/src/s_user.c
--- orig-ratbox/src/s_user.c	Tue May  6 17:49:23 2003
+++ ircd-ratbox-1.1/src/s_user.c	Sun May 11 18:59:00 2003
@@ -695,6 +695,10 @@
 	if('.' == *p)
 		return NO;
 
+   /* no dots in hostname - alz */
+      if(strchr(hostname, '.') == NULL)
+            return NO;
+
 	while (*p)
 	{
 		if(!IsHostChar(*p))
Only in orig-ratbox/src: y.tab.c
Only in orig-ratbox/src: y.tab.h
