2 # Parent 4ebe7df0737dea7332344504aa2acf9fb8462374
4 diff -r 4ebe7df0737d doc/quakenet.conf
5 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6 +++ b/doc/quakenet.conf Fri Jul 26 19:46:43 2013 +0100
9 +# Q U A K E N E T I R C S E R V E R
10 +# S E R V E R C O N F I G F I L E
12 +# -----------------------------------------------------------------------------
13 +# v.12 config file, last edited 08.12.2007/paul
14 +# -----------------------------------------------------------------------------
17 + name = "@@@.@@@.quakenet.org";
18 + description = "@@@";
28 + Location = "QuakeNet IRC server";
32 +# -----------------------------------------------------------------------------
33 +# Classes (aka Ylines)
34 +# -----------------------------------------------------------------------------
35 +# name = "<class>"; pingfreq = time; connectfreq = time;
36 +# maxlinks = number 0 or 1; sendq = size; usermode = "+i";
41 + pingfreq = 3 minutes;
42 + connectfreq = 5 minutes;
47 +# All the leaf servers you hub for.
49 + name = "LeafServer";
50 + pingfreq = 3 minutes;
51 + connectfreq = 5 minutes;
56 +# Client class (i.e. everyone)
59 + pingfreq = 3 minutes;
65 +# VIP user class (aka locals, opers etc..)
68 + pingfreq = 3 minutes;
74 +# Oper class (global)
77 + pingfreq = 3 minutes;
87 + freeform = yes; # change this if you want to disable freeform sethost for your opers
90 +# Oper class (global)
93 + pingfreq = 3 minutes;
99 +# -----------------------------------------------------------------------------
100 +# Client lines (aka Ilines)
101 +# -----------------------------------------------------------------------------
102 +# username = "ident"; host = "host"; ip = "127.0.0.0/8";
103 +# password = "password"; class = "classname"; maxlinks = 3;
105 +# Fall back entries (we let everyone in)
106 +Client { class = "Users"; ip = "*@*"; };
107 +Client { class = "Users"; host = "*@*"; };
109 +# Providers that we've decided to restrict due to abuse mainly.
110 +Client { class = "Users"; maxlinks = 2; host = "*@*.t-dialin.net"; };
111 +Client { class = "Users"; maxlinks = 1; host = "*@*.proxad.net"; };
112 +Client { class = "Users"; maxlinks = 1; host = "*@*.bezeqint.net"; };
113 +Client { class = "Users"; maxlinks = 1; host = "*@*.ono.com"; };
114 +Client { class = "Users"; maxlinks = 1; host = "*@*.wanadoo.nl"; };
115 +Client { class = "Users"; maxlinks = 2; host = "*@*.wanadoo.fr"; };
116 +Client { class = "Users"; maxlinks = 1; host = "*@*.rima-tde.net"; };
118 +# -----------------------------------------------------------------------------
119 +# UWorld/Jupe (aka ulines)
120 +# -----------------------------------------------------------------------------
124 + name = "CServe.quakenet.org";
125 + name = "operserv.quakenet.org";
126 + name = "operserv2.quakenet.org";
127 + name = "proxyscan.quakenet.org";
128 + name = "services4.uk.quakenet.org";
129 + name = "services.no.quakenet.org";
130 + name = "services.de.quakenet.org";
131 + name = "services.se.quakenet.org";
132 + name = "services.uk.quakenet.org";
136 + nick = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,{,|,},~,-,_,`";
137 + nick = "UWorld,NickServ,ChanServ,telnet,backdoor,qauth,auth,admin,support,operserv";
139 + nick = "NO,noperserv";
140 + nick = "N2,N3,N4,N5,N6,N7,N8,N9";
143 +# -----------------------------------------------------------------------------
145 +# -----------------------------------------------------------------------------
146 +# host = "user@host"; reason = "The reason the user will see";
147 +# realname = "realnametoban"; file = "path/to/file/with/reason/to/show";
150 + username = "*root";
151 + reason = "Do not IRC as root";
154 +# -----------------------------------------------------------------------------
155 +# Connect (aka clines)
156 +# -----------------------------------------------------------------------------
157 +# name = "servername"; host = "hostnameORip"; vhost = "localIP";
158 +# password = "passwd"; port = portno; class = "classname";
159 +# maxhops = 2; hub = "*.eu.undernet.org";
160 +# autoconnect = no; (default = yes!)
162 +# Our primary uplink.
167 + name = "hub.@@@.quakenet.org";
168 + host = "@@@.@@@.@@@.@@@";
176 +# Our secondary uplink.
179 + name = "hub.@@@.quakenet.org";
180 + host = "@@@.@@@.@@@.@@@";
188 +# Our tertiary uplink.
192 + name = "hub.@@@.quakenet.org";
193 + host = "@@@.@@@.@@@.@@@";
203 +# -----------------------------------------------------------------------------
204 +# CRule (aka dlines)
205 +# -----------------------------------------------------------------------------
206 +# server = "servermask"; rule = "connectrule";
207 +# Setting all to yes makes the rule always apply. Otherwise it only
208 +# applies to autoconnects.
210 +# The following block is recommended for leaf servers:
211 +CRULE { server = "*"; rule = "directcon(*)"; };
213 +# -----------------------------------------------------------------------------
214 +# spoofhosts (aka slines)
215 +# -----------------------------------------------------------------------------
216 +# username = "ident" host = "host" password = "passwd"
219 +#Spoofhost "testsline.quakenet.org" { password = "secret"; };
220 +# slines (without pw) thats how to define them when having freeform turned off.
221 +#Spoofhost "testsline2.quakenet.org" { username = "x"; host = "nohost"; };
223 +# -----------------------------------------------------------------------------
224 +# Operator (aka Olines)
225 +# -----------------------------------------------------------------------------
245 +# -----------------------------------------------------------------------------
246 +# Quarantine (aka qlines)
247 +# -----------------------------------------------------------------------------
249 +# "#shells" = "Thou shalt not support the h4><0rz";
250 +# "&kiddies" = "They can take care of themselves";
253 +# -----------------------------------------------------------------------------
255 +# -----------------------------------------------------------------------------
256 +# name = "X"; nick = "X@channels.bla" ; prepend = "LOGIN ";
257 +#Pseudo "CHANSERV" {
259 +# nick = "X@channels.undernet.org";
264 + nick = "q@cserve.quakenet.org";
267 +# -----------------------------------------------------------------------------
269 +# -----------------------------------------------------------------------------
270 +# port = number; mask = "ipmask" vhost = "virtualhostinterfaceip"
271 +# server = yes; hidden = yes
272 +# mask only contains IP addresses or '*'
273 +# hidden, hides a port from stats
283 + vhost = "@@@" 6660;
284 + vhost = "@@@" 6661;
285 + vhost = "@@@" 6662;
286 + vhost = "@@@" 6663;
287 + vhost = "@@@" 6664;
288 + vhost = "@@@" 6665;
289 + vhost = "@@@" 6666;
290 + vhost = "@@@" 6667;
291 + vhost = "@@@" 6668;
292 + vhost = "@@@" 6669;
295 +# -----------------------------------------------------------------------------
296 +# Feature (aka F:lines)
297 +# -----------------------------------------------------------------------------
298 +# We better doublecheck what we set here!
301 + "LOG" = "SYSTEM" "FILE" "ircd.log";
302 + "LOG" = "CONFIG" "FILE" "conf.log";
303 + "LOG" = "SYSTEM" "LEVEL" "CRIT";
304 + "DOMAINNAME"="quakenet.org";
305 + "RELIABLE_CLOCK"="FALSE";
306 + "BUFFERPOOL"="96000000";
307 +# "HAS_FERGUSON_FLUSHER"="FALSE";
308 +# "CLIENT_FLOOD"="1024";
309 +# "SERVER_PORT"="4400";
310 + "NODEFAULTMOTD"="FALSE";
311 +# "MOTD_BANNER"="TRUE";
312 +# "KILL_IPMISMATCH"="FALSE";
313 +# "IDLE_FROM_MSG"="TRUE";
315 +# "WALLOPS_OPER_ONLY"="FALSE";
317 + "RANDOM_SEED"="@@@@@@@@@@@@@@@@";
318 +# "DEFAULT_LIST_PARAM"="TRUE";
319 +# "NICKNAMEHISTORYLENGTH"="800";
320 + "NETWORK"="QuakeNet";
321 + "HOST_HIDING"="TRUE";
322 + "SETHOST" = "TRUE";
323 + "SETHOST_USER" = "TRUE";
324 + "SETHOST_AUTO" = "TRUE";
325 + "HIDDEN_HOST"="users.quakenet.org";
326 + "HIDDEN_IP"="127.0.0.1";
327 + "URLREG"="http://www.quakenet.org/getauthed";
328 +# "KILLCHASETIMELIMIT"="30";
329 + "MAXCHANNELSPERUSER"="20";
334 +# "HANGONGOODLINK"="300";
335 +# "HANGONRETRYDELAY" = "10";
336 +# "CONNECTTIMEOUT" = "90";
337 +# "MAXIMUM_LINKS" = "1";
338 +# "PINGFREQUENCY" = "120";
339 +# "CONNECTFREQUENCY" = "600";
340 +# "DEFAULTMAXSENDQLENGTH" = "40000";
341 +# "GLINEMAXUSERCOUNT" = "20";
342 +# "MPATH" = "ircd.motd";
343 +# "RPATH" = "remote.motd";
344 +# "PPATH" = "ircd.pid";
345 +# "TOS_SERVER" = "0x08";
346 +# "TOS_CLIENT" = "0x08";
347 +# "POLLS_PER_LOOP" = "200";
348 +# "IRCD_RES_TIMEOUT" = "4";
349 +# "IRCD_RES_RETRIES" = "2";
350 +# "AUTH_TIMEOUT" = "9";
351 +# "IPCHECK_CLONE_LIMIT" = "4";
352 +# "IPCHECK_CLONE_PERIOD" = "40";
353 +# "IPCHECK_CLONE_DELAY" = "600";
354 +# "CHANNELLEN" = "200";
355 + "CONFIG_OPERCMDS" = "TRUE";
356 + "OPLEVELS" = "FALSE";
357 + "ZANNELS" = "FALSE";
358 +# "LOCAL_CHANNELS" = "TRUE";
359 +# "ANNOUNCE_INVITES" = "FALSE";
360 + "HIS_SERVERNAME" = "*.quakenet.org";
361 + "HIS_SERVERINFO" = "QuakeNet IRC Server";
362 + "HIS_URLSERVERS" = "http://www.quakenet.org/serverlist.php";
365 diff -r 4ebe7df0737d doc/readme.snircd
366 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
367 +++ b/doc/readme.snircd Fri Jul 26 19:46:43 2013 +0100
369 +- SNIRCD ----------------------------------------------------------------------
371 +Snircd is a collection of modifications to the Undernet IRC server known as
372 +ircu. This version is based on version 2.10.12 released by Undernet's
373 +Coder Committee. The original code can be obtained from their webpage,
374 +http://coder-com.undernet.org and the latest release of Snircd can be obtained
375 +from QuakeNet's Development Team webpage, https://www.quakenet.org/development/
377 +- version history ------------------------------------------------------------
380 +v1.3.4a, HG, Fix CVE-2008-1501
381 +v1.3.4, HG, Fix burst bug, add s,I flags to check, fix sethost bug
382 +v1.3.3, HG, Fix bug in ban handling, spoofhost handling and names
383 +v1.3.2, HG, not released
384 +v1.3.1, HG, not released, upstream patches to u2.10.12.10, warn user if input line is too long,
385 + add additional PRIVS
386 +v1.3.0, SVN, upstream patches/migration to u2.10.12.10
387 + Port of 'asuka' extensions for ircu 2.10.11 to 2.10.12
388 + Development moved to SVN from CVS
389 + chanmode +M, chanmode +T, ACcount token changes, Oper ID,
390 + /check updated, other fixes/updates
391 +v1.2.3, SVN, bug fixes, not released
392 +v1.2.2, SVN, not released
393 +v1.2.1, CVS, bug fixes
395 +v1.2, CVS, upstream patches for u2.10.11.07, bug fixes, added CIDR support
396 + for O:lines, I:lines and bans, added AUTOCHANMODES, added ability
397 + to disable /USERIP, added timestamped invites, added new /CHECK
398 + flags, improved behaviour of chanmodes +c/+N and usermode +R,
399 + enhanced /check server output, added more friendly error messages
400 + when trying to join channels
402 +v1.1, CVS, upstream patches for u2.10.11.06, bug fixes, added HIS_USERGLINE,
403 + added AUTOINVISIBLE, added ability to restart resolver (never released)
404 +v1.0.6, CVS, bug fixes, chanmode +N, added USER_HIDECHANS
406 +v1.0.5, CVS, bug fixes
408 +v1.0.4, CVS, bug fixes
410 +v1.0.3, CVS, bug fixes
412 +v1.0.2, CVS, bug fixes, dropped dlmalloc
414 +v1.0.1, CVS, minor conf/code fixes
416 +v1.0, CVS, 1.0 release, misc. fixes
418 +v0.7.0, CVS, sethost, chanmode +u, misc. fixes
420 +v0.5.1.4, CVS, upstream patches for u2.10.11.04, +R fix
421 +v0.5.1.3, CVS, gline_find fix
422 +v0.5.1.2, CVS, upstream patches
423 +v0.5.1.1, CVS, upstream patches
424 +v0.5.1.0, CVS, added user mode +R
425 +v0.5.0.1, CVS, upstream patches
426 +v0.5.0.0, CVS, updated patches for u2.10.11.03.(dev).5ish, added showing of
427 + full details of /stats C|H to opers
428 +v0.4.7.1, CVS, revert default NETWORK to 'UnderNet'
429 +v0.4.7.0, CVS, removing netrideprot diff, updated patches for u2.10.11.02
431 +v0.4.6.0, CVS, badchans now allow wildcards, 'auditorium' mode added
432 +v0.4.5.6, CVS, bugfixes in kX, add +I
433 +v0.4.5.5, CVS, cC support and crunch warnings in check
434 +v0.4.5.4, CVS, small bugfix in kX
435 +v0.4.5.3, CVS, nick glines check on /nick
436 +v0.4.5.2, CVS, updated patches for u2.10.11.01
437 +v0.4.5.1, CVS, added beta NICK Glines
440 +- contributors ---------------------------------------------------------------
442 +Current Development Team:
443 + Gunnar Beutner <shroud@quakenet.org>
444 + Chris Porter <slug@quakenet.org>
445 + Paul Richards <paul@quakenet.org>
446 + Wiebe <wiebe@quakenet.org>
447 +Developers/Contributors:
448 + Joe Cise <pilsner@quakenet.org>
449 + Rasmus Have <bigfoot@quakenet.org>
450 + Gregory Bristol <qoreq@quakenet.org>
451 + Darren Smith <data@quakenet.org>
452 + David Mansell <splidge@quakenet.org>
453 + Fredrik Söderblom <froo@quakenet.org>
454 + Iain Sheppard <magpie@quakenet.org>
455 + Mike Cartwright <mike@quakenet.org>
456 + Cruicky <cruicky@quakenet.org
457 +Thanks To: Reed Loden <reed@reedloden.com>
458 + Alex Badea <vampire@p16.pub.ro>
459 + Perry Lorier <isomer@coders.net>
460 + Kevin L. Mitchell <klmitch@mit.edu>
461 +Special Thanks To: Tero Nybacka <sivis@sivis.org>
462 + Darren Coleman <durzel@quakenet.org>
463 + For their contributions to Lain (http://dev-com.b2irc.net) and therefore
464 + the basis for most of the ideas in Asuka. Thanks Guys.
466 +- features ------------------------------------------------------------------
470 + - Join invite only (+i) channels
471 + - Join keyed (+k) channels
472 + - Join channels if banned
473 + - Join full channels
474 + - Override user mode +k
477 + Allows opers to set user mode +k, network service, which prohibits
478 + kicks, deops and kills.
481 + Allows opers to hide the channels they are in.
484 + Allows opers to hide their idle time.
487 + Allows users to only accept privmsg/notice/invite from authed users.
490 + Prohibits mIRC & ANSI colour codes as well as other control codes from
491 + being sent to a channel.
494 + Prohibits CTCPs from being sent to a channel.
497 + Prohibits channel notices from being sent to a channel.
499 + * Channel mode +D and +d
500 + 'Delayed join' mode, when set on a channel joins and parts for that
501 + channel are squelched. A user will be 'invisible' in the channel
502 + from other users until they speak, are opped/voiced or change the
503 + topic. When the +D mode is cleared, 'invisible' users will not be
504 + revealed, instead the +d mode will automatically be set by the ircd
505 + if invisible users remain in the channel. +d will be automatically
506 + removed when the last 'invisible' user either becomes visible or
507 + leaves the channel. It is possible to see the 'invisible' users
508 + on a channel by doing /NAMES -d.
511 + Hides your quit and part messages from channels with +u set. If a user
512 + is in any +u channel, then their quit message is removed.
515 + Disallows unauthed users to speak or change nick in a channel when they
516 + are not voiced or opped in a channel
519 + Blocks multi-target messages to a channel
522 + Allows opers to see information about a channel, user or server.
523 + Syntax: Check Channel: /check <#channel> [-i|-o|-u]
524 + Check Server: /check <server>
525 + Check User: /check <nick|hostmask|CIDR> [-c]
527 + Performing a /check on a server returns its status:
529 + ! awaiting burst acknowledgement
533 + * Sethost allows opers (and users w/ passwords) to set their hostname,
534 + also known as spoofing. Sethost is configured from the config file via
535 + S: lines and several F: lines. Sethost is done through the /sethost
536 + command or by setting user mode +h. Available Sethosts are visible by
537 + using the /stats s command.
538 + Syntax: Oper Sethost: /sethost <new ident> <new hostname>
539 + /mode <nick> +h <new ident>@<new hostname>
540 + User Sethost: /sethost <new hostname> <password>
541 + /mode <nick> +h <new hostname> <password>
543 + * Single letter nicks are protected for use by network services only.
545 + * Protection from net rider's joining +i/+k channels after a net.join.
547 + * Topics can by sent during bursts to keep them synced throughout a network.
549 + * Ability to Gline a nick, new format now nick!ident@host.
551 + * /stats C & H show full details for Opers.
553 + * Ability to restart the resolver via /rehash and /DNS r.
555 + * Ability for services to send BURST outside of net.burst.
557 +- configuration file options ------------------------------------------------
560 + Syntax: S:<spoof host>:<password>:<*.host.cc|a.b.c.*|CIDR>:<ident>
561 + Example: S:moo.fish.moo:elitepassword:host.example.com:user
563 + This adds the sethost 'moo.fish.moo' that can be activated by a user by using
564 + the password 'elitepassword' and will automatically be applied to anyone
565 + connecting from 'host.example.com' with the ident 'user'.
568 + Oper sethost for 'moo.fish.moo'
570 + User & Oper sethost for 'moo.fish.moo'
571 + S:moo.fish.moo:elitepassword::
572 + Oper sethost for 'moo.fish.moo' with auto on 'ident@*.example.com"
573 + S:moo.fish.moo::*.example.com:ident
579 + This enables the /sethost command and user mode +h for opers activating Sethosts.
585 + This enabled the /sethost command and user mode +h for users activating Sethosts
592 + This enables the automatic application of Sethosts on matching idents and hosts.
598 + This enables opers to set new hostnames that do not have a corresponding S: line
599 + in the configuration file, as long as the hostname supplied is reasonably valid.
600 + The usage if this is logged via SNOTICE.
606 + As per QuakeNet Security, this removes the /stats s from users.
612 + This selects whether topics are *sent* to other servers during a burst.
613 + Note that receiving topics from servers is always enabled.
619 + As per QuakeNet Security, this removes the reason for GLINE from quit messages.
625 + Sets the socket buffer for sending. Advanced feature, do not change unless you
626 + known what you are doing.
632 + Sets the socket buffer for recieving. Advanced feature, do not change unless you
633 + known what you are doing.
639 + This allows normal users to set the +n usermode (hide channels from whois/who),
640 + this is only recommended in special circumstances.
646 + This enables / disables the ability for users to use the /GLINE command for
647 + listing active glines. It's turned on by default, which is the opposite
648 + behaviour of vanilla ircu.
654 + As per QuakeNet Security, this option sets user mode +i on all connecting clients
661 + As per QuakeNet Security, add the ability to disable the /USERIP command for users.
667 + Enable or disable auto (default) channel modes for new channels.
669 +F:AUTOCHANMODES_LIST
673 + AUTOCHANMODES_LIST should contain the default channelmodes (e.g. "ntCN") which will
674 + be set by default on new channels.
676 +- disclaimer ----------------------------------------------------------------
678 +This software is provided "as is" with absolutely no warranties, either express
679 +or implied. It's use is done so totally at the user's own risk.
681 +-----------------------------------------------------------------------------
682 diff -r 4ebe7df0737d include/ircd_features.h
683 --- a/include/ircd_features.h Thu Jul 25 22:43:12 2013 +0100
684 +++ b/include/ircd_features.h Fri Jul 26 19:46:43 2013 +0100
691 /* Misc. random stuff */
693 diff -r 4ebe7df0737d include/patchlevel.h
694 --- a/include/patchlevel.h Thu Jul 25 22:43:12 2013 +0100
695 +++ b/include/patchlevel.h Fri Jul 26 19:46:43 2013 +0100
700 -#define PATCHLEVEL "14"
701 +#define PATCHLEVEL "14+snircd(1.4.0)"
703 #define RELEASE ".12."
705 diff -r 4ebe7df0737d ircd/Makefile.in
706 --- a/ircd/Makefile.in Thu Jul 25 22:43:12 2013 +0100
707 +++ b/ircd/Makefile.in Fri Jul 26 19:46:43 2013 +0100
710 ${INSTALL} -s -m 700 -o ${IRCDOWN} -g ${IRCDGRP} umkpasswd ${BINDIR}
711 ${INSTALL} -s -m 700 -o ${IRCDOWN} -g ${IRCDGRP} convert-conf ${BINDIR}
712 - ${INSTALL} -m 600 -o ${IRCDOWN} -g ${IRCDGRP} ${top_srcdir}/doc/example.conf ${DPATH}
713 + ${INSTALL} -m 600 -o ${IRCDOWN} -g ${IRCDGRP} ${top_srcdir}/doc/quakenet.conf ${DPATH}
715 install-no-symlink: build mkbindir
716 @if [ ! -d ${DPATH} -a ! -f ${DPATH} ]; then \
718 ${INSTALL} -m ${IRCDMODE} -o ${IRCDOWN} -g ${IRCDGRP} ircd ${BINDIR}/ircd
719 ${INSTALL} -s -m 700 -o ${IRCDOWN} -g ${IRCDGRP} umkpasswd ${BINDIR}
720 ${INSTALL} -s -m 700 -o ${IRCDOWN} -g ${IRCDGRP} convert-conf ${BINDIR}
721 - ${INSTALL} -m 600 -o ${IRCDOWN} -g ${IRCDGRP} ${top_srcdir}/doc/example.conf ${DPATH}
722 + ${INSTALL} -m 600 -o ${IRCDOWN} -g ${IRCDGRP} ${top_srcdir}/doc/quakenet.conf ${DPATH}
725 @if [ "${BINDIR}" != "${DPATH}" ]; then \
726 diff -r 4ebe7df0737d ircd/ircd_features.c
727 --- a/ircd/ircd_features.c Thu Jul 25 22:43:12 2013 +0100
728 +++ b/ircd/ircd_features.c Fri Jul 26 19:46:43 2013 +0100
730 F_S(HIS_URLSERVERS, 0, "http://www.undernet.org/servers.php", 0),
731 F_B(HIS_USERGLINE, 0, 1, 0),
732 F_B(HIS_LUSERS_ME, 0, 0, 0),
733 + F_B(HIS_USERIP, 0, 1, 0),
735 /* Misc. random stuff */
736 F_S(NETWORK, 0, "UnderNet", 0),
737 diff -r 4ebe7df0737d ircd/ircd_relay.c
738 --- a/ircd/ircd_relay.c Thu Jul 25 22:43:12 2013 +0100
739 +++ b/ircd/ircd_relay.c Fri Jul 26 19:46:43 2013 +0100
743 if (IsAccountOnly(acptr) && !IsAccount(sptr) && !IsOper(sptr)) {
744 - send_reply(sptr, ERR_ACCOUNTONLY, cli_name(acptr));
745 + send_reply(sptr, ERR_ACCOUNTONLY, cli_name(acptr), feature_str(FEAT_URLREG));
749 diff -r 4ebe7df0737d ircd/m_invite.c
750 --- a/ircd/m_invite.c Thu Jul 25 22:43:12 2013 +0100
751 +++ b/ircd/m_invite.c Fri Jul 26 19:46:43 2013 +0100
753 /* If we get here, it was a VALID and meaningful INVITE */
755 if (IsAccountOnly(acptr) && !IsAccount(sptr) && !IsOper(sptr)) {
756 - send_reply(sptr, ERR_ACCOUNTONLY, cli_name(acptr));
757 + send_reply(sptr, ERR_ACCOUNTONLY, cli_name(acptr), feature_str(FEAT_URLREG));
761 diff -r 4ebe7df0737d ircd/s_err.c
762 --- a/ircd/s_err.c Thu Jul 25 22:43:12 2013 +0100
763 +++ b/ircd/s_err.c Fri Jul 26 19:46:43 2013 +0100
764 @@ -1004,7 +1004,7 @@
766 { ERR_ISREALSERVICE, "%s %s :Cannot kill, kick or deop a network service", "485" },
768 - { ERR_ACCOUNTONLY, "%s :You must be authed in order to message this user", "486" },
769 + { ERR_ACCOUNTONLY, "%s :You must be authed in order to message this user -- For details of how to obtain an account visit %s", "486" },