forked from DALnet/bahamut
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
478 lines (423 loc) · 19.7 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
Changes for 2.0.7:
------------------
Kobi Shmueli (1):
Fixed a bug on sendto_channel_butserv_me() function (src/send.c) The bug causes Bahamut to hide mode and topic changes even if the channel isn't in auditorium mode.
Changes for 2.0.6:
------------------
Kobi Shmueli (5):
Added SVSTAG command to let services add "tags" to users.
Added cmode +A (Auditorium mode).
Auditorium mode fixes (cmode +A)
Changed SVSTAG to send/receive umodes in text and fixed incorrect and missing comments.
Changes to deal with bogus akills
Ned T. Crigler (2):
Fix 63 character hostname truncation.
Fix pasteo in find_userban_exact.
Changes for 2.0.5:
------------------
Juan Baez (1):
Remove extra code on s_conf.c - bahamut issue #6 https://github.com/epiphani/bahamut/issues/6
Ned T. Crigler (1):
Don't truncate long hostnames.
phreakshow (1):
Update include/config.h
Changes for 2.0.4:
------------------
Ned T. Crigler (1):
Add the WEBIRC command.
William Pitcock (6):
res: portability improvements for uclibc
.gitignore: add include/setup.h.in.
include: remove setup.h.in.
ircd: clean up compiler warnings using -Wall
dh: avoid possible integer underflow using type enforcement.
ircd: various warning cleanups and type enforcement enhancements
Changes for 2.0.3:
------------------
Ned T. Crigler (1):
Fix va_list bug in sendto_all_servmask.
epiphani (1):
Enable CIDR bans by default.
Changes for 2.0.2
-----------------
Ned T. Crigler (4):
Clear dlerror() and ensure that dlsym never returns NULL
Fix identd connections on FreeBSD.
Make /who without any flags parse IP addresses and CIDR.
Remove references to utmp.h and utmp.
epiphani (1):
Updated version.c.SH
Changes for 2.0.1
-----------------
Kobi Shmueli (2):
Fixed the m_topic() SIGSEGV bug I introduced on Bahamut 2.0.0.
Added NO_LOCAL_CIDR_CHANNELBANS define.
Ned T. Crigler (1):
Fix compilation for FreeBSD 4
epiphani (2):
Fix crash in sendto_all_servmask when using x64 architectures
Remove legacy convert_conf tool
Changes for 2.0.0
-----------------
Emilio Escobar (4):
Fix SIGSEGV in vsprintf when compiled in 64-bit
Added check for Linux to use /dev/urandom instead of /dev/random. BSD /dev/random does not block like it does on Linux.
Fixed va_free statements and modified prefix_buffer to use copy of va_list to keep original defined.
Added needed va_end
Juan Baez (1):
Fixed problem with initconf() where the function would not call fclose after it was done with the config file.
Kobi Shmueli (2):
Re-added SVSNOOP to let services temporary disable all o:lines on a given server.
Support for nick!user@host topics, requires capab NICKIPSTR.
Ned T. Crigler (24):
Add NICKIPSTR capability.
Move zero IP checking into clones_add/clones_remove.
Add cipntoa, a function to return a client's IP address as a string.
Introduce the possibility of multiple address families.
Make clones.c support non-IPv4 addresses.
Refactor the functions in s_auth.c in preparation for IPv6 client support.
Refactor the functions in s_bsd.c in preparation for IPv6 client support.
Allow IPv6 clients to connect to the server.
Change the resolver to use a larger maximum hostname length.
Use improved hashing algorithms in the resolver.
Refactor the functions in res.c in preparation for IPv6 support.
Make resolving IPv6 hostnames work for clients.
Fix some problems found on FreeBSD 6.4
Fix relaying of NICKIPSTR NICK messages.
Fix some issues when receiving a numeric IP address from a server.
Reindent and cleanup lookup_confhost.
Allow connections to and from IPv6 servers.
Allow colons in klines.
Add bitncmp and inet_parse_cidr.
Add CIDR support to channel bans, O:lines and I:lines.
Add IPv6 CIDR support to /who and /rwho.
Add IPv6 CIDR support to klines.
Silence some warnings found on FreeBSD 8.2
Fix various problems with non-standard build configurations.
epiphani (6):
Fix compatibility with gcc 2.95 in zlink header include order
Update 005 numeric with +S channel mode
Fix misspelled file name
Allow Opers to view the state of +l and +k from outside the channel
Don't allow banned users to change topics on -t channels.
Update patchlevel. This is 2.0.0
Changes for 1.8.9
-----------------
Kobi Shmueli (2):
Made make install copy make-cert.cnf to INSTALL_DIR.
Fixed a memleak bug on SVSHOST if used twice on the same user (reported by DiAvOl).
Ned T. Crigler (1):
Fix safe_ssl_read/safe_ssl_write to return -1 for EWOULDBLOCK/EAGAIN.
epiphani (4):
Fix regression in make install
Fix badly declared bircmodule_free() in hooks header
Update build_version for more common version string
Significant update of autoconf/configure scripts
Changes for 1.8.8
-----------------
epiphani (2):
Fix possible null dereference in m_nick
Fix Makefile for BSD, and the lack of -i in sed
Changes for 1.8.7
-----------------
Kobi Shmueli (19):
Added SSL initizalation and rehashing stuff
Added the needed changes for SSL to acutally work
Added flags support for the port block and mark SSL users with SSL on the umode +c notice
Added make-cert.sh & make-cert.cnf to create the server certificate
Added SSL umode/cmode/flag
Let users/opers message +o users even if the sender is +R
Fixed NO_USER_STATS to allow /stats from u:lined servers
Rakarra's opernick patch
typo (UNKINE --> UNKLINE)
Let server admins set a maxrecvq per class block (take #2)
Added SVSPANIC (Stops users from sending commands to services).
Make kill -HUP remove all throttles.
Added umode +C
Re-added CHANKILL from the old 1.8.4-trunk (I think Quension wrote it).
Changed SVSHOLD to support channels.
Let SVSCLONE override local clone limits too.
Let services change hosts (take #5)
dccallow fix
Re-added the SERVICESHUB sutff with conf flags
Ned T. Crigler (2):
Force the cached banserial of a user to be updated on a SVSNICK.
Remove the use of ircsprintf.
epiphani (6):
Update docs to reflect SSL configuration support
Move make-cert tools into the tools directory
Fix up some templating and configure script stuff to make SSL tools install cleanly
Allow port definitions that do not perform DNS or ident checks.
Update notifcations for failed OPER attempts
Update TODO and Patchlevel. This is 1.8.7.
Changes for 1.8.6
-----------------
- Fix msg_has_ctrls() so it doesn't block non-control characters.
Changes for 1.8.5
-----------------
- Fixes for x64 - this is a combination of Kobi's work and my own.
- Fixed m_part() and m_quit() to ignore part/quit reasons from squelched users.
- Fixed compiler errors with gcc4.
- Changed a debug message that could leak servers' IPs to ADMIN_LEV. Thanks key!
- Fix configure tests for zlib removal.
- This patch is intended to mark SVSHOLDs as SBAN_SVSHOLD to stop them from being removed by a kill -HUP
- Fix several small issues where IPs would be displayed when they shouldnt be, from Kobi ([email protected])
- Do not display uplink of ulined servers, from Kobi ([email protected])
- Fix slight errors in m_who argument parsing, from kobi ([email protected])
- Do not display warnings about juped servers attempting to commit, from Kobi ([email protected]).
- Fixed m_invite to honor umode +R and silence restrictions.
- Two small rwho fixes to option parsing, from Kobi ([email protected])
- Add hooks for several events
- Remove zlib from the distribution - rely on the library provided by the system.
Changes for 1.8.4
-----------------
- Fixed recursive server removal for non-NOQUIT links
- Fixed TS desync during nick changes
- Fixed RWHO reporting wrong channel member flags
- Fixed RWHO limit handling during clone searches
- Fixed mangled SET LCLONES reply
- Fixed CTCP flud trips on CTCP ACTIONs (from scatterbrain)
- Fixed cmode +j 0 sync bug (again)
- Fixed crash when conf file doesn't exist on rehash
- Fixed conf include directive parsing
- Fixed non-hubs trying to autoconnect to multiple servers
- Fixed incorrect (R)WHO +t description in help
- Fixed motd timestamp handling (from scatterbrain)
- Fixed duplicate link reporting for Ulined servers
- Fixed numeric 338 colon placement
- Fixed trailing spaces added to AWAY messages
- Fixed channel modes not showing both +s and +p
- Fixed a race condition that could lead to crashes under flood load
- Fixed WHO incorrectly handling CIDR searches
- Fixed crash during bad server introductions
- Fixed an obscure bug with remotely targeted commands and local clients
(from toucan)
- Fixed misc conf parsing issues (from GeniusDex)
- Fixed unknown connection reporting in LUSERS
- Fixed LIST C> not working at all
- Fixed memory leaks in SVSHOLD and LIST options
- Fixed busy loops with the epoll socket engine
- Fixed LIST wildcard mask detection
- Fixed autoconnects being mysteriously disabled during conf changes
(from Mark Rutherford)
- Fixed autoconnects being used after deletion in some cases
- Fixed conf file not being found when ircd run from relative paths
(from Azoff)
- Fixed potential channel hash DoS (from Martin Mikkelsen)
- Fixed channel ctcp flood checks ignoring whether the flooder could speak
(from toucan)
- Increased channel ban list to 200 entries
- Increased channel invite list to 100 entries
- Increased channel exception list to 100 entries
- Increased WHOWAS cache to 8192 entries
- Removed WATCH and DCCALLOW limits for opers (from wshs)
- Removed 2-user minimum default for LIST filters
- Removed support for wildcard nick targets in remotable commands
- Changed join rate warnings to show IP instead of hostname
- Changed oper access flag * to include everything
- Changed failed link messages to provide more info to +A opers
- Changed cmode +c to block all control codes (except CTCP and ISO-2022)
- Changed RPL_TIME to include raw timestamp
- Changed ident handling to ignore encrypted pidentd responses
- Changed WATCH to apply flood penalties to repeat list requests
- Changed failed oper attempt notices to be more useful (from Unim4trix0)
- Changed ERR_NOTREGISTERED text to avoid confusion with svsheld nicks
- Added oper access flags for umodes ydb
- Added string probability calculation to RWHO
- Added automatic rejection of certain proxy types
- Added local storage system for klines, making UNKLINE work as expected
- Added CHECK NICK <nick> for opers to find sqlines/svsholds
- Added .rar to DCCALLOW
- Upgraded zlib to 1.2.3
- Return an error on +R send to -r clients
- Fixed watch status update not being sent to local users on SVSNICK
- Fixed a bug when source is a server on INFO
- Fixed dcc allow's handling with quoted filenames
- Changed join rate throttling (cmode +j) implementation
- uses a token bucket with debt to better handle distributed floods
- default setting for -j is now 8:6 (was 8:4)
- +j limits are now 2-20 joins, 1-60 seconds, ratio of 1/8 to 2/1
- Reworked memory accounting:
stats z shows short summary
stats Z shows detailed reports
MEMTRACE define in config.h to debug memory leaks, adds to Z report
- Changed general connection reporting format to reduce ambiguity
(affects stats L, trace, etc):
servers: name[host]
clients: nick!user@host
unknown: name([F]ident@host)
where name is a nick or "<unnamed>"
where F is:
? identd lookup in progress
+ valid identd response
- no identd response (ident is "unknown")
- Reworked m_message(). Behavior changes:
- corrected error responses
- error responses only sent for PRIVMSG, not NOTICE
- #hostmask target support removed
- no wildcard restrictions on $servermask target
- $$servermask target is now identical to $servermask
- U:lined clients talk through SILENCE
- RPL_AWAY response sent by sender's server, not recipient's
- services-related behavior controlled by config.h
(PASS_SERVICES_MSGS, SUPER_TARGETS_ONLY)
- Server protocol changes:
Shortform commands are used for non-ULined links
NS CS MS RS OS HS SS
Changes for 1.8.3
-----------------
- Fixed rehash bug with specific conf changes that caused memory
corruption and crashes
- Fixed a possible buffer overflow issue in oper hostmasking
- Fixed solaris devpoll socket engine logic problems.
- Fixed class reference counting errors.
- Fixed a bug with cmode +j propagation on resync
- Added a second set of join counters to send warning notices
to +d opers when the default thresholds are met. Still sends
a throttle notice when cmode +j thresholds are met.
- Changed ERR_BANLISTFULL to respond depending on which list
(+b/+I/+e) is full. From Unim4trix0 ([email protected]).
- Readded clone limiting (now better!), see doc/clones.txt
- Range limiting for cmode +j args (static 4:2 - 60:60, rate 1/8 - 2/1).
- Fixed spamming redudant cmode changes.
- Fixed bad handling of bogus oper messages (from Zeke Gomez).
- Fixed rehash issue with module blocks.
- Fixed samode with no mode arguments choosing one at random for you :)
- Increased throughput on data sent to clients.
- Changed ERR_CHANNELISFULL to respond depending on which limit
(+l/+j) is reached. From Unim4trix0 ([email protected]),
discovered by Watchminister ([email protected]).
- Changed cmode +O join rejection to use ERR_INVITEONLY numeric.
- Enabled umode +s (oper kills) for users, disabled +g (useless).
- RWHO now sports clone and joined channel awareness.
- Added flags token to allow blocks, see doc/reference.conf
- Allow blocks with passwords are now hidden from nonopers in /stats I
Changes for 1.8.2
-----------------
- fixed entropy generation on OpenBSD and cleaned up status messages
(from Mark19960)
- fixed cosmetic error in /stats C reply
- fixed autoconnect blast when connect->port was specified but not
class->connfreq (from Mark19960)
- fixed crash on /stats request from a server (from Mark19960)
- fixed invite exceptions not working at all (from wshs)
- fixed ban exemptions not affecting bquiet (from wshs)
- fixed -e/-I sync failure during netbursts of older channels
- tweaked reference.conf
- corrected new find_port() check
- now removing simbans (restrict blocks) on rehash (from Ballsy)
- fixed cosmetic errors in nick collision kills (from Goplat)
- Converted old "X line" messages to "X block"
- Changed stray free() to MyFree()
- Corrected a tolower() reference I missed the first time around
- Removed ancient prototype causing compile failures with gcc 3.4
- Fixed 005 WATCH token (was using incorrect number)
- Removed temporary debug code causing compile failure when !USE_SYSLOG
- Finished correcting same port, multiple IP binds
- stats L shows user IPs again (but still hides opers)
- Numerics 477 and 487 no longer hardcoded dal.net
- Fixed numeric responses for certain PRIVMSG/NOTICE targets
- Updated reference.conf and template.conf with additional bits and better
documentation of Allow block quirks
- Tweaked handling and display of removed-but-not-yet-deleted conf entries
after a rehash (Oper, Connect, Class)
- Oper block host entries are now matched against the user@host that would
appear on IRC (previously what they matched was a bit convoluted)
- Corrected class maxusers handling -- applies to the class, not the allow
block
- Updated 004 and 005 numerics
- trace now shows the class list again
- bquiet is now using deferred cache concept from ratbox to deal with ban
exemptions correctly
- Ban exemptions are now marked with type and checked during nick_is_banned()
- Begin unbreaking redundant ban check -- will take at least one more release
to complete
- Cleaned up related channel ban code
- CHOOK_10SEC is now called when it should be (from wshs)
- Unbroke modules command handling (from wshs)
- Fixed modules load crash when there was no Modules block in ircd.conf
(from wshs)
- Fixed SVSKILL crash on no parameters (from Zeke Gomez)
- Compile fixes for DNS_DEBUG and DEBUGMODE (but don't use DEBUGMODE)
- Compile fix for missing LINE_MAX
- Spellcheck: virii -> viruses (from The List)
- HIDE_LINKS functionality inverted and attached to show_links token in
Options block
- NO_CHANOPS_WHEN_SPLIT functionality inverted and attached to allow_split_ops
token in Options block
- Merging duplicate Allow blocks during rehash to avoid admin confusion
- Boolean Options block items can now be disabled by rehash
- Fixed "servtype hub" causing certain previously specified options to reset
to defaults
- Fixed a loop error report that was broken when it was introduced 11 years ago
- Ignoring SVSMODE +o/O attempts (not handled correctly)
- Repaired showing of +s channels in LIST to +A users
- Fixed and document DENY_SERVICES_MSGS (from wshs)
- Corrected structfunc.h prototypes for modules (from wshs)
- Added SVSMODE -e/-I support for channels
- Fixed .maxclients not being read on startup
- Rewrote m_invite(), behaves logically now
- Enabled cmode +j (joins:secs rate limit)
- Fixed resolver cache corruption (and crash), mostly affected newer RedHat
thanks huni and Sarcast for patience, analysis, and cores
- More conf documentation clarity
- Unresolved class reference in conf now reports class name
- Updated RPL_VERSION, RPL_ISUPPORT; now running from a cache in s_debug.c
- Removed sockhost data from RPL_YOURHOST, since it was always zeroed
- Squished more memory corruption bugs
thanks Glitch and dev0 for more patience and cores
- Module support is now unconditionally disabled under OS X
- Build system now handles FD_SETSIZE properly when using the select engine
- Internal maxconnections and SET MAX handling is rational again
ircd can run with as few as 20 FDs and support 10 clients
- Ripped out obsolete sendto_match_servs()
- Added support for non-noquit servers in #define NOQUIT
- Updated zlib to version 1.2.1
- Restricted stats q/Q/g to opers
- Show IPs in stats C to services and local +A
- Added RWHO, see /rwho ? and doc/pcrepattern.html for info
- Set +k and +s umodes to opers only.
- Fixed a bug in m_trace that caused cores when issuing a /trace when
connecting to a server.
- ERR_WHOSYNTAX reply changed to ERR_NOPRIVILEGES for non opers trying oper
restricted who, but using correct syntax
fixed by Unim4trix0 ([email protected])
Changes for 1.8.0
-----------------
- Removed backwards compatibility for:
- NOQUIT
- UNCONNECT
- TSMODE
- NICKIP
All of these modes are now REQUIRED.
- Removed Code and defines for outdated stuff:
- FOLLOW_IDENT_RFC
- NO_IDENT_SYSTYPE_OTHER
- NO_MIXED_CASE
- OLD_Y_LIMIT
- USE_REJECT_HOLD
This code is no longer used.
- Removed define options for:
- CLIENT_COUNT
This code is now manditory.
- Completely rewrote configuration structures.
- Rewrote methods for connecting to servers.
- Outdated Link structure config linking, now linking directly from
aClient(user/serv) structures to appropriate conf strucutures.
- Backported lucas's aListener structure and routines from defunct
bahamut-devel tree.
- Implemented +I/+e channel lists - thanks seddy.
- Ports now can be opened and closed on /rehash
- config file format changed to bind-style
- klinefile outdated
- replaced dbufs with sbufs - shared buffers.
- removed old High Traffic Mode (HTM) code
- config option block added to outdate use of ./config script
- fixes for solaris and OSX compatibility
- Added support for /dev/poll and epoll socket engines - thanks seddy.
- Moved m_server and m_dkey into m_server.c
- Moved m_stats into m_stats.c
- Fixed memory counting routines. Thanks Quension!
- Outdated modules.ini and all inifile uses - now a modules {} conf block
- Updated m_module to allow non-admin viewing of hooks and loaded modules
- Added module hooks for user and channel targetted privmsgs