Bump patchlevel and fix init_class() dropping configured classes.
[ircu2.10.12-pk.git] / ircd / class.c
index e0fe644639f230165f2b96b3babee6b54c0575d5..7415805195574156b751c66ddda76492edca3826 100644 (file)
@@ -77,8 +77,8 @@ void free_class(struct ConnectionClass* p)
   if (p)
   {
     assert(0 == p->valid);
-    if (p->cc_name)
-      MyFree(p->cc_name);
+    MyFree(p->cc_name);
+    MyFree(p->default_umode);
     MyFree(p);
     --connClassAllocCount;
   }
@@ -91,8 +91,10 @@ void free_class(struct ConnectionClass* p)
  */
 void init_class(void)
 {
-  if (!connClassList)
+  if (!connClassList) {
     connClassList = (struct ConnectionClass*) make_class();
+    connClassList->next   = 0;
+  }
 
   /* We had better not try and free this... */
   ConClass(connClassList) = "default";
@@ -101,8 +103,7 @@ void init_class(void)
   MaxLinks(connClassList) = feature_int(FEAT_MAXIMUM_LINKS);
   MaxSendq(connClassList) = feature_int(FEAT_DEFAULTMAXSENDQLENGTH);
   connClassList->valid    = 1;
-  Links(connClassList)    = 0;
-  connClassList->next     = 0;
+  Links(connClassList)    = 1;
 }
 
 /** Mark current connection classes as invalid.
@@ -196,19 +197,6 @@ get_client_class(struct Client *acptr)
   return "(null-class)";
 }
 
-/** Get connection interval for a connection class.
- * @param[in] clptr Connection class to check (or NULL).
- * @return If \a clptr != NULL, its connection frequency; else default
- * connection frequency.
- */
-unsigned int get_con_freq(struct ConnectionClass * clptr)
-{
-  if (clptr)
-    return (ConFreq(clptr));
-  else
-    return feature_int(FEAT_CONNECTFREQUENCY);
-}
-
 /** Make sure we have a connection class named \a name.
  * If one does not exist, create it.  Then set its ping frequency,
  * connection frequency, maximum link count, and max SendQ according
@@ -270,7 +258,7 @@ report_classes(struct Client *sptr, const struct StatDesc *sd,
   for (cltmp = connClassList; cltmp; cltmp = cltmp->next)
     send_reply(sptr, RPL_STATSYLINE, 'Y', ConClass(cltmp), PingFreq(cltmp),
               ConFreq(cltmp), MaxLinks(cltmp), MaxSendq(cltmp),
-              Links(cltmp));
+              Links(cltmp) - 1);
 }
 
 /** Return maximum SendQ length for a client.