Merge fix for logging of mode changes by charly.
[jelmer/ctrlproxy.git] / NEWS
1 Ctrlproxy 3.0.9 UNRELEASED
2
3   BUG FIXES
4
5     * Use port numbers rather than service names because not all 
6       systems have ircd and ircs defined. (#209, Jelmer Vernooij)
7
8     * Fix compilation on Solaris. (#210, Jelmer Vernooij)
9
10     * Provide replacement for daemon() on Solaris. (#213, Jelmer Vernooij)
11
12     * Return hostmask of client itself rather than hostmask of
13       server when referring to the user. (#214, #166, #69, Jelmer Vernooij)
14
15     * Handle 308 and 309 replies. (Jelmer Vernooij)
16
17     * Don't send : for last argument in RPL_MYINFO, consistent with IRC
18       servers. (Jelmer Vernooij)
19
20     * Fix netsplits generated when connection to a network is lost.
21       (Jelmer Vernooij)
22
23     * Fix crash in on_transport_log when no error is set. (#219,
24       Jelmer Vernooij)
25
26     * Fix crash in log_custom when the network is disconnected. (#212,
27       Jelmer Vernooij)
28
29     * Reduce memory usage by storing index for linestacks. (Jelmer Vernooij)
30
31     * Save nickserv passwords as part of 'saveconfig'. (Andreas Schneider)
32
33     * Fix transport_send_line crash. (Joe Bormolini, #402503)
34
35     * auto-away: when time limit set to <30, still register the client limit
36       hooks instead of disabling auto away completely. (Joe Bormolini)
37
38     * Process first argument to 005 responses. (Joe Bormolini)
39
40   FEATURES
41
42     * Provide Python bindings for the main library code. Mainly used for 
43       unit testing at the moment, but will also become available to 
44       ctrlproxy users at some point. (Jelmer Vernooij)
45
46     * Processes started by ctrlproxyd are now watched, and their status 
47       is reported when they exit. (Jelmer Vernooij)
48
49 For 3.0.8 and earlier, unless otherwise indicated, all changes made by Jelmer
50 Vernooij.
51
52 Ctrlproxy 3.0.8 2008-12-06
53
54   FEATURES
55
56     * Only warn about inconsistency in server channel modes at start-up, 
57       rather than every time a mode is being used.
58
59     * Allow two connections to the same network. (#151)
60
61     * Support GSSAPI authentication for SOCKS.
62
63     * Support for multiple users using a system-wide daemon
64       (ctrlproxyd) that can be started at system start-up. 
65       (#25)
66     
67     * Network configuration can now also be specified in 
68       ~/.ctrlproxy/config.
69
70     * Allow setting default-nick, default-username and 
71       default-fullname in [global] section.
72
73     * Linestack is not disabled completely after a single 
74       write fails.
75
76   BUG FIXES
77    
78     * Support 901 response codes.
79
80     * Don't write to nickserv file either if autosave=false.
81
82     * Avoid unknown command warning when sending PASS.
83
84     * Recognize UHNAMES and ESILENCE 005 parameters.
85
86     * Properly track nick names when doing fallback.
87
88     * Disable autosave by default.
89
90     * Properly spoof netsplit when ctrlproxy loses the connection to the
91       server.
92
93     * Fail gracefully if getpeername() doesn't work.
94
95     * Don't crash when no argument is specified to STOPLISTENER. (#201)
96
97     * Fix segfault on FreeBSD because it doesn't like freeaddrinfo(NULL). 
98       (#202)
99
100     * Support 290 (CAPAB) response codes.
101
102     * Fix client-limit for auto-away. (Alex Stansfield)
103
104     * Send channel limits in mode. (#200)
105
106     * Don't crash on empty messages from client. (#206)
107
108   INTERNALS
109
110     * Use generic storage for MODEs.
111
112 Ctrlproxy 3.0.7 2008-06-14
113
114   FEATURES
115
116     * Add 'create-implicit' option.
117
118   BUG FIXES
119
120     * Handle client-specific admin commands being run without a client 
121       more gracefully.
122
123     * Be less verbose about unredirectable responses.
124
125     * Avoid usage of blocking /dev/random for SSL code. (Andreas Schneider)
126
127     * Move time in ctcp requests. (#197)
128
129     * Support storing ban exception lists, realname ban lists and 
130       join throttling (MODE +e, MODE +d and MODE +J) as supported by hyperion.
131
132     * Fix handling of channel and user modes. (#196)
133
134     * Avoid disconnecting clients that are still waiting for a connection. 
135       (#198, David Ford)
136
137     * Fix parsing of ``learn-nickserv'' setting.
138
139     * Support listening on IPv6.
140
141     * Handle 326 and 328 WHOIS replies.
142
143   INTERNALS
144
145     * Import non-blocking GIOChannel improvements from libsoap into 
146       the SSL wrapper code. (Andreas Schneider)
147
148
149 Ctrlproxy 3.0.6 2008-04-13
150
151   IMPROVEMENTS
152
153     * Add report-time-offset setting.
154     
155     * New settings ``port'', ``linestack'', ``logging'', ``password'',
156       ``default-network'', ``auto-away-message'', ``auto-away-nick'', 
157       ``auto-away-enable'' and ``auto-away-time''.
158
159     * Simplify files in networks/ further by storing keys in ~/.ctrlproxy/keys 
160       and having a list of channels to autojoin. (#76)
161
162     * Only update autojoin settings when ctrlproxy is completely logged in. 
163       (#113)
164
165     * Increase the debug level at which messages about joins/parts are 
166       logged.
167
168     * Put linestack state data in separate files. This will make it possible 
169       in the future to remove some of the state files.
170
171     * Avoid data overhead when responding to /NAMES out of cache.
172
173     * Add --check-running option.
174
175     * The pid file is now read to check whether another instance of 
176       ctrlproxy is already running.
177
178     * ``bind'' is now also accepted in the global section of the network 
179       configuration. (#194)
180
181     * New configuration variable ``autocmd'' in network configuration 
182       can contain a list (semi-colon-seperated) of commands to send when
183       logged in to a server. (#152)
184
185   BUG FIXES
186
187     * Improve handling of empty pid files. (#186)
188
189     * Handle out of disk space correctly. (#91)
190
191     * Don't "forget" listener password.
192
193     * Don't add all existing networks to autoconnect list. (#90)
194
195     * Fix a couple of minor memory leaks.
196
197     * Store CTCP ACTIONs for replication.
198
199     * Warn about unknown networks listed for listeners rather than crash.
200
201     * Fixed segfault when no conversion is being used. Patch by Ashish Shukla.
202
203     * Don't use AI_ADDRCONFIG if it's not provided by the system.  (#179)
204
205     * Fix segfault when address type is not reachable at the moment. (#177)
206       Patch by wahjava@gmail.com.
207
208     * Abort startup when one or more listener ports are already in use. 
209       (#175)
210
211     * Fix crash bug when client shuts down correctly. (#176)
212
213     * Allow multi-character prefixes for users in channels.
214
215     * Support EXTBAN parameter in 005 lines.
216
217     * Handle 008 responses.
218
219     * Cache more than just the first result returned in RPL_USERHOST.
220
221     * Fix hostmask and response code returned by USERHOST in administration 
222       network.
223
224     * Fix timestamp marshalling. (#180)
225
226     * Correctly recognize error responses to WHOIS and WHOWAS. (#136)
227
228     * Actually remove networks from disk when they have been removed in 
229       the configuration.
230
231     * Parse removals of banlist entries correctly.
232
233     * Correctly generate prefix when replicating users that have more 
234       than one mode set. (Martin Meredith)
235
236     * Support NICKSERV and CHANSERV commands when tracking messages.
237
238     * Handle incomplete PREFIX lines. (#192)
239
240     * Re-open log files when HUP signal is received to allow 
241       rotation. (#183)
242
243     * Avoid writing nick changes and quits to nick-specific files
244       when not in a query with a user. (#173)
245
246     * Fix occasional repeating of lines. (#75)
247
248     * Fix outgoing SSL connections. (#128)
249
250     * Send topic change time if known.
251
252     * Support 249 response code.
253
254   INTERNALS
255
256     * A simple, single API is now used for managing modes.
257
258 Ctrlproxy 3.0.5 2007-12-07
259
260   IMPROVEMENTS
261   
262     * Integrate auto-away module into the core.
263
264     * New settings ``autosave'', ``replication'', ``learn-nickserv'', 
265       ``learn-network-name'', ``admin-log'', ``admin-user''.
266
267     * Warn about unknown configuration file settings. (#15)
268
269     * Support prefixing all lines with the time ("report-time = always"). (#169)
270
271     * Allow using expansions in log file names for irssi. (#149)
272
273   BUG FIXES
274
275     * Handle 275 response correctly.
276
277     * Fix memory error. (#170)
278
279     * Fix several memory leaks.
280
281 Ctrlproxy 3.0.4 2007-11-24
282
283   IMPROVEMENTS
284
285     * Add ctrlproxy-admin command for command-line access to the admin network.
286
287     * Send message to the client when ctrlproxy connects to the network.
288
289     * Announce number of clients/channels during client login. (#162)
290
291     * Add "set" command in the administration interface, including 
292       initial settings "log_level", "motd-file" and "report-time". (#6)
293
294     * Add "default-network" setting.
295
296   BUG FIXES
297     
298     * Don't allow disconnect of admin network. (#164)
299
300     * Clearer error messages during disconnect.
301
302     * Handle ping timeouts from server. (#158)
303
304     * Don't crash when network of listener goes away. (#168)
305
306     * Don't abort when sending colon to listener. (#167)
307
308     * Handle 263 response correctly.
309
310     * Properly send non-data lines when using repl_lastdisconnect. (#146)
311
312     * No longer "skip" users on reconnect. (#146)
313
314     * Check for empty argument to /CTRLPROXY BACKLOG (#132)
315
316     * Integrate some more standard replication backends. 
317
318     * Allow specifying a network in the password, separated by a colon (:). 
319       (#11)
320
321     * Integrate listeners into the core.
322
323     * Reconcile log_custom and log_irssi. (#114)
324
325     * Integrate socks support into listener code. Socks connections 
326       can now be accepted at the same port as other connections.
327
328     * Allow configuring a single listener in ~/.ctrlproxy/config.
329
330     * Several simplifications of the configuration file.
331
332     * Recognize NS as command for NickServ (#145)
333
334     * Start checking plugin versions.
335
336     * Open log file if stdout goes away.
337
338     * Make /AWAY with empty argument mark as unaway. (Adeodato Simó)
339
340     * Automatically mark as unaway when a client connects and auto-away/no_client=true. (#150)
341
342     * Add support for handling additional 005 parameters: HCN.
343
344     * Compress /NAMES lines (#123).
345
346     * Bail out when invalid arguments are specified on the command-line
347       (Emanuele Giaquinta <e.giaquinta@glauco.it>)
348
349     * Make connect to networks non-blocking. (#133)
350
351     * Support IRCD 005 parameter. (#160)
352
353     * Redirect DCC messages to clients. (#163)
354
355   NEW FEATURES
356
357     * New configuration option for auto-away: "client_limit". If set,
358       the connection will never be changed to away if there are more
359       than client_limit clients connected. Supersedes "only_noclient";
360       to achieve the effect of only_noclient=true, set client_limit=0.
361       (Adeodato Simó)
362
363   LICENSING
364
365     * CtrlProxy is now licensed under the GNU GPLv3.
366
367   INTERNALS
368
369     * Moved some common logging code to the core.
370
371 Ctrlproxy 3.0.3 2007-07-22
372
373   BUG FIXES
374
375     * Handle 470 response correctly.
376
377     * Recognize supported channel / user modes correctly.
378     
379     * Properly store topic_set_time and topic_set_by in the 
380       linestack. (#108)
381
382     * Reset idle time when AWAY is used in auto-away (#121)
383
384     * Fix crash when using /CTRLPROXY without arguments
385
386     * Don't update config when we're disconnecting during shutdown. (#113)
387
388     * Handle 354 response correctly. (#134)
389
390     * Handle responses after forced joins correctly. (#125)
391
392     * Handle 250 response correctly. (#138)
393
394     * Handle 263 response correctly. (#135)
395
396     * Handle 330 response correclty. (#137)
397
398     * Handle 403 response correctly when sent in response to a MODE 
399       query. (#139)
400
401     * Fall back to user name if real name is empty. 
402
403     * Handle 479 responses correctly. (#142)
404
405     * Only send PRIVMSG and NOTICE lines during the BACKLOG command. (#143)
406
407     * Support SILENCE without arguments. 
408
409   INTERNALS
410
411     * Use GIOChannels for reading the motd. 
412         (patch by Emanuele Giaquinta <e.giaquinta@glauco.it>)
413
414   PORTABILITY
415     
416     * Include netinet/in.h in src/utils.c and src/network.c. Required 
417       for building on FreeBSD. Reported by underlig.
418
419
420 Ctrlproxy 3.0.2 2007-04-15
421
422   BUG FIXES
423
424     * Support redirecting 396, 318, 437 and 330 replies. (#84)
425
426     * Fixed redirect warnings for 251, 252, 253, 254, 265 and 266.
427
428     * Don't abort when trying to send auto-AWAY while network is 
429       disconnected.
430
431     * Handle CTRLPROXY command without any arguments. (#92)
432
433     * Fixed crash when using SSL support. (#83)
434
435     * Add support for storing topic set time and topic set by nick (#97).
436
437     * Fixed CTCP source reply URL. (#86)
438
439     * Hide assertion in g_key_file_free in free_config when a network has no associated file (patch by exg)
440
441     * Fix coredump with --init when the default config cannot be opened (patch by exg)
442
443     * Fix crash when CHARSET command fails (#89, #96)
444
445     * Fall back to default charset if client charset can't be set 
446         (patch by Emanuele Giaquinta <e.giaquinta@glauco.it>)
447
448     * Fix use of %S segfault in log_custom. (#111)
449
450     * 005-lines are now forwarded to the end-client in a more 
451       structural manner. (#94)
452     
453     * Properly expand target in log_irssi if it is a comma-separated list (#9)
454         (based on patch by Korbinian Rosenegger)
455
456     * Properly expand target in log_custom if it is a comma-separated list (#9)
457         (patch by Emanuele Giaquinta and Korbinian Rosenegger)
458
459     * Don't append extra colon before RPL_TOPICWHOTIME (Korbinian Rosenegger)
460
461     * Adding timed backlog in BACKLOG command without a channel 
462       (Korbinian Rosenegger)
463
464     * Handle disconnects of clients properly (#108)
465
466     * Fix handling of non-UTF8 characters in linestack_file.
467
468     * Don't use CHARSETs by default (#117).
469
470     * Never send origin to the server (#122).
471
472     * Added support for 307 responses. 
473
474   FEATURES
475
476     * More advanced help support
477
478     * Add LOG_LEVEL command (#101)
479
480     * Add 'make uninstall' (#95)
481
482     * Do some more config checking (#102)
483
484     * Show disconnect reason in admin network (#100)
485
486     * Add support for handling additional 005 parameters: MAXCHANNELS,
487         NICKLEN, MAXBANS, MODES, NICKLEN, MAXBANS, TOPICLEN, KICKLEN, 
488         AWAYLEN, MAXTARGETS, WALLCHOPS, WALLVOICES, RFC2812, PENALTY,
489         FNC, SAFELIST, USERIP, CNOTICE, KNOCK, VCHANNELS, WHOX, CALLERID,
490         ACCEPT, KEYLEN, USERLEN, HOSTLEN, MAXCHANNELLEN, 
491         MAXNICKLEN, DEAF, ELIST, MAXPARA, NAMESX, SECURELIST, WATCH
492         REMOVE, MAP, OVERRIDE, VBANLIST and SILENCE
493
494     * Print actual address that a listener bound to.
495
496   INTERNALS
497
498     * Remove is_private from line struct (#12).
499         (patch by Emanuele Giaquinta <e.giaquinta@glauco.it>)
500
501     * Implement ISON, USERHOST, WHO, WHOIS, JOIN, PART, AWAY for admin networks. (#99)
502
503   PORTABILITY
504
505     * Looks for check using pkg-config now.
506
507     * Fix handling of addresses when listening on FreeBSD. (#87)
508
509   DOCUMENTATION
510       
511       * Added more documentation to the help system. (#106)
512
513
514 Ctrlproxy 3.0.1 2007-01-04
515
516   BUG FIXES
517
518     * Logging for network state information has been simplified and been 
519       made less verbose.
520
521     * 324 and 329 replies are now cached.
522
523     * 352 and 315 replies are now (optionally) cached. The "max_who_age" 
524       setting can be set to the number of seconds that results should be cached.
525       This prevents "Excess Flood" errors when connecting using several xchat clients
526       at once. Can be disabled by setting max_who_age=0 (the default).
527
528     * Fixed bug in administration command (reported by Daniel Poelzleithner)
529
530     * Fix invalid assert in auto-away (reported by Daniel Poelzleithner)
531
532     * Fix rejoining parted channels on restart (#78)
533
534     * Fix erroneus toggling of "report-time" setting (#77)
535     
536     * Fix endless loop in logging system when debug level is 
537       set to 5 (reported by _static_).
538     
539     * listener configuration is no longer truncated at exit.
540
541     * Fix channel information not being replicated for the administration 
542       network.
543
544     * Allow ports different than 6680 in ctrlproxy --init. (#85)
545
546   PORTABILITY
547   
548     * Added replacement functions for g_file_{set,get}_contents, for those 
549       with GLib < 2.8
550     
551   DOCUMENTATION UPDATES
552
553     * Updated command documentation (thanks, Korbinian Rosenegger)
554
555     * Updated requirements
556
557   MINOR CHANGES
558
559     * Fixed several compiler warnings
560
561 Ctrlproxy 3.0    2006-12-08
562
563   This list is not complete. Several subsystems in ctrlproxy have been 
564   rewritten.
565
566   BUG FIXES
567
568     * NetBSD portability fixes. (Adrian Portelli)
569
570     * Properly support strict-rfc1459 comparisons.
571
572     * No longer depend on specific order of USER and NICK commands.
573
574     * Fixed 100% CPU usage bug.
575
576     * Fix large number of memory leaks.
577
578     * Fix crash bug in log_custom (Korbinian Rosenegger)
579
580     * Support 'true' RFC1459 string comparison.
581
582     * Respect CASEMAPPING sent by server.
583
584     * Support different NICK sent by client in replication.
585
586     * Make repl_* work when NICK sent by client differs from current NICK.
587
588     * Support mIRC and ksirc.
589
590     * Fix bug with setting PRIVATE too often.
591
592     * Fix issue with NickServ IDENTIFY'ing when connecting to server.
593     
594     * Fix problems with incorrectly added colons.
595
596   INTERNALS
597
598     * Reduce number of files generated by configure.
599
600     * Moved source control system to Bazaar (http://www.bazaar-vcs.org/)
601
602     * Use separate include files rather than one large one.
603
604     * Get rid of complicated filter class system.
605
606     * Several modules have been integrated into the ControlProxy binary 
607       to avoid (engineering) overhead.
608
609     * There now is a testsuite that tests some of the internal functions.
610
611     * Add 'debug' module for easier debugging.
612
613   NEW FEATURES
614
615     * Removed dependency on popt and libxml.
616
617     * Enhance custom_log (Alexander Wild).
618
619     * Add support for %B, %e and %Y in log_custom (Korbinian Rosenegger)
620
621     * Support CONNECT proxy command as used by irssi and other clients.
622
623     * Use new CtrlProxy-specific logging system. 
624       Logs go to ~/.ctrlproxy/log by default now when in daemon mode.
625
626     * nickserv is now "self-learning".
627
628     * Add socks module to allow connecting using SOCKS.
629
630     * Install default configuration that is used when the user 
631       does not have a local configuration.
632
633     * Support autogenerating a configuration using `ctrlproxy --init'.
634
635     * Uses GNUTLS now rather than OpenSSL.
636
637     * Remove linestack_memory and make linestack_file the default.
638
639     * Admin module can now also work as a seperate ('virtual') network.
640
641     * Make reconnect_timeout changeable (Alexander Wild)
642
643     * Add inetd-style client support.
644
645     * Support non-blocking connects. (Daniel Poelzleithner)
646
647     * Parse 005 line sent by server for PREFIX, CHANTYPES, NETWORK.
648
649     * Add ability to change NICK when away.
650
651     * Add help support in admin module (Daniel Poelzleithner).
652
653     * Allows connecting to networks on ~/.ctrlproxy/socket using 
654       unix domain sockets.
655
656     * Write out PID file.
657
658     * lots of other small improvements