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