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