unrealircd

- supernets unrealircd source & configuration
git clone git://git.acid.vegas/unrealircd.git
Log | Files | Refs | Archive | README | LICENSE

commit 973e4061c0387c96feb489e3af63affead29fcfa
parent 5bef6ef7a6e2d6d8cb014a7e48e8211477cd50b2
Author: acidvegas <acid.vegas@acid.vegas>
Date: Sat, 27 May 2023 01:03:48 -0400

Added certbot support

Diffstat:
Mdoc/conf/except.conf | 19++++++++++++++++---
Mdoc/conf/unrealircd.link.conf | 13+++++++++++--
Mdoc/conf/unrealircd.remote.conf | 2--
Minclude/numeric.h | 176+++++++++++++++++++++++++++++++++++--------------------------------------------

4 files changed, 105 insertions(+), 105 deletions(-)

diff --git a/doc/conf/except.conf b/doc/conf/except.conf
@@ -1,3 +1,9 @@
+# SuperNETs Links / Foenum
+except ban {
+	mask *@127.0.0.1;
+	type { kline; gline; zline; gzline; shun; blacklist; }
+}
+
 # IRCCloud
 except ban { 
 	mask *@5.254.36.56/29;
@@ -5,6 +11,7 @@ except ban {
 	mask *@2a03:5180:f::/62;
 	mask *@2a03:5180:f:4::/63;
 	mask *@2a03:5180:f:6::/64;
+	type { kline; gline; zline; gzline; shun; blacklist; }
 }
 
 # KiwiIRC
@@ -13,6 +20,7 @@ except ban {
 	mask *@107.161.19.109;
 	mask *@109.169.31.4;
 	mask *@109.169.31.13; # KiwiIRC Verify Bot (out.kiwiirc.com)
+	type { kline; gline; zline; gzline; shun; blacklist; }
 }
 
 # Mibbit
@@ -23,8 +31,12 @@ except ban {
 	mask *@109.169.29.95;                  # ircip4.mibbit.com
 	mask *@97.107.138.109;                 # bot.search.mibbit.com
 	mask *@2600:3c03::f03c:91ff:fe96:c1fa; # bot.search.mibbit.com
+	type { kline; gline; zline; gzline; shun; blacklist; }
 }
 
-# Other
-except ban { mask *@85.25.10.40; }  # anaconda.netsplit.de
-except ban { mask *@149.56.47.33; } # stats-grabber.ircdocs.horse
+# Scanners
+except ban {
+	mask *@85.25.10.40;  # anaconda.netsplit.de
+	mask *@149.56.47.33; # stats-grabber.ircdocs.horse
+	type { kline; gline; zline; gzline; shun; blacklist; }
+}
+\ No newline at end of file
diff --git a/doc/conf/unrealircd.link.conf b/doc/conf/unrealircd.link.conf
@@ -5,4 +5,13 @@ include "https://USERNAME:PASSWORD@HOSTNAME:PORT/modules.conf";
 include "https://USERNAME:PASSWORD@HOSTNAME:PORT/opers.conf";
 include "https://USERNAME:PASSWORD@HOSTNAME:PORT/snomasks.conf";
 include "https://USERNAME:PASSWORD@HOSTNAME:PORT/spamfilter.conf";
-me { name "example.supernets.org"; info "SuperNETS IRC Network"; sid XXX; }
-\ No newline at end of file
+me { name "example.supernets.org"; info "SuperNETS IRC Network"; sid XXX; }
+listen {
+	ip *;
+	port 6697;
+	options { clientsonly; tls; }
+	tls-options {
+		certificate "/etc/letsencrypt/live/irc.supernets.org/fullchain.pem";
+		key         "/etc/letsencrypt/live/irc.supernets.org/privkey.pem";
+	}
+}
+\ No newline at end of file
diff --git a/doc/conf/unrealircd.remote.conf b/doc/conf/unrealircd.remote.conf
@@ -26,10 +26,8 @@ allow { mask *;         class clients; maxperip 2;  global-maxperip 2;  }
 allow { mask 127.0.0.1; class clients; maxperip 10; global-maxperip 10; }
 
 listen { ip *; port 6667;      options { clientsonly;      } }
-listen { ip *; port 6697;      options { clientsonly; tls; } }
 listen { ip *; port REDACTED;  options { serversonly; tls; } }
 
-deny channel { channel "#dev";      reason "This channel has moved to #superbowl"; redirect "#superbowl"; }
 deny channel { channel "#help";     reason "This channel has moved to #superbowl"; redirect "#superbowl"; }
 deny channel { channel "#mensa";    reason "This channel has been closed";         redirect "#superbowl"; }
 deny channel { channel "#pumpcoin"; reason "This channel has moved to #exchange";  redirect "#exchange";  }
diff --git a/include/numeric.h b/include/numeric.h
@@ -29,16 +29,13 @@
  * from another server then it is remapped to 100-199.
  */
 
-#define	RPL_WELCOME          001
-#define	RPL_YOURHOST         002
-#define	RPL_CREATED          003
-#define	RPL_MYINFO           004
-#define RPL_ISUPPORT	     005
-
-#define RPL_REDIR	     10
-
-#define RPL_MAPUSERS	     18
-
+#define	RPL_WELCOME        001
+#define	RPL_YOURHOST       002
+#define	RPL_CREATED        003
+#define	RPL_MYINFO         004
+#define RPL_ISUPPORT	   005
+#define RPL_REDIR	       10
+#define RPL_MAPUSERS	   18
 #define RPL_REMOTEISUPPORT 105
 
 /*
@@ -53,14 +50,11 @@
 #define ERR_WASNOSUCHNICK    406
 #define ERR_TOOMANYTARGETS   407
 #define	ERR_NOORIGIN         409
-
 #define ERR_INVALIDCAPCMD    410
-
 #define ERR_NORECIPIENT      411
 #define ERR_NOTEXTTOSEND     412
 #define ERR_TOOMANYMATCHES   416
 #define ERR_INPUTTOOLONG     417
-
 #define ERR_UNKNOWNCOMMAND   421
 #define	ERR_NOMOTD           422
 #define	ERR_NOADMININFO      423
@@ -74,16 +68,12 @@
 #define ERR_NCHANGETOOFAST   438
 #define ERR_TARGETTOOFAST    439
 #define ERR_SERVICESDOWN     440
-
 #define ERR_USERNOTINCHANNEL 441
 #define ERR_NOTONCHANNEL     442
 #define	ERR_USERONCHANNEL    443
 #define ERR_NONICKCHANGE     447
 #define ERR_FORBIDDENCHANNEL 448
-
-
 #define ERR_NOTREGISTERED    451
-
 #define ERR_NOTFORHALFOPS	 460
 #define ERR_NEEDMOREPARAMS   461
 #define ERR_ALREADYREGISTRED 462
@@ -99,32 +89,23 @@
 #define ERR_NEEDREGGEDNICK   477
 #define ERR_BANLISTFULL      478
 #define ERR_CANNOTKNOCK		 480
-
 #define ERR_NOPRIVILEGES     481
 #define ERR_CHANOPRIVSNEEDED 482
 #define ERR_KILLDENY	     485
-
-#define ERR_NOTFORUSERS	    487
-
+#define ERR_NOTFORUSERS	     487
 #define ERR_SECUREONLYCHAN   489
 #define ERR_NOOPERHOST       491
-
 #define ERR_CHANOWNPRIVNEEDED 499
-
 #define ERR_TOOMANYJOINS     500
 #define ERR_UMODEUNKNOWNFLAG 501
 #define ERR_USERSDONTMATCH   502
-
 #define ERR_SILELISTFULL     511
 #define ERR_TOOMANYWATCH     512
-
 #define ERR_TOOMANYDCC       514
-
 #define ERR_DISABLED         517
 #define ERR_NOINVITE		 518
 #define ERR_OPERONLY		 520
 #define ERR_LISTSYNTAX       521
-
 #define ERR_CANTSENDTOUSER	531
 /*
  * Numberic replies from server commands.
@@ -347,98 +328,97 @@
 
 /* Numeric texts */
 
-#define STR_RPL_WELCOME			/* 001 */	":Welcome to the %s IRC Network %s!%s@%s <- (FAGGOT)"
-//#define STR_RPL_YOURHOST		/* 002 */	":Your host is %s, running version %s"
-#define STR_RPL_YOURHOST		/* 002 */	":Your host is hidden, running version UnrealIRCd-6.6.6"
-#define STR_RPL_CREATED			/* 003 */	":This server was created %s"
-#define STR_RPL_MYINFO			/* 004 */	"%s %s %s %s"
-#define STR_RPL_ISUPPORT		/* 005 */	"%s :are supported by this server"
-//#define STR_RPL_MAP			/* 006 */	":%s%s %s | Users: %*ld (%*.2f%%)%s"
-#define STR_RPL_MAP				/* 006 */	":irc.supernets.org | Users: 1000000 (100%) [000]"
-#define STR_RPL_MAPEND			/* 007 */	":End of /MAP"
-#define STR_RPL_SNOMASK			/* 008 */	"+%s :Server notice mask"
-#define STR_RPL_REDIR			/* 010 */	"%s %d :Please use this Server/Port instead"
-//#define STR_RPL_MAPUSERS		/* 018 */	":%d server%s and %d user%s, average %.2f users per server"
-#define STR_RPL_MAPUSERS		/* 018 */	":5000 servers and 1000000 users, average 1000000 users per server"
+#define STR_RPL_WELCOME				/* 001 */	":Welcome to the %s IRC Network %s!%s@%s <- (FAGGOT)"
+//#define STR_RPL_YOURHOST			/* 002 */	":Your host is %s, running version %s"
+#define STR_RPL_YOURHOST			/* 002 */	":Your host is hidden, running version DangerousIRCd-6.6.6"
+//#define STR_RPL_CREATED			/* 003 */	":This server was created %s"
+#define STR_RPL_CREATED				/* 003 */	":This server was created Fri Apr 1 1990 at 04:20:00 UTC"
+#define STR_RPL_MYINFO				/* 004 */	"%s %s %s %s"
+#define STR_RPL_ISUPPORT			/* 005 */	"%s :are supported by this server"
+#define STR_RPL_MAP				/* 006 */	":%s%s %s | Users: %*ld (%*.2f%%)%s"
+#define STR_RPL_MAPEND				/* 007 */	":End of /MAP"
+#define STR_RPL_SNOMASK				/* 008 */	"+%s :Server notice mask"
+#define STR_RPL_REDIR				/* 010 */	"%s %d :Please use this Server/Port instead"
+//#define STR_RPL_MAPUSERS			/* 018 */	":%d server%s and %d user%s, average %.2f users per server"
+#define STR_RPL_MAPUSERS			/* 018 */	":5000 servers and 1000000 users, average 1000000 users per server"
 #define STR_RPL_REMOTEISUPPORT		/* 105 */	"%s :are supported by this server"
-#define STR_RPL_TRACELINK		/* 200 */	"Link %s%s %s %s"
+#define STR_RPL_TRACELINK			/* 200 */	"Link %s%s %s %s"
 #define STR_RPL_TRACECONNECTING		/* 201 */	"Attempt %s %s"
 #define STR_RPL_TRACEHANDSHAKE		/* 202 */	"Handshaking %s %s"
 #define STR_RPL_TRACEUNKNOWN		/* 203 */	"???? %s %s"
 #define STR_RPL_TRACEOPERATOR		/* 204 */	"Operator %s %s [%s] %lld"
-#define STR_RPL_TRACEUSER		/* 205 */	"User %s %s [%s] %lld"
-#define STR_RPL_TRACESERVER		/* 206 */	"Server %s %dS %dC %s %s!%s@%s %lld"
+#define STR_RPL_TRACEUSER			/* 205 */	"User %s %s [%s] %lld"
+#define STR_RPL_TRACESERVER			/* 206 */	"Server %s %dS %dC %s %s!%s@%s %lld"
 #define STR_RPL_TRACENEWTYPE		/* 208 */	"%s 0 %s"
-#define STR_RPL_TRACECLASS		/* 209 */	"Class %s %d"
-#define STR_RPL_STATSHELP		/* 210 */	":%s"
+#define STR_RPL_TRACECLASS			/* 209 */	"Class %s %d"
+#define STR_RPL_STATSHELP			/* 210 */	":%s"
 #define STR_RPL_STATSCOMMANDS		/* 212 */	"%s %u %lu"
-#define STR_RPL_STATSCLINE		/* 213 */	"%c %s * %s %d %d %s"
-#define STR_RPL_STATSILINE		/* 215 */	"I %s %s %d %d %s %s %d"
-#define STR_RPL_STATSQLINE		/* 217 */	"%c %s %lld %lld %s :%s"
-#define STR_RPL_STATSYLINE		/* 218 */	"Y %s %d %d %d %d %d"
-#define STR_RPL_ENDOFSTATS		/* 219 */	"%c :End of /STATS report"
-#define STR_RPL_UMODEIS			/* 221 */	"%s"
-#define STR_RPL_STATSGLINE		/* 223 */	"%c %s %lld %lld %s :%s"
-#define STR_RPL_STATSTLINE		/* 224 */	"T %s %s %s"
-#define STR_RPL_STATSNLINE		/* 226 */	"n %s %s"
-#define STR_RPL_STATSVLINE		/* 227 */	"v %s %s %s"
-#define STR_RPL_STATSBANVER		/* 228 */	"%s %s"
-#define STR_RPL_STATSSPAMF		/* 229 */	"%c %s %s %s %lld %lld %lld %s %s :%s"
+#define STR_RPL_STATSCLINE			/* 213 */	"%c %s * %s %d %d %s"
+#define STR_RPL_STATSILINE			/* 215 */	"I %s %s %d %d %s %s %d"
+#define STR_RPL_STATSQLINE			/* 217 */	"%c %s %lld %lld %s :%s"
+#define STR_RPL_STATSYLINE			/* 218 */	"Y %s %d %d %d %d %d"
+#define STR_RPL_ENDOFSTATS			/* 219 */	"%c :End of /STATS report"
+#define STR_RPL_UMODEIS				/* 221 */	"%s"
+#define STR_RPL_STATSGLINE			/* 223 */	"%c %s %lld %lld %s :%s"
+#define STR_RPL_STATSTLINE			/* 224 */	"T %s %s %s"
+#define STR_RPL_STATSNLINE			/* 226 */	"n %s %s"
+#define STR_RPL_STATSVLINE			/* 227 */	"v %s %s %s"
+#define STR_RPL_STATSBANVER			/* 228 */	"%s %s"
+#define STR_RPL_STATSSPAMF			/* 229 */	"%c %s %s %s %lld %lld %lld %s %s :%s"
 #define STR_RPL_STATSEXCEPTTKL		/* 230 */	"%s %s %lld %lld %s :%s"
-#define STR_RPL_RULES			/* 232 */	":- %s"
-#define STR_RPL_STATSLLINE		/* 241 */	"%c %s * %s %d %d"
-#define STR_RPL_STATSUPTIME		/* 242 */	":Server Up %lld days, %lld:%02lld:%02lld"
-#define STR_RPL_STATSOLINE		/* 243 */	"%c %s * %s %s %s"
-#define STR_RPL_STATSHLINE		/* 244 */	"%c %s * %s %d %d"
-#define STR_RPL_STATSXLINE		/* 247 */	"X %s %d"
-#define STR_RPL_STATSULINE		/* 248 */	"U %s"
-#define STR_RPL_STATSDEBUG		/* 249 */	":%s"
-//#define STR_RPL_STATSCONN		/* 250 */	":Highest connection count: %d (%d clients)"
-#define STR_RPL_STATSCONN		/* 250 */	":Highest connection count: 1000000 (1000000 clients)"
+#define STR_RPL_RULES				/* 232 */	":- %s"
+#define STR_RPL_STATSLLINE			/* 241 */	"%c %s * %s %d %d"
+#define STR_RPL_STATSUPTIME			/* 242 */	":Server Up %lld days, %lld:%02lld:%02lld"
+#define STR_RPL_STATSOLINE			/* 243 */	"%c %s * %s %s %s"
+#define STR_RPL_STATSHLINE			/* 244 */	"%c %s * %s %d %d"
+#define STR_RPL_STATSXLINE			/* 247 */	"X %s %d"
+#define STR_RPL_STATSULINE			/* 248 */	"U %s"
+#define STR_RPL_STATSDEBUG			/* 249 */	":%s"
+//#define STR_RPL_STATSCONN			/* 250 */	":Highest connection count: %d (%d clients)"
+#define STR_RPL_STATSCONN			/* 250 */	":Highest connection count: 1000000 (1000000 clients)"
 //#define STR_RPL_LUSERCLIENT		/* 251 */	":There are %d users and %d invisible on %d servers"
-#define STR_RPL_LUSERCLIENT		/* 251 */	":There are 1000000 users and 0 invisible on 5000 servers"
+#define STR_RPL_LUSERCLIENT			/* 251 */	":There are 1000000 users and 0 invisible on 5000 servers"
 //#define STR_RPL_LUSEROP			/* 252 */	"%d :operator(s) online"
-#define STR_RPL_LUSEROP			/* 252 */	"5000 :operator(s) online"
+#define STR_RPL_LUSEROP				/* 252 */	"5000 :operator(s) online"
 #define STR_RPL_LUSERUNKNOWN		/* 253 */	"%d :unknown connection(s)"
 //#define STR_RPL_LUSERCHANNELS		/* 254 */	"%d :channels formed"
 #define STR_RPL_LUSERCHANNELS		/* 254 */	"1000000 :channels formed"
 //#define STR_RPL_LUSERME			/* 255 */	":I have %d clients and %d servers"
-#define STR_RPL_LUSERME			/* 255 */	":I have 5000 clients and 5000 servers"
-#define STR_RPL_ADMINME			/* 256 */	":Administrative info about %s"
-#define STR_RPL_ADMINLOC1		/* 257 */	":%s"
-#define STR_RPL_ADMINLOC2		/* 258 */	":%s"
-#define STR_RPL_ADMINEMAIL		/* 259 */	":%s"
-#define STR_RPL_TRACELOG		/* 261 */	"File %s %d"
-#define STR_RPL_TRYAGAIN		/* 263 */	"%s :Flooding detected. Please wait a while and try again."
+#define STR_RPL_LUSERME				/* 255 */	":I have 5000 clients and 5000 servers"
+#define STR_RPL_ADMINME				/* 256 */	":Administrative info about %s"
+#define STR_RPL_ADMINLOC1			/* 257 */	":%s"
+#define STR_RPL_ADMINLOC2			/* 258 */	":%s"
+#define STR_RPL_ADMINEMAIL			/* 259 */	":%s"
+#define STR_RPL_TRACELOG			/* 261 */	"File %s %d"
+#define STR_RPL_TRYAGAIN			/* 263 */	"%s :Flooding detected. Please wait a while and try again."
 //#define STR_RPL_LOCALUSERS		/* 265 */	"%d %d :Current local users %d, max %d"
-#define STR_RPL_LOCALUSERS		/* 265 */	"1000000 1000000 :Current local users 1000000, max 1000000"
+#define STR_RPL_LOCALUSERS			/* 265 */	"1000000 1000000 :Current local users 1000000, max 1000000"
 //#define STR_RPL_GLOBALUSERS		/* 266 */	"%d %d :Current global users %d, max %d"
-#define STR_RPL_GLOBALUSERS		/* 266 */	"1000000 1000000 :Current global users 1000000, max 1000000"
-#define STR_RPL_SILELIST		/* 271 */	"%s"
+#define STR_RPL_GLOBALUSERS			/* 266 */	"1000000 1000000 :Current global users 1000000, max 1000000"
+#define STR_RPL_SILELIST			/* 271 */	"%s"
 #define STR_RPL_ENDOFSILELIST		/* 272 */	":End of Silence List"
-#define STR_RPL_STATSDLINE		/* 275 */	"%c %s %s"
-#define STR_RPL_WHOISCERTFP		/* 276 */	"%s :has client certificate fingerprint %s"
-#define STR_RPL_AWAY			/* 301 */	"%s :%s"
-#define STR_RPL_USERHOST		/* 302 */	":%s %s %s %s %s"
-#define STR_RPL_ISON			/* 303 */	":"
-#define STR_RPL_UNAWAY			/* 305 */	":You are no longer marked as being away"
-#define STR_RPL_NOWAWAY			/* 306 */	":You have been marked as being away"
+#define STR_RPL_STATSDLINE			/* 275 */	"%c %s %s"
+#define STR_RPL_WHOISCERTFP			/* 276 */	"%s :has client certificate fingerprint %s"
+#define STR_RPL_AWAY				/* 301 */	"%s :%s"
+#define STR_RPL_USERHOST			/* 302 */	":%s %s %s %s %s"
+#define STR_RPL_ISON				/* 303 */	":"
+#define STR_RPL_UNAWAY				/* 305 */	":You are no longer marked as being away"
+#define STR_RPL_NOWAWAY				/* 306 */	":You have been marked as being away"
 #define STR_RPL_WHOISREGNICK		/* 307 */	"%s :is identified for this nick"
-#define STR_RPL_RULESSTART		/* 308 */	":- %s Server Rules - "
-#define STR_RPL_ENDOFRULES		/* 309 */	":End of RULES command."
-#define STR_RPL_WHOISUSER		/* 311 */	"%s %s %s * :%s"
-#define STR_RPL_WHOISSERVER		/* 312 */	"%s %s :%s"
+#define STR_RPL_RULESSTART			/* 308 */	":- %s Server Rules - "
+#define STR_RPL_ENDOFRULES			/* 309 */	":End of RULES command."
+#define STR_RPL_WHOISUSER			/* 311 */	"%s %s %s * :%s"
+#define STR_RPL_WHOISSERVER			/* 312 */	"%s %s :%s"
 #define STR_RPL_WHOISOPERATOR		/* 313 */	"%s :is %s"
-#define STR_RPL_WHOWASUSER		/* 314 */	"%s %s %s * :%s"
-#define STR_RPL_ENDOFWHO		/* 315 */	"%s :End of /WHO list."
-#define STR_RPL_WHOISIDLE		/* 317 */	"%s %lld %lld :seconds idle, signon time"
-#define STR_RPL_ENDOFWHOIS		/* 318 */	"%s :End of /WHOIS list."
+#define STR_RPL_WHOWASUSER			/* 314 */	"%s %s %s * :%s"
+#define STR_RPL_ENDOFWHO			/* 315 */	"%s :End of /WHO list."
+#define STR_RPL_WHOISIDLE			/* 317 */	"%s %lld %lld :seconds idle, signon time"
+#define STR_RPL_ENDOFWHOIS			/* 318 */	"%s :End of /WHOIS list."
 #define STR_RPL_WHOISCHANNELS		/* 319 */	"%s :%s"
 #define STR_RPL_WHOISSPECIAL		/* 320 */	"%s :%s"
-#define STR_RPL_LISTSTART		/* 321 */	"Channel :Users  Name"
-#define STR_RPL_LIST			/* 322 */	"%s %d :%s %s"
-//#define STR_RPL_LIST			/* 322 */	"%s 5000 :%s %s"
-#define STR_RPL_LISTEND			/* 323 */	":End of /LIST"
+#define STR_RPL_LISTSTART			/* 321 */	"Channel :Users  Name"
+#define STR_RPL_LIST				/* 322 */	"%s %d :%s %s"
+#define STR_RPL_LISTEND				/* 323 */	":End of /LIST"
 #define STR_RPL_CHANNELMODEIS		/* 324 */	"%s %s %s"
 #define STR_RPL_CREATIONTIME		/* 329 */	"%s %lld"
 #define STR_RPL_WHOISLOGGEDIN		/* 330 */	"%s %s :is logged in as"