--- /dev/null
+Changes for 3.6.1
+-----------------
+- Fixed bug in which ircd.conf file descriptors were not closed - 2812688
+
#define CONFF_PORT 0x000400
#define CONFT_MODULES "MODULES"
#define CONFF_MODULES 0x000800
+#define CONFT_SOPT "SOLID_OPTIONS"
+#define CONFF_SOPT 0x001000
/* subtokens */
#define MBTT_OPTLOAD "OPTLOAD"
#define MBTF_OPTLOAD 0x0004
+/* solid_options block definitions */
+
+#define SOTT_HOSTIRCOP "HOSTIRCOP"
+#define SOTF_HOSTIRCOP 0x000001
+#define SOTT_HOSTADMIN "HOSTADMIN"
+#define SOTF_HOSTADMIN 0x000002
+#define SOTT_HOSTNETADMIN "HOSTNETADMIN"
+#define SOTF_HOSTNETADMIN 0x000004
+
/* our variable types */
#define VARTYPE_INT 0x0001 /* integers */
#ifndef __patchlevel_header__
#define __patchlevel_header__
-#define BASENAME "bahamut"
-#define MAJOR 1
-#define MINOR 8
-#define PATCH 6
+#define BASENAME "solid"
+#define MAJOR 3
+#define MINOR 6
+#define PATCH 1
#define PATCHES ""
#define UMODE_K 0x4000000 /* umode +K - U: lined server kill messages */
#define UMODE_I 0x8000000 /* umode +I - invisible oper (masked) */
#define UMODE_S 0x10000000 /* umode +S - User is using SSL */
+#define UMODE_N 0x20000000 /* umode +N - Network Administrator */
/* for sendto_ops_lev */
* that mode will be 'silent.'
*/
-#define SEND_UMODES (UMODE_a|UMODE_i|UMODE_o|UMODE_r|UMODE_A|UMODE_I|UMODE_R|UMODE_S)
+#define SEND_UMODES (UMODE_N|UMODE_a|UMODE_i|UMODE_o|UMODE_r|UMODE_A|UMODE_I|UMODE_R|UMODE_S)
#define ALL_UMODES (SEND_UMODES|UMODE_b|UMODE_c|UMODE_d|UMODE_e|UMODE_f|\
UMODE_g|UMODE_h|UMODE_j|UMODE_k|UMODE_m|UMODE_n|UMODE_s|\
UMODE_w|UMODE_y|UMODE_F|UMODE_K|UMODE_O)
#define ClearDNS(x) ((x)->flags &= ~FLAGS_DOINGDNS)
#define ClearAuth(x) ((x)->flags &= ~FLAGS_AUTH)
+#define IsNAdmin(x) ((x)->umode & UMODE_N)
+#define SetNAdmin(x) ((x)->umode |= UMODE_N)
+#define ClearNAdmin(x) ((x)->umode &= ~UMODE_N)
+
/* Oper flags */
/* defined operator access levels */
#define OFLAG_UMODEd 0x00400000 /* Oper can set umode +d : debug */
#define OFLAG_UMODEb 0x00800000 /* Oper can set umode +b : chatops */
#define OFLAG_UMODEF 0x01000000 /* Oper can set umode +F : no flood throttling */
+#define OFLAG_NADMIN 0x02000000 /* Network Admin */
#define OFLAG_LOCAL (OFLAG_REHASH|OFLAG_HELPOP|OFLAG_GLOBOP|OFLAG_WALLOP|\
OFLAG_LOCOP|OFLAG_LROUTE|OFLAG_LKILL|OFLAG_KLINE|\
OFLAG_UNKLINE|OFLAG_LNOTICE|OFLAG_UMODEc|OFLAG_UMODEf|OFLAG_UMODEd|\
#define OPClearZLine(x) ((x)->oflag &= ~OFLAG_ZLINE)
#define OPClearUModeF(x) ((x)->oflag &= ~OFLAG_UMODEF)
+#define OPIsNAdmin(x) ((x)->oflag & OFLAG_NADMIN)
+#define OPClearNAdmin(x) ((x)->oflag &= ~OFLAG_NADMIN)
+
/* defined debugging levels */
#define DEBUG_FATAL 0
#define DEBUG_ERROR 1 /* report_error() and other errors that are found */
OFLAG_GNOTICE, 'N',
OFLAG_ADMIN, 'A',
OFLAG_SADMIN, 'a',
+ OFLAG_NADMIN, 'Z',
OFLAG_UMODEc, 'u',
OFLAG_UMODEf, 'f',
OFLAG_UMODEF, 'F',
buf[0] = '\0';
if (IsAnOper(acptr))
- strcat(buf, "an IRC Operator");
+ strcat(buf, "an \2IRC Operator\2");
if (IsAdmin(acptr))
- strcat(buf, " - Server Administrator");
+ strcat(buf, " - \2Server Administrator\2");
else if (IsSAdmin(acptr))
- strcat(buf, " - Services Administrator");
+ strcat(buf, " - \2Services Administrator\2");
+ else if (IsNAdmin(acptr))
+ strcat(buf, " - \2Network Administrator\2");
+
if (buf[0])
sendto_one(sptr, rpl_str(RPL_WHOISOPERATOR), me.name, parv[0],
name, buf);
{
if (IsAdmin(sptr) && !OPIsAdmin(sptr)) ClearAdmin(sptr);
if (IsSAdmin(sptr) && !OPIsSAdmin(sptr)) ClearSAdmin(sptr);
+ if (IsNAdmin(sptr) && !OPIsNAdmin(sptr)) ClearNAdmin(sptr);
if (IsUmodef(sptr) && !OPCanUModef(sptr)) ClearUmodef(sptr);
if (IsUmodec(sptr) && !OPCanUModec(sptr)) ClearUmodec(sptr);
if (IsUmodej(sptr) && !OPCanUModec(sptr)) ClearUmodej(sptr);