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