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