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