1 |
What's New |
2 |
============================================= |
3 |
Summaries of changes in new Services versions |
4 |
|
5 |
Note: This is intended to highlight only the major changes between |
6 |
versions. For a complete list of changes, see the "Changes" file. |
7 |
|
8 |
------------ |
9 |
Version 5.1: |
10 |
------------ |
11 |
Database handling, the one aspect of Services which has remained |
12 |
essentially unchanged since version 1.0, has finally undergone a fairly |
13 |
significant redesign. Rather than using specialized data load and save |
14 |
routines tailored for the core Services pseudoclients, Services now |
15 |
implements a generic database table system, which has the dual benefits of |
16 |
separating the data storage system from the rest of Services (allowing |
17 |
alternative storage methods to be implemented easily) and allowing third- |
18 |
party modules and extensions to create their own non-volatile databases |
19 |
without resorting to custom load/save routines. The default database file |
20 |
format has also been changed to be more flexible and error-resilient than |
21 |
the old format (which admittedly isn't saying much); see the "upgrading" |
22 |
section of the manual for instructions on switching your databases to the |
23 |
new format. |
24 |
|
25 |
The often-criticized channel memo system has also been redesigned for this |
26 |
version. Instead of storing channel memos with the channel, memos are now |
27 |
sent to the founder and all users on the channel with a particular access |
28 |
level (by default level 100, or SOP level). These memos are distinguished |
29 |
from ordinary memos by text that says "(for #channel)" when reading the |
30 |
memo. As a result of this change, users will be notified about new channel |
31 |
memos in the same way as ordinary user-to-user memos. |
32 |
|
33 |
NOTICE: When loading databases from version 5.0 or earlier, all channel |
34 |
memos will be deleted. |
35 |
|
36 |
Encryption support has also been improved. Encryption is no longer an |
37 |
all-or-nothing affair; the encryption method is stored with each password, |
38 |
so that enabling or disabling encryption will have no effect on passwords |
39 |
that were previously set. The "encryption/unix-crypt" module has been |
40 |
added, allowing the use of the Unix crypt() function to encrypt passwords. |
41 |
|
42 |
The NickServ and ChanServ SENDPASS commands added in version 5.0 have been |
43 |
removed in favor of the new NickServ REAUTH command. This command |
44 |
generates an authentication code which the user can use once to identify to |
45 |
their nickname in place of the password, and then change the password as |
46 |
needed. Channel passwords can always be changed by the founder after |
47 |
nickname identification, rendering ChanServ SENDPASS unnecessary. |
48 |
|
49 |
Long LIST/VIEW responses are now handled more cleanly. Except for NickServ |
50 |
ACCESS LIST (since nickname access lists are generally short) and MemoServ |
51 |
LIST (since memos are numbered), every list now includes an "end of list" |
52 |
message indicating both the number of entries displayed and the total |
53 |
number of entries in the list; the configuration directive ListMax, |
54 |
replacing NSListMax and CSListMax, sets the maximum number of entries |
55 |
displayed for any of these commands. It is also possible to skip a certain |
56 |
number of entries by adding a "+NNN" after the command, allowing all of the |
57 |
entries in a long list to be viewed bit by bit. |
58 |
|
59 |
At the development level, handling of module compilation has been improved, |
60 |
allowing third-party modules to be simply "dropped in" without requiring |
61 |
changes to Makefiles or other Services distribution files. An extension |
62 |
interface has been added to Services' multilingual support as well, |
63 |
allowing modules to add their own language strings and load their own |
64 |
language files. |
65 |
|
66 |
Other changes: |
67 |
+ Command aliases can now be added for NickServ, ChanServ, and MemoServ |
68 |
commands via the NSAlias, CSAlias, and MSAlias directives. |
69 |
+ Notices are now sent to the user when sending of a mail authentication |
70 |
code message fails. (However, errors after the message has been |
71 |
handed off to the mail server cannot be detected.) |
72 |
+ A new configuration directive, RejectEmail, now allows selected E-mail |
73 |
addresses to be rejected by NickServ and ChanServ commands. |
74 |
+ NickServ has a new option, NOOP, which prevents nicknames from being |
75 |
added to channel access lists. (It does not prevent the nickname |
76 |
from being opped when already present on an access list.) |
77 |
+ NickServ INFO will now indicate when a nickname's user is using a |
78 |
different linked nickname if the nickname group's PRIVATE option |
79 |
is not set. |
80 |
+ NickServ now has a RESTOREMAIL command (in the nickserv/mail-auth |
81 |
module), which allows a user to restore their nickname's last |
82 |
authenticated E-mail address if, for example, SET EMAIL is used |
83 |
with an incorrect address. |
84 |
+ NickServ SET/UNSET by Services administrators for others' nicknames is |
85 |
now done by putting a "!" before the nick to avoid ambiguity; for |
86 |
example, "SET !nick NOEXPIRE ON" instead of "SET nick NOEXPIRE ON". |
87 |
+ ChanServ REGISTER and SET PASSWORD now check for and disallow easily |
88 |
guessable passwords. |
89 |
+ ChanServ has a new option, MEMO-RESTRICTED, which prevents users |
90 |
without the channel MEMO privilege from sending memos to the |
91 |
channel. |
92 |
+ ChanServ ACCESS now includes a LISTLEVEL subcommand to list access |
93 |
entries with a given level or within a given level range. |
94 |
+ ChanServ AKICK and MemoServ IGNORE now support matching by IP address |
95 |
(on servers which support client IP address information). |
96 |
+ ChanServ OP, VOICE, and similar commands can now be used with multiple |
97 |
nicknames. |
98 |
+ MemoServ now has a RENUMBER command to remove "holes" in the memo |
99 |
number sequence. |
100 |
+ MemoServ FORWARD now sends all selected memos in a single E-mail |
101 |
message, rather than sending each memo in a separate message. |
102 |
+ OperServ AKILL and related commands now have a CHECK subcommand which |
103 |
can be used to find all masks that match a given user/hostname. |
104 |
+ SQlines are no longer applied to IRC operators during Services startup |
105 |
or netjoins if the IRC protocol in use supports sending user modes |
106 |
with the NICK message. This includes the bahamut, hybrid, |
107 |
inspircd, monkey, ptlink, ratbox, solid-ircd, trircd, and unreal |
108 |
protocol modules. |
109 |
+ The ignore system has been redesigned, and now keeps better track of |
110 |
how much load each user is putting on Services. The ignorance |
111 |
threshold can be fine-tuned via the configuration file. |
112 |
+ A new "unsorted list" mode has been added to improve Services' |
113 |
performance on large networks. By giving the -no-sorted-list |
114 |
option to the configure script, Services will not try to keep |
115 |
nicknames and channels in alphabetical order; this means that |
116 |
commands such as NickServ LIST will no longer return nicknames in |
117 |
order, but Services will run significantly faster. |
118 |
+ Support has been added for the InspIRCd, ircd-ratbox, and solid-ircd |
119 |
IRC servers. |
120 |
+ Unreal's NICKCHARS protocol option, allowing non-ASCII characters in |
121 |
nicknames, is now supported. |
122 |
+ The name of the Services executable can now be changed, using the |
123 |
-prefix option to the configure script. The name given will also |
124 |
be used in the main configuration filename (normally |
125 |
ircservices.conf) and cron script (ircservices-chk), as well as |
126 |
default filenames in the configuration file. |
127 |
* ChanServ DROP now behaves like NickServ DROP: dropping a channel now |
128 |
requires the channel password to be entered with the DROP command, |
129 |
and DROPCHAN has been added as a separate command for Services |
130 |
administrators to drop arbitrary channels. |
131 |
* The ChanServ ACCESS, XOP, and AKICK commands no longer use entry |
132 |
numbers; the DEL and LIST subcommands now work with nicknames |
133 |
(hostmasks for the AKICK command) only. |
134 |
* The binary distributions (RPM and Debian packages) now install into |
135 |
/opt/ircservices and /var/opt/ircservices, rather than /usr/sbin |
136 |
and /usr/lib/ircservices. |
137 |
* Tab characters are no longer used (or allowed) in the source code. |
138 |
- The deprecated nickserv/oldlink module, which provided support for the |
139 |
format of the LINK command used in version 4 of Services, has been |
140 |
removed. |
141 |
- Support for "modeless channels", with names of the form "+name", has |
142 |
been removed. (Support for registering such channels was removed |
143 |
in version 5.0.0; this version removes the special handling for |
144 |
such channels in other parts of the program.) |
145 |
- Support for the "channel owner" mode present in the PTlink (+a), |
146 |
trircd (+u), and Unreal (+q) IRC servers has been removed, as there |
147 |
are too many differing opinions on its proper use. |
148 |
- Language support for Italian and Portuguese has been removed, due to |
149 |
the lack of volunteers to maintain them. |
150 |
- Support for old versions of GCC (anything before GCC 3.2) has been |
151 |
removed. |
152 |
Configuration file changes: |
153 |
+ IncludeFile has been added to allow configuration directives to be |
154 |
split up into multiple files, and may be used in both |
155 |
ircservices.conf and modules.conf. |
156 |
+ NoAdminPasswordCheck (ircservices.conf) has been added in release |
157 |
5.1.16 to allow password checks to be bypassed for Services |
158 |
administrators. |
159 |
+ LoadLanguageText (ircservices.conf) has been added to allow replacement |
160 |
of Services text strings at runtime. |
161 |
+ RejectEmail (ircservices.conf) has been added to allow rejection of |
162 |
selected E-mail addresses. |
163 |
+ NSAlias (module nickserv/main), CSAlias (module chanserv/main), and |
164 |
MSAlias (module memoserv/main) have been added to allow creation of |
165 |
command aliases. |
166 |
+ NSRegDenyIfSuspended (module nickserv/main) has been added to prevent |
167 |
registration of new nicknames by users with suspended nicknames. |
168 |
+ NSSetEmailDelay (module nickserv/main) has been added to enforce a |
169 |
delay between consecutive uses of the SET EMAIL command, thereby |
170 |
reducing the potential for sending mailbombs. |
171 |
+ CSDefModeLock (module chanserv/main) has been added to allow the |
172 |
default mode lock for newly registered channels to be changed. |
173 |
+ CSSkipModeRCheck (module chanserv/main) has been added to allow the |
174 |
check of a nickname's registration status at channel join time |
175 |
(used to kick unregistered nicknames from channels locked +R) to |
176 |
be skipped. |
177 |
+ MSExpireDelay (module memoserv/main) has been added to allow memo |
178 |
expiration to be delayed until a certain time after the memo is |
179 |
first read. |
180 |
+ MaxMessages (module mail/main) has been added to allow a limit to be |
181 |
placed on the total number of messages in transit. |
182 |
* ListMax (ircservices.conf) has been added in place of NSListMax and |
183 |
CSListMask to set a limit on the number of entries displayed for |
184 |
all LIST-like commands. |
185 |
* WallAdminPrivs (ircservices.conf) has been added in place of |
186 |
WallGetpass and WallSetpass to cause a WALLOPS/GLOBOPS to be sent |
187 |
on all NickServ and ChanServ commands that use Services |
188 |
administrator privileges. |
189 |
* The database name configuration directives (NickServDB, ChanServDB, |
190 |
etc.) have been moved from the various pseudoclient module sections |
191 |
to the database/version4 module section, and now explicitly specify |
192 |
filenames. |
193 |
- The nickserv/sendpass and chanserv/sendpass modules (and therefore |
194 |
their respective configuration sections) have been removed. |
195 |
- CSAutokickReason (module chanserv/main) has been removed, as the |
196 |
built-in reason prefix "AKICK by <nick>" makes it unnecessary. |
197 |
- MSExpireUnread (module memoserv/main) has been removed, since it |
198 |
results in silent data loss. |
199 |
- MSNotifyAll (module memoserv/main) has been removed, since it is |
200 |
required for channel memos. MemoServ will now always behave as if |
201 |
MSNotifyAll was set. |
202 |
- MaxSockets (module mail/smtp) has been removed, since MaxMessages now |
203 |
performs the same function. |
204 |
|
205 |
------------ |
206 |
Version 5.0: |
207 |
------------ |
208 |
The single biggest addition to this version of Services is module support. |
209 |
This allows the various functions of Services to be added to and modified |
210 |
without having to touch the main source code itself. Modules also provide |
211 |
much more flexibility in configuring Services; IRC server support and |
212 |
database file format can be selected by simply loading the appropriate |
213 |
module, and you can even choose which of the pseudoclients (NickServ, |
214 |
ChanServ, etc.) you want available. See the example configuration files |
215 |
in the "data" subdirectory for more information. |
216 |
|
217 |
Services is now capable of sending E-mail. Currently, this functionality |
218 |
is used by: |
219 |
+ The new "authentication" feature of NickServ (in the |
220 |
"nickserv/mail-auth" module). This sends a message to a user upon |
221 |
nickname registration or E-mail address change, and requires the user |
222 |
to "authenticate" their nickname with a random numeric code included in |
223 |
the message before it is recognized as a valid registered nick by |
224 |
Services. |
225 |
+ The new SENDPASS command for NickServ and ChanServ (in the |
226 |
"nickserv/sendpass" and "chanserv/sendpass" modules, respectively). |
227 |
which allows a user to send themselves their nick or channel password. |
228 |
+ The new memo forwarding function of Services, which allows users to |
229 |
have their memos automatically forwarded to their E-mail address. |
230 |
|
231 |
Services also sports a built-in HTTP server (module "httpd/main"), which |
232 |
(with the help of additional modules in the "httpd" directory) can be used |
233 |
for queries about nicknames, channels, and network status. See the |
234 |
documentation (section 3-6) for details on its abilities, and please submit |
235 |
a feature request if you have any additional ideas for what functionality |
236 |
the server should provide. |
237 |
|
238 |
Nickname links have been redesigned for simplicity and robustness. In the |
239 |
new linking system, nicks are organized into single-level "groups" which |
240 |
share settings the way linked nicks did in previous versions, rather than |
241 |
multi-level "trees" as version 4 used. The LINK command has changed as |
242 |
well: instead of creating a link from the current (unlinked but registered) |
243 |
nick to a registered master nick, the link is made from the current |
244 |
registered nick to a new (unregistered) nick, to simplify registration of |
245 |
multiple links at once and to offer slightly better protection against |
246 |
"rogue links" created by guessing nick passwords (though as always, the |
247 |
best defense is to use good passwords). The old behavior of the LINK |
248 |
command is still available through the "nickserv/oldlink" module, although |
249 |
this module is deprecated and will be removed in a future version. |
250 |
|
251 |
Finally, the documentation for Services (what used to be in the README and |
252 |
FAQ files) has been greatly expanded and rewritten in HTML, and now includes |
253 |
references for all Services pseudoclient commands and configuration options. |
254 |
The manual also contains important information for users upgrading from |
255 |
version 4.x or earlier; if you are already using Services and plan to |
256 |
upgrade to version 5.0, please read this information before upgrading. |
257 |
|
258 |
Other changes: |
259 |
+ Nicknames now have an "Information" line, similar to a channel's |
260 |
description, which can be set freely for each group of nicks. |
261 |
+ The number of nicknames that can be registered per E-mail address can |
262 |
now be limited (NSRegMaxEmail configuration directive). |
263 |
+ The default options for newly registered channels can now be set in the |
264 |
configuration file. |
265 |
+ Identifies for nicknames are now recorded, removing the necessity to |
266 |
re-identify after every nick change. |
267 |
+ The Services stamp of the last user to identify for a nick is now |
268 |
recorded on disk, removing the necessity to re-identify when |
269 |
Services is restarted. |
270 |
+ A time zone can be set for each registered nick, to allow users to get |
271 |
information from Services in their own time zones. |
272 |
+ Nicknames can be listed by E-mail address with the new LISTEMAIL command. |
273 |
+ Users can set channels to automatically join whenever they identify for |
274 |
their nickname (nickserv/autojoin module) on IRC servers supporting |
275 |
the SVSJOIN command (such as Unreal or trircd). |
276 |
+ The NickServ and ChanServ REGISTER and GETPASS commands can now be |
277 |
(individually) disabled via the configuration file. |
278 |
+ Users with auto-op access for a channel will now be opped when they |
279 |
identify for their nickname even if they are already in the channel. |
280 |
+ Channel access levels are now limited to -999..999; default levels have |
281 |
been rescaled to make better use of the available range (in |
282 |
particular, levels -25..25 have been multiplied by 10). |
283 |
+ The ChanServ OP, VOICE, etc. commands now default to the person sending |
284 |
the command if a target nick is not specified (e.g. "OP #channel"). |
285 |
+ ChanServ now has a KICK command. |
286 |
+ Channel information can now be hidden with the new ChanServ SET HIDE |
287 |
command, similar to the NickServ command of the same name. |
288 |
+ The ChanServ STATUS command is now available to normal (non-admin) users |
289 |
with sufficient privileges on the target channel. |
290 |
+ Users can prevent certain other users from sending memos to them |
291 |
(memoserv/ignore module). |
292 |
+ Autokill exclusions (exceptions to autokill masks) are now supported |
293 |
through the EXCLUDE command (operserv/akill module). |
294 |
+ S-lines (SGLINE/SQLINE/SZLINE) are now supported (operserv/sline |
295 |
module), and can even be used (except SZLINE) on servers which do |
296 |
not support S-lines natively. |
297 |
+ Services now records the last time an autokick or autokill was |
298 |
triggered, as well as the set time for autokicks. |
299 |
+ The maximum expiry time for autokills set by Services operators (as |
300 |
opposed to Services admins) can now be limited. |
301 |
+ OperServ now has a SERVERMAP command to show the IRC server tree. |
302 |
+ Services is now slightly more robust against denial-of-service attacks |
303 |
which use repeated HELP messages to overload network buffers; if |
304 |
the network buffer size exceeds the threshold defined by the |
305 |
NetBufferLimit configuration directive, Services will ignore |
306 |
commands sent to it until the buffer size decreases. The OperServ |
307 |
STATS command has a new option, NETWORK, which can be used to show |
308 |
the current network buffer status. |
309 |
+ Support for the Chunky Monkey and trircd IRC servers is now available. |
310 |
+ Services can now synchronize the clocks of all servers on the network |
311 |
for IRC server types which support this feature (Unreal). |
312 |
+ Configuration files can now be re-read (rehashed) while Services is |
313 |
running, using either the new OperServ REHASH command or kill -HUP. |
314 |
+ The log file can now be rotated automatically based on the date. |
315 |
+ Databases can now be imported (merged) and exported in XML format. |
316 |
+ A sample crontab script is now included in the distribution. |
317 |
* The configuration file has been changed to accommodate modules; |
318 |
ircservices.conf (formerly services.conf) now contains only options |
319 |
related to core Services functionality, while module-related |
320 |
options (including NickServ, ChanServ, etc. settings) are in a new |
321 |
file called "modules.conf". Many options have been added, changed, |
322 |
or removed; see the example configuration files for details. |
323 |
* The network I/O subsystem has been completely redesigned for robustness |
324 |
and ease of use; multiple sockets (including listener sockets) can |
325 |
be used simultaneously via read/write callbacks, and sockets now |
326 |
have variable buffer sizes, allowing more efficient use of memory. |
327 |
* Database handling has been improved to avoid database corruption on |
328 |
power outage or process termination/crash. |
329 |
* The "do not abuse NickServ" warning in the main NickServ help message |
330 |
is now optional, to allow networks more freedom in writing their |
331 |
own policies. |
332 |
* Passwords, URLs, and E-mail addresses are now shared by each group of |
333 |
linked nicks. |
334 |
* NickServ DROP now requires a password to avoid accidental use, and |
335 |
drops all linked nicks in a group at once. The command for |
336 |
Services administrators to drop a nick is now DROPNICK. |
337 |
* The channel "#", which has been known to cause problems with both IRC |
338 |
servers and Services-like programs, is now explicitly not |
339 |
supported; Services will refuse to register, forbid, or import it. |
340 |
* Users must now identify for their nickname before registering a channel. |
341 |
* Channel autokicks specified by nickname now work for that nickname |
342 |
only, not for any nicks linked to it. |
343 |
* The CSRestrictDelay option now works correctly and is enabled by default. |
344 |
* Newly-registered nicks will now always use the default language set in |
345 |
config.h, even if that language is changed after registration. |
346 |
* Command-line options that take values now use an "=" instead of a space |
347 |
between the option name and the value. |
348 |
* The database conversion utility (convert-db) now outputs an XML |
349 |
database file, which can be used with the XML import feature, |
350 |
rather than writing databases directly. |
351 |
* The configuration script "configure" now asks fewer questions, and can |
352 |
be completely automated if the "-prefix" option is used. |
353 |
* "configure" now understands GNU-style options, e.g.: --prefix=/usr |
354 |
- The AUTODEOP and NOJOIN channel levels have been removed in favor of |
355 |
the SECUREOPS and RESTRICTED channel options. |
356 |
- The deprecated CheckClones functionality has been removed in favor of |
357 |
session limiting. |
358 |
- The IrcIIHelp pseudoclient (online help for the ircII client) has been |
359 |
removed. |
360 |
- The "listnicks" and "listchans" programs have been removed in favor of |
361 |
the built-in HTTP server. |
362 |
|
363 |
------------ |
364 |
Version 4.5: |
365 |
------------ |
366 |
! I'm Back: Andrew Church <achurch@achurch.org> (new address) is once |
367 |
again taking over Services development. |
368 |
! NOTICE to those using encryption: Services 4.4.x and earlier had a bug |
369 |
in the encryption routine causing passwords to be incorrectly |
370 |
encrypted. This bug is fixed in 4.5.0, but as a consequence, all |
371 |
passwords set in earlier versions are not directly readable by |
372 |
Services. A workaround is available in the "configure" script, but |
373 |
enabling this workaround may decrease the security of some |
374 |
passwords. I recommend enabling the workaround for the first 30 |
375 |
days (or whatever you have your nickname expiration period set to), |
376 |
adding a logon news item asking users to set their password again |
377 |
(this can be the same as the old password, as long as they run the |
378 |
SET PASSWORD command again), and disabling the workaround after |
379 |
that time has passed. |
380 |
+ Added SOP, AOP, and VOP commands as an alternate method of managing |
381 |
channel access lists. (ACCESS can still be used as before.) |
382 |
+ Added experimental support for the Unreal server (version 3.1.1). When |
383 |
using the Unreal server, ChanServ supports the commands HOP, HALFOP, |
384 |
DEHALFOP, PROTECT, and DEPROTECT, and the following access levels: |
385 |
- AUTOHALFOP (automatic mode +h), level 4 (HOP) |
386 |
- HALFOP (can use HALFOP/DEHALFOP commands), level 4 (HOP) |
387 |
- AUTOPROTECT (automatic mode +a), level 10 (SOP) |
388 |
- PROTECT (can use PROTECT/DEPROTECT commands), level 10 (SOP) |
389 |
+ Services now supports the "Services stamp" feature in DAL 4.4.15+ |
390 |
compatible servers (including Dreamforge, Bahamut, and Unreal). |
391 |
This feature allows Services to attach an ID value to each user |
392 |
which will be retained even when the network splits, for increased |
393 |
security when re-granting privileges after a split. |
394 |
+ Added support for suspending channels. Like suspended nicknames, all |
395 |
settings will be retained during the suspension period. |
396 |
+ Channel modes can now be buffered to reduce "mode flooding". |
397 |
+ Services can now be configured to require an E-mail address at nickname |
398 |
registration time. |
399 |
+ Users can now be warned when their nicks are about to expire. |
400 |
+ Added UNSET command to NickServ and ChanServ for clearing URLs and |
401 |
E-mail addresses. |
402 |
+ Added VOICE and DEVOICE commands to ChanServ, and VOICE access level |
403 |
(default 3, the same as auto-voice). |
404 |
+ Added OperServ CLEARCHAN command to remove all users from a channel. |
405 |
+ Added OperServ SU command to allow any Services admin to gain super-user |
406 |
privileges (with the appropriate password). |
407 |
+ Services will now log changes to nickname E-mail addresses. |
408 |
+ Services can now be configured to send warnings and/or suspend nicks and |
409 |
channels when there are a large number of bad password attempts on |
410 |
them; see the new BadPassWarning and BadPassSuspend options. |
411 |
+ Time specifications (in services.conf, for autokills, etc.) can now |
412 |
include multiple units, for example "1h30m". |
413 |
+ Sending a SIGUSR2 signal to Services will cause the log file to be |
414 |
closed and reopened. Use in combination with "mv" to rotate the |
415 |
log file. |
416 |
+ The import-db utility can now convert databases from the Sirv (versions |
417 |
1.4.0 and 2.7.0), Daylight, Epona (version 1.3.4), and PTlink |
418 |
(version 2.18.0 and above) programs. |
419 |
+ German and Dutch are now available as language options. |
420 |
* Support for the DALnet Bahamut server has been improved. Note that |
421 |
only versions 1.4.23 and later are supported (support for earlier |
422 |
versions has been dropped). |
423 |
* Services will now check E-mail and URL addresses for nicks and channels |
424 |
to ensure that they are syntactically valid. |
425 |
* The OPDEOP channel access level has been renamed to OP-DEOP. |
426 |
* OperServ ROTATELOG command removed in favor of the signal method. |
427 |
* Services has been greatly optimized, easing operations on large |
428 |
networks or low-power servers. |
429 |
* Many, many bugs have been fixed. |
430 |
|
431 |
New configuration options: |
432 |
+ BadPassWarning : Sets the bad password limit per nick/channel before |
433 |
sending a WALLOPS/GLOBOPS warning. |
434 |
+ BadPassSuspend : Sets the bad password limit per nick/channel before |
435 |
automatically suspending the nick/channel in question. |
436 |
+ MergeChannelModes: Merges multiple channel mode changes into one message. |
437 |
+ NoBouncyModes : Disable mode-bounce checking. |
438 |
+ NSExpireWarning : Sets the time before expiration during which the user |
439 |
is warned that their nick will expire soon. |
440 |
+ NSRequireEmail : Makes Services require an E-mail address upon nick |
441 |
registration. |
442 |
+ NSMaxLinkDepth : Sets the maximum depth for nested nickname links. |
443 |
+ PingFrequency : Sets the period after which a PING message is sent. |
444 |
+ ServerNumeric : Sets the server numeric for Services (Unreal only). |
445 |
+ WallOSChannel : Send a wallops/globops on MODE/KICK/CLEAR{MODES,CHAN}. |
446 |
+ WallSU : Send a wallops/globops on OperServ SU. |
447 |
+ SessionLimitAkill: Automatically adds an autokill when a session limit |
448 |
is exceeded repeatedly. |
449 |
Removed configuration options: |
450 |
* WallOSMode, WallOSKick, and WallOSClearmodes removed in favor of |
451 |
WallOSChannel. These options can no longer be set separately. |
452 |
* Deprecated configuration directive "ListOpersOnly" removed. Use |
453 |
"NSListOpersOnly" and "CSListOpersOnly" instead. |
454 |
|
455 |
------------ |
456 |
Version 4.4: |
457 |
------------ |
458 |
+ Support for DALnet's Bahamut ircd has been added. It should be noted that |
459 |
the Bahamut ircd is still being developed and may not be stable yet. If |
460 |
you are going to use the Bahamut ircd, use version 1.2 or later. |
461 |
+ Nicknames can be suspended, preventing people from identifying for them. |
462 |
However, suspended nicknames retain all their settings, unlike forbidden |
463 |
nicknames, and can be used to deny the use of a nickname temporarily with |
464 |
the intention to eventually give it back. |
465 |
+ Made forbidden nicks and channels more robust. |
466 |
+ Began the addition of an internal Statistics Server (StatServ). |
467 |
* Fixed many little bugs in the help system, such as the wrong help being |
468 |
shown to Services Admins. |
469 |
|
470 |
New configuration options: |
471 |
+ StatServName : Nickname of the Statistics server pseudo client. |
472 |
+ StatServDB : Filename of statistic database (not yet used). |
473 |
+ ImmediatelySendAkill: Send AKILL to servers as it is added. |
474 |
+ WallOSException: Send a wallops when a session limit exception is added. |
475 |
+ SSOpersOnly : Limits StatServ use to opers only. |
476 |
+ NSSuspendExpire: Expiry time for nick suspends. |
477 |
+ NSSuspendGrace : Minimum amount of time a nick must exist for, after |
478 |
being unsuspended, before it can expire. |
479 |
+ CSSuspendExpire: Expiry time for channel suspendes. |
480 |
+ CSSuspendGrace : Minimum amount of time a channel must exist for, after |
481 |
being unsuspended, before it can expire. |
482 |
|
483 |
------------ |
484 |
Version 4.3: |
485 |
------------ |
486 |
+ Due to a lack of time, Andy Church has handed over the maintenance and |
487 |
development of Services to myself, Andrew Kempe. To quote him, "I have |
488 |
(I hope) created something people find useful; I don't want to let it |
489 |
rot for my own lack of time to continue work on it." Although he's left |
490 |
large shoes to fill, I hope to continue his work in the same light. I'd |
491 |
also like to stress that even though I'm the new, quoted, "maintainer" |
492 |
(*cringe*) of services, I'm always open to constructive critisim, |
493 |
suggestions and the like. I hope Andy will remain associated with Services |
494 |
and it's development, even if only in a minor role/way. Andy, thanks for |
495 |
a great codebase upon which to develop! Finally, there will be a couple |
496 |
of changes taking place, such as a new distribution site and a new mailing |
497 |
list address. These changes are detailed below. |
498 |
+ New Services mailing list address: ircservices@ender.shadowfire.org |
499 |
Everyone who was on the old mailing list, as of 1999/08/12, has been moved |
500 |
to the new list. See section 9 of the README for information about using |
501 |
this list. |
502 |
+ New Services website: |
503 |
http://ender.shadowfire.org/ircservices/ |
504 |
+ New Services distribution sites: |
505 |
Official: ftp://ender.shadowfire.org/pub/ircservices/ |
506 |
Mirror: ftp://ftp.electrocity.com/pub/ircservices/ |
507 |
I will try to get all the previous versions of Services online there soon. |
508 |
+ Services can now limit the number of client connections per hostname. This |
509 |
is intended to supercede the CheckClones code. It is also possible to |
510 |
specify limits for specific hosts or hostmasks. Users causing the limit |
511 |
to be exceeded are killed. |
512 |
+ Extended the INFO and AKICK commands. |
513 |
display hidden/additional information. |
514 |
+ Services now supports DALnet's +r usermode and +r/+R channel modes. |
515 |
+ See Changes.lang for a list of the new/modified language strings. |
516 |
|
517 |
New configuration options: |
518 |
+ NSSecureAdmins : When enabled, prevents the use of the DROP, GETPASS, and |
519 |
SET PASSWORD commands by Services admins on other Services admins or |
520 |
the Services root. |
521 |
+ WallExceptionExpire: Send a WALLOPS/GLOBOPS when an exception expires. |
522 |
+ LimitSessions : Enables session limiting. |
523 |
+ DefSessionLimit: Default session limit per hostname. |
524 |
+ MaxSessionLimit: Maximum session limit for a session limit exception. |
525 |
+ ExceptionExpiry: Default expiry time for a session limit exception. |
526 |
+ SessionLimitExceeded: KILL message used when enforcing a session limit. |
527 |
+ SessionLimitDetailsLoc: Message NOTICE'd to a user before they're killed to |
528 |
enforce a session limit. |
529 |
|
530 |
------------ |
531 |
Version 4.2: |
532 |
------------ |
533 |
+ Default flags for newly registered nicks can now be configured via |
534 |
services.conf. |
535 |
+ The NickServ LINK command can now be disabled via an option in |
536 |
services.conf. |
537 |
+ Services admins can list all nicks linked to a given one. |
538 |
+ Forbidden and no-expire nicks can be listed by Services admins with the |
539 |
NickServ LIST command. |
540 |
+ Services will (optionally) log when a new user maximum is reached. |
541 |
+ Services can now be configured to automatically kill users which |
542 |
trigger its clone detection. This option is HIGHLY DISCOURAGED, |
543 |
however; see data/example.conf for details. |
544 |
|
545 |
New configuration options: |
546 |
+ NSDef... : Default flags for newly registered nicknames. |
547 |
+ NSEnforcerUser : Username/hostname for NickServ kill enforcement |
548 |
(previously "enforcer"@services.hostname). |
549 |
+ NSDisableLinkCommand: Disables use of the NickServ LINK command. |
550 |
+ NSListOpersOnly: Like ListOpersOnly, but only applies to NickServ. |
551 |
+ NSListMax : Maximum number of nicks displayed for NickServ LIST. |
552 |
+ CSListOpersOnly: Like ListOpersOnly, but only applies to ChanServ. |
553 |
+ CSListMax : Maximum number of channels displayed for ChanServ LIST. |
554 |
+ CSRestrictDelay: Amount of time to wait after startup before enforcing |
555 |
RESTRICTED/NOJOIN (only partially works). |
556 |
+ WallAkillExpire: Send a WALLOPS/GLOBOPS when an autokill expires. |
557 |
+ The clone kill option name has been intentionally omitted to force |
558 |
users to read the documentation before using it. |
559 |
|
560 |
------------ |
561 |
Version 4.1: |
562 |
------------ |
563 |
+ Most features of Services can now (finally!) be configured via a |
564 |
control file (like ircd's ircd.conf) rather than requiring changes |
565 |
to be made in config.h. See the README for more information. |
566 |
+ Added database importer to allow the use of databases created by other |
567 |
Services-like programs. |
568 |
+ Added news system, allowing users to be sent a message when they |
569 |
connect to the network and/or /oper. |
570 |
+ Added channel "successor" setting, allowing a "secondary founder" to be |
571 |
designated who will receive control of the channel if the founder's |
572 |
nick expires. |
573 |
+ ChanServ will now send more informative error messages when users try |
574 |
to use the DALnet AOP and SOP commands. |
575 |
+ Added ChanServ SET OPNOTICE and SET LEAVEOPS settings. |
576 |
+ Several more list-type commands can use number lists and ranges |
577 |
(MemoServ LIST/READ, ChanServ ACCESS/AKICK LIST). |
578 |
+ Command syntax error messages now obey the user's language setting. |
579 |
+ Maximum user count is now dated and saved to disk. |
580 |
+ Added vsnprintf() function for systems lacking a real one. |
581 |
* Database error-recovery improved. |
582 |
* Services now compiles warning-free (on all tested systems). |
583 |
|
584 |
------------ |
585 |
Version 4.0: |
586 |
------------ |
587 |
This release of Services has two major additions: |
588 |
|
589 |
+ Multi-language support. Services can now "speak" in multiple |
590 |
languages; each user can select (on a per-nick basis) which |
591 |
language they would like to receive messages from Services in, |
592 |
including help messages. Currently supported languages are |
593 |
English, Japanese, Portugese, Spanish, and Turkish; translations |
594 |
into Afrikaans, Dutch, French, and Malaysian are underway. |
595 |
+ Nick linking. Nicknames can now be linked together, allowing a user to |
596 |
keep just one set of nickname settings and memos and have many |
597 |
different "aliases". Any setting changes made to one of a set of |
598 |
linked nicks will immediately affect all of them; if one of a set |
599 |
of linked nicks is entered in (for example) a channel access list, |
600 |
then the user will have the same access level when using any nick |
601 |
in that set. |
602 |
|
603 |
In addition, there is now a mailing list for Services discussion and |
604 |
announcements. To subscribe, send mail to services-request@dragonfire.net |
605 |
with a subject of "subscribe" and a body of "subscribe <your-address>" |
606 |
(without the angle brackets). More information is at the bottom of the |
607 |
README. |
608 |
|
609 |
Services also has a World Wide Web site, located at: |
610 |
http://achurch.dragonfire.net/services/ |
611 |
|
612 |
Other notable additions/changes include: |
613 |
|
614 |
+ Services will now track a user's IDENTIFY's across nick changes and |
615 |
network splits (on networks with some sort of timestamp support). |
616 |
An IDENTIFY now lasts until the user disconnects from IRC. |
617 |
+ Channels can now receive memos. By default, any user with access level |
618 |
10 or higher on a channel can list, read, and delete channel memos. |
619 |
+ Users' last quit messages are now recorded and displayed in NickServ |
620 |
INFO. |
621 |
+ Users can choose to hide parts of their nickname information from other |
622 |
users in the NickServ INFO display. |
623 |
+ NickServ's SET KILL command now has QUICK and IMMED options to reduce |
624 |
the time before a kill to 20 seconds or kill immediately, |
625 |
respectively. (However, the IMMED option is disabled by default in |
626 |
config.h.) |
627 |
+ Nickname and channel URLs and E-mail addresses can be unset by passing |
628 |
no parameter. |
629 |
+ A message can be set for a channel which will be /notice'd to a user |
630 |
when the user enters the channel. |
631 |
+ Users can now set their own memo limits within the range 0 through |
632 |
DEF_MEMO_MAX with the SET LIMIT command. |
633 |
+ The MemoServ DEL command now understands ranges (x-y) and commas. |
634 |
+ MemoServ now has an INFO command, which reports the total number of |
635 |
memos, number of unread memos, and memo limit for the user giving |
636 |
the command. Services admins can view that information for any |
637 |
user. |
638 |
+ A new OperServ privilege level has been added: Services operator. The |
639 |
OperServ MODE, KICK, and AKILL commands have been restricted to |
640 |
Services operators and above. |
641 |
+ A new OperServ command has been added: CLEARMODES, for Services |
642 |
operators, which will clear all modes, bans, and optionally +o/+v |
643 |
from any channel. |
644 |
+ Services admins can now disable expiration of specific nicknames and |
645 |
channels with the NickServ and ChanServ SET NOEXPIRE command, and |
646 |
can set any nick or channel parameters (including passwords) |
647 |
without needing to use the IDENTIFY command. |
648 |
+ Services can now be configured to send a WALLOPS/GLOBOPS when the |
649 |
OperServ MODE, CLEARMODES, and/or KICK commands are used. |
650 |
* Services databases have been made portable; they can be moved from one |
651 |
machine / CPU type to another safely. |
652 |
* Services should now be happier about compiling under OS/2 and various |
653 |
different Unices. |
654 |
* Services now gets time zone information from the system rather than |
655 |
requiring it to be defined in config.h or given on the command line. |
656 |
|
657 |
|
658 |
------------ |
659 |
Version 3.3: |
660 |
------------ |
661 |
Version 3.3 is primarily a maintenance release, getting a lot of bug fixes |
662 |
out and significantly optimizing the code. Other notable changes: |
663 |
|
664 |
+ MemoServ LIST and READ commands have new forms: LIST NEW and READ LAST. |
665 |
+ Nicknames now have a PRIVATE flag, preventing them from appearing in |
666 |
LIST results. |
667 |
+ Nicknames' last-seen times are now updated periodically while a nick's |
668 |
owner is online. |
669 |
+ Network reads and writes are now buffered. |
670 |
* Channel auto-voice is now enabled by default at an access level of 3. |
671 |
* NickServ STATUS output changed; the word "STATUS" is now included at |
672 |
the beginning of each line. |
673 |
|
674 |
|
675 |
------------ |
676 |
Version 3.2: |
677 |
------------ |
678 |
|
679 |
+ URL and E-mail address fields added to nickname and channel records. |
680 |
+ Frequency-of-use limit added to NickServ REGISTER command, much like |
681 |
the frequency-of-use limit on MemoServ SEND command. |
682 |
+ Services admins can now be set online (using the OperServ ADMIN |
683 |
command), and no longer need to be defined in config.h. |
684 |
+ OperServ RESTART command added to allow Services to be terminated and |
685 |
restarted without needing command-line intervention. |
686 |
* ~ at the beginning of a username (added by many IRC servers when an |
687 |
ident response is not received) is no longer ignored, which |
688 |
eliminates channel autokick problems on such servers. |
689 |
* IRC server message processing code modularized, which should simplify |
690 |
adding support for additional protocols. |
691 |
* More bugs squashed, as usual. |
692 |
|
693 |
|
694 |
------------ |
695 |
Version 3.1: |
696 |
------------ |
697 |
|
698 |
+ A limit can be set on the number of memos a nick can keep, and the |
699 |
limit can be varied or removed on a per-nick basis. |
700 |
+ A limit can be set on the maximum number of channels a nick can |
701 |
register. (This is not yet settable on a per-nick basis.) |
702 |
+ The permissible frequency of use of the MemoServ SEND command can be |
703 |
set to prevent (or at least limit) memo flooding; for example, the |
704 |
default configuration prevents users from using the SEND command |
705 |
more often than once every five seconds. |
706 |
+ Memo notification can be enabled or disabled on a per-nick basis. |
707 |
+ OperServ autokills can be set to expire after a certain period of time, |
708 |
and can default to either not expiring or to having a certain |
709 |
duration. |
710 |
+ Slightly increased protocol support: basic support for ircd.dal 4.4.x |
711 |
(x >= 15) is now present, as is support for the ircu GLINE command. |
712 |
Services should also work better with classic irc2.x servers. |
713 |
* Clone detection actually works now. |
714 |
* Many, many bugs fixed, as usual. Also removed a typo in os-help.c that |
715 |
somehow made it into the 3.0.10 distribution. |
716 |
|
717 |
|
718 |
------------ |
719 |
Version 3.0: (changes since 2.2.26) |
720 |
------------ |
721 |
|
722 |
+ ChanServ access levels can finally be customized! ChanServ has a new |
723 |
command, LEVELS, which allows the numeric access levels to be |
724 |
fine-tuned for each channel. There are 11 settings available, |
725 |
each of which corresponds to a particular ChanServ command or |
726 |
function; for example, one can set the level at which users are |
727 |
automatically opped, and one can define a level at which users |
728 |
are to be automatically voiced as well. |
729 |
+ Services admins can now view channel access and autokick lists and |
730 |
nickname access lists. |
731 |
+ Read-only mode can now be set (and unset) both from the command line |
732 |
and during operation. |
733 |
* Channel access lists may now only contain registered nicknames; this |
734 |
allows Services to run much faster and simplifies channel access |
735 |
checks. |
736 |
* Numerous bugs, memory leaks, and potential security holes squashed. |