fix possible crash on user deletion
[srvx.git] / NEWS
1 Upgrading from srvx-1.3
2 -----------------------
3
4 Core changes:
5
6  * There is a new mod-qserver module that allows direct connections to
7    srvx.  There is no documentation on the protocol, but the file is
8    under 250 lines long, so it shouldn't be hard to figure out.
9
10  * There is a new mod-blacklist module that allows a blacklist based
11    on DNSBLs and IP- and host-based text files.  See srvx.conf.example
12    for details on how to configure this module.
13
14  * Commands that use security overrides can be logged more easily.
15    This includes, among many other things, adding or removing users in
16    channels where the staff user would not normally have the necessary
17    access.  These can be selected with the "staff" and "override" log
18    levels.
19
20  * The database writing code has been rewritten because the previous
21    code performed much worse (for an unknown reason) on 64-bit
22    machines than on 32-bit machines.  Now it is faster than ever on
23    both types.
24
25  * There is now native mingw support for Win32 builds that do not use
26    the Cygwin libraries.  See Makefile.win32 for details.
27
28  * The logger now avoids recursive logging to the same destination.
29
30  * G-lines support the last-modification syntax introduced in
31    ircu2.10.12.11.
32
33  * srvx recognizes the +I (hide idle time) and +n (hide channel list)
34    user modes and uses them appropriately when generating WHOIS
35    responses.
36
37  * srvx now re-reads translations from its "languages" directory on a
38    ?rehash.
39
40  * srvx now re-reads its own server name and description on a ?rehash.
41
42  * srvx has several implementations of the ioset event loop
43    (ioset-epoll.c, ioset-kevent.c, ioset-select.c, ioset-win32.c).
44    The most efficient one supported by the OS should be selected
45    automatically.
46
47  * srvx has several implementations of its mail sending utility
48    (mail-sendmail.c, mail-smtp.c).  The sendmail implementation is
49    used on configure-based builds, and the SMTP implementation is used
50    on mingw/Win32 native builds.
51
52 ChanServ changes:
53
54  * Do-not-register (DNR) entries now have an expiration time.  The
55    duration can be set to 0 to create a permanent entry; this is the
56    default for pre-1.4 DNRs.  There is also a DNR search command that
57    should be bound to ChanServ (/msg OpServ bind ChanServ dnrsearch
58    *ChanServ.dnrsearch; likewise for its actions: dnrsearch\ print,
59    dnrsearch\ remove and dnrsearch\ count).
60
61  * Kick, ban and unban commands will now accept arguments of the form
62    *ACCOUNT, affecting users with that account name.
63
64  * The default titles "IRCOp", "network helper" and "support helper"
65    can be localized using "CSMSG_OPERATOR_TITLE", "CSMSG_UC_H_TITLE"
66    and "CSMSG_LC_H_TITLE" respectively.
67
68  * The BANS command can search for users affected by a ban in addition
69    to searching for matching ban patterns.
70
71  * The SAY and EMOTE commands will now accept arguments of the form
72    *ACCOUNT.
73
74  * There is a new channel flag, Unreviewed, that can distinguish
75    between automatically registered channels that have been reviewed
76    against network policies by staff and those that have not.  The
77    "unreviewed" search criteria can select channels without this flag.
78    (/msg OpServ bind ChanServ set\ unreviewed *ChanServ.set\
79    unreviewed; likewise for its values: set\ unreviewed\ on and set\
80    unreviewed\ off.)
81
82  * Changing the AutoInvite user option will warn if the user does not
83    have enough access in the channel to be automatically invited.
84
85  * The GIVEOWNERSHIP command requires a confirmation code.
86
87  * ChanServ's event handling functions are only registered if it has a
88    nickname set.  This makes it easier to disable ChanServ in one
89    instance of srvx.  There are a few related changes in modcmd.c's
90    permission and flag checks.
91
92 NickServ changes:
93
94  * Notes on an account are now supported.  (/msg OpServ bind NickServ
95    notes *NickServ.notes; likewise for the related addnote and delnote
96    commands.)
97
98  * The new command ODELCOOKIE has been added to do the hopefully
99    obvious thing.
100
101  * The new command CHECKEMAIL has been added to allow helpers to check
102    whether an account's email address matches one known to the helper.
103    This allows email visibility to remain limited.
104
105  * The OUNREGISTER command now has two configuration options that may
106    require a "force" parameter to be used: "ounregister_inactive" and
107    "ounregister_flags".  See srvx.conf.example for details.
108
109  * If you are using ircu2.10.12.x (you are, aren't you?), snircd, or
110    any other ircd that supports account creation timestamps, you
111    should consider the value of the NickServ "account_timestamp_mode"
112    parameter in srvx.conf.  It can have these values:
113     "ignore" (or anything unrecognized): Send the account registration
114       timestamp but ignore the received value.
115     "ircu": Send the account registration timestamp and require that
116       it match for users from the network.
117    The default is "ignore".
118
119 OpServ changes:
120
121  * IPs with trusts or with active opers are protected from being
122    accidentally affected by G-lines, TRACE KILL and TRACE GAG.  The
123    "abuse" pseudo-criterion for TRACE now has a "trusted" option to
124    override trusted IP protection (in addition to the previous, and
125    independent, "opers" option).
126
127  * The BLOCK command takes an optional duration after the target.
128    Using this requires the same access level as the GLINE command.
129
130  * There is a new FORCEKICK command that will allow opers to kick
131    anyone (including remote +k users) from a channel.
132
133  * The STATS GLINE command now accepts an optional target, to have it
134    show the first known G-line matching that target.
135
136  * srvx will no longer crash in OpServ's join checks if no OpServ bot
137    is instantiated.
138
139  * The TRACE command will now allow more than one "channel" criterion
140    to be specified.  It also accepts a "target" pseudo-criterion that
141    contains the name of a channel to receive the output.
142
143 Upgrading from srvx-1.2
144 -----------------------
145
146 Copy srvx.conf and your database files from your srvx-1.2 directory to
147 your srvx-1.3 directory.
148
149 Look over your srvx.conf and compare it to srvx.conf.example from
150 srvx-1.3.  Add any new settings you want to.
151
152 If you are using HelpServ, move the "helpserv" subsection from the
153 "services" section to the "modules" section.  Make sure you enable
154 the HelpServ module; see Q6 and Q8 in the FAQ.
155
156 You must update command bindings, because several common commands
157 moved in srvx-1.3.  If you have not added many custom bindings, the
158 easiest way to do this is to delete the "modcmd" section of srvx.db
159 (if you are using the "mondo" database layout) or delete modcmd.db (if
160 you are not using "mondo"); when you start srvx after doing that, it
161 will set up all the standard bindings.
162
163 If you have added many custom bindings, the following commands should
164 be bound to services:
165         Service Name    Suggested Name  Binding
166         ------------    --------------  -------
167         NickServ
168         ChanServ
169         OpServ
170 (The above list is known to be incomplete.)