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