21fc07e44bc5fc4047f52032e1fbeb78c915e141
[ircu2.10.12-pk.git] / ChangeLog
1 2000-04-15  Greg Sikorski <gte@atomicrevs.demon.co.uk>
2
3         * ircd/userload.c: change <sys/time.h> include to <time.h> for
4           portability.
5
6 2000-04-14  Kevin L. Mitchell  <klmitch@mit.edu>
7
8         * ircd/m_gline.c (mo_gline): d'oh, target isn't a numeric; use %C
9         and convert acptr...
10
11         * ircd/s_user.c: move gline_lookup function call into
12         register_user, where it'll have a username to lookup!
13
14         * ircd/m_gline.c: modify to utilize new sendcmdto_* series of
15         functions; also stuff send_error_to_client into return clauses
16
17         * ircd/m_jupe.c: modify to utilize new sendcmdto_* series of
18         functions; also use send_error_to_client where that makes sense
19
20         * ircd/jupe.c: modify to utilize new sendcmdto_* series of
21         functions; also use send_error_to_client where that makes sense
22
23         * ircd/gline.c: modify to utilize new sendcmdto_* series of
24         functions; also fix gline_lookup() to deal properly with remote
25         clients--boy, do struct Client and struct User need to be cleaned
26         up!
27
28         * ircd/ircd_snprintf.c (doprintf): a dest of &me is a server,
29         too...
30
31         * ircd/send.c: wrote sendcmdto_one(), vsendcmdto_one(), and
32         sendcmdto_serv_butone(), all utilizing the %v conversion of
33         ircd_snprintf()
34
35         * include/send.h: define IRC_BUFSIZE, max size of a message;
36         declare sendcmdto_one(), vsendcmdto_one(), and
37         sendcmdto_serv_butone()
38
39         * include/msg.h: define all the CMD_* constants needed to utilize
40         the new sendcmdto_* series of functions
41
42         * ircd/Makefile.in (SRC): list ircd_snprintf.c; run make depend
43
44         * ircd/gline.c: remove old, dead code.
45
46         * ircd/m_gline.c (mo_gline): disallow setting of global G-lines
47         unless CONFIG_OPERCMDS is enabled; disallow listing of all G-lines
48         (don't advertise proxies); remove dead code
49
50         * ircd/parse.c: oper handler for JUPE only lists jupes unless
51         CONFIG_OPERCMDS is enabled
52
53         * ircd/m_jupe.c (mo_jupe): don't compile mo_jupe() if
54         CONFIG_OPERCMDS is not enabled; we'll disable it in parse.c
55
56         * ircd/m_opmode.c (mo_opmode): if CONFIG_OPERCMDS is not enabled,
57         always return ERR_DISABLED
58
59         * ircd/m_clearmode.c (mo_clearmode): if CONFIG_OPERCMDS is not
60         enabled, always return ERR_DISABLED
61
62         * ircd/s_err.c: add error message to indicate disabled commands
63
64         * include/numeric.h (ERR_DISABLED): to indicate disabled commands
65
66         * doc/Configure.help: add documentation for CONFIG_OPERCMDS
67
68         * config/config-sh.in: add CONFIG_OPERCMDS, default both it and
69         CONFIG_NEW_MODE to 'y' for now
70
71         * ircd/gline.c (gline_list): fix a minor formatting bogon
72
73         * BUGS: since I fixed that bug, might as well mark it fixed.
74
75         * ircd/m_join.c: look up badchans with GLINE_EXACT
76
77         * ircd/m_gline.c: fix parc count problems; look up existing
78         G-lines with GLINE_EXACT; only set new lastmod when
79         activating/deactivating existing glines if old lastmod was not 0
80
81         * ircd/gline.c: forgot to copy the gline reason over; don't
82         propagate a gline with 0 lastmod if origin is user; add
83         GLINE_EXACT to force exact matching of gline mask
84
85         * ircd/ircd_snprintf.c (doprintf): forgot to deal with the zero
86         flag properly
87
88         * ircd/s_conf.c (find_kill): gline_find() takes a char *userhost,
89         but gline_lookup() actually takes a client--d'oh.
90
91 2000-04-13  Thomas Helvey <tomh@inxpress.net>
92         * ircd/IPcheck.c: Back port BLMet's bugfix from 2.10.10
93
94 2000-04-13  Greg Sikorski <gte@atomicrevs.demon.co.uk>
95
96         * ircd/whocmds.c: Don't make idle flag default in /who, to prevent:
97           "/who * x"
98           "Gte3 H*iwg Gte@212.49.240.217 :1 :0 I am the one that was."
99           (Found by Plexus).
100
101         * ircd/whocmds.c: Change idle time calc from socket idle to user
102           idle.
103
104 2000-04-13  Kevin L. Mitchell  <klmitch@mit.edu>
105
106         * config/aclocal.m4 (unet_CHECK_TYPE_SIZES): check size of void *,
107         too, for ircd_snprintf.c
108
109         * include/ircd_snprintf.h: documentation for ircd_(v)snprintf, in
110         comments; mostly descended from the Linux manpage for printf, but
111         also documenting the extensions.
112
113         * ircd/ircd_snprintf.c: NULL dest is equivalent to going to a
114         client; make 'q' be the same as 'L'; remove __inline__; only
115         define EXTENSION if HAVE_LONG_LONG is defined
116
117         * include/handlers.h: declare m_gline()
118
119         * ircd/parse.c: gline can be called by users, but it only lists
120         the glines.
121
122         * ircd/s_user.c (set_nick_name): resend gline if a remote server
123         introduces a glined client
124
125         * ircd/s_serv.c (server_estab): burst glines, too
126
127         * ircd/gline.c: fix up all the expire times to be offsets;
128         simplify gline_resend()
129
130         * ircd/m_gline.c: begin coding replacements for ms_gline(),
131         mo_gline(), and m_gline()
132
133         * ircd/gline.c (gline_add): allow *@#channel to work correctly;
134         also, prohibit local BADCHANs if LOCAL_BADCHAN not defined
135
136 2000-04-13  Greg Sikorski <gte@atomicrevs.demon.co.uk>
137
138         * tools/Bouncer/*: Add comments/documentation/tags.
139         * tools/Bouncer/*: Add debug defines, make task fork().
140
141 2000-04-12  Thomas Helvey <tomh@inxpress.net>
142         * ircd/s_err.c: Cleanup s_err.c make one table so we
143         don't have to do anything tricky to get an error string.
144
145 2000-04-12  Greg Sikorski <gte@atomicrevs.demon.co.uk>
146         * Add port bouncer for http (x/w)
147
148 2000-04-12  Kevin L. Mitchell  <klmitch@mit.edu>
149
150         * ircd/s_conf.c (find_kill): replaced call to find_gline() with a
151         call to gline_find(); also used GlineReason() instead of direct
152         reference to structure member
153
154         * ircd/m_join.c (m_join): replace bad_channel() calls with calls
155         to gline_find(name, GLINE_BADCHAN), and also check to see if gline
156         is active
157
158         * ircd/channel.c: nothing seems to be called anywhere...
159
160         * ircd/s_err.c: update a couple of replies to dovetail with new
161         semantics
162
163         * ircd/gline.c: begin complete re-implementation of gline.c along
164         the lines of the final design of jupe.c
165
166         * include/gline.h: begin complete re-implementation of gline.c
167         along the lines of the final design of jupe.c
168
169         * ircd/channel.c (mode_process_clients): fix "Deop of +k user on
170         %s by %s" message...
171
172         * ircd/ircd_snprintf.c: my new snprintf()-like functions
173
174         * include/ircd_snprintf.h: my new snprintf()-like functions
175
176 2000-04-11  Thomas Helvey <tomh@inxpress.net>
177         * ircd/IPcheck.c: removed old dead code
178         * ircd/s_user.c (send_user_info): removed non-standard
179           user not found message for userhost/userip
180
181 2000-04-11  Greg Sikorski <gte@atomicrevs.demon.co.uk>
182
183         * ircd/s_err.c: Added missing quotes to ERR_DONTCHEAT numeric.
184         * doc/p10.html: Work on chapter 4.
185
186 2000-04-10  Kevin L. Mitchell  <klmitch@mit.edu>
187
188         * ircd/channel.c (mode_parse_client): fix coredump on /mode
189         #foobar +o nosuchnick
190
191 2000-04-10  Perry Lorier  <Isomer@coders.net>
192         * BUGS: Added bug.
193
194 2000-04-09  Thomas Helvey <tomh@inxpress.net>
195         * include/IPcheck.h: fix prototype
196         * ircd/s_user.c: fix usage of IPcheck_remote_connect
197         * ircd/IPcheck.c: removed unused args
198
199 2000-04-09  Thomas Helvey <tomh@inxpress.net>
200         * include/IPcheck.h: add proto for IPcheck_expire
201
202         * ircd/IPcheck.c: Rewrote
203
204         * ircd/ircd.c: Add IPcheck_expire to main message loop
205
206         * ircd/s_user.c: Redo target hashing, refactor target code
207
208         * include/numeric.h: Cleaned up numerics, added which ones are
209         in use by other networks and what they are in use for.
210
211         * ircd/channel.c: cleaned can_join(), allow anyone through anything
212         if /invited, simplified the function.  Opers overusing OPEROVERRIDE
213         will get a message explaining to them not to cheat.
214
215         * ircd/m_join.c: cleaned up the various join functions, should be
216         a lot more efficient.  Still needs work.  Now assumes that s<->s
217         won't send it a JOIN 0.  Service coders - note this and tread with
218         care.
219
220         * ircd/m_stats.c: added Gte-'s stats doc patch.
221
222         * ircd/m_version.c: /version now returns the 005 numeric as well.
223         as requested by Liandrin.
224
225
226 2000-04-07  Kevin L. Mitchell  <klmitch@mit.edu>
227
228         * ircd/m_clearmode.c: add include for support.h for write_log()
229
230         * configure: move ircd/crypt/* to tools/*
231
232 2000-04-06  Thomas Helvey <tomh@inxpress.net>
233         * ircd/s_auth.c: Shorten auth connect timeout to 60 seconds
234           set client host to server alias if connection from localhost
235
236 2000-04-06  Perry Lorier <isomer@coders.net>
237         * ircd/ircd.c: Fix core during pinging (oops)
238         
239 2000-04-06  Perry Lorier <isomer@coders.net>
240         * ircd/send.c: fixed wrong ident being sent to channels bug.
241         * include/numerics.h: Updated some of the numerics from other
242         networks.  Flagged some as 'unused' by undernet.
243
244 2000-03-30  Perry Lorier <isomer@coders.net>
245         * ircd/ircd.c: Lets see if this helps the ping problem at all.
246         * ircd/whocmds.c, /doc/readme.who: Added %l specifier to get idle
247         time for local clients. (as requested), extended who now returns all
248         the flags (@+!) so you can tell the complete state of a client.
249
250 2000-03-30  Thomas Helvey <tomh@inxpress.net>
251         * m_rping.c m_rpong.c: add Gte's rping/rpong fixes
252
253 2000-03-30  Perry Lorier <isomer@coders.net>
254         * ircd/parse.c: oops, missed opers.
255
256 2000-03-30  Perry Lorier <isomer@coders.net>
257         * ircd/parse.c: fixed mystifying ping bug thats been plaguing us
258         for so long.  Remember: m_ping MUST be in the parse array. :)
259
260 2000-03-30  Perry Lorier <isomer@coders.net>
261         * ircd/ircd.c: test in check_pings was wrong.  I move that we
262         disallow cvs commit after 10pm localtime....
263
264 2000-03-30  Perry Lorier <isomer@coders.net>
265         * ircd/m_pong.c: Fix it for servers too.
266
267 2000-03-30  Perry Lorier <isomer@coders.net>
268         * ircd/m_pong.c: Fix ping timeout bugs
269
270 2000-03-30  Perry Lorier <isomer@coders.net>
271         * ircd/channel.c: Bans had CurrentTime in their when field instead
272         of TStime()
273
274 2000-03-31  Thomas Helvey <tomh@ixpress.net>
275         * ircd/numnicks.c (SetXYYCapacity): fix for extended
276         numerics.
277
278 2000-03-30  Perry Lorier <isomer@coders.net>
279         * ircd/m_nick.c: send kills both ways so when we add nick change
280         on collision we don't desync the network.
281
282         * ircd/map.c: Fixup the map a bit more.
283
284 2000-03-31  Kevin L. Mitchell  <klmitch@mit.edu>
285
286         * ircd/m_clearmode.c (do_clearmode): Log the CLEARMODE to OPATH
287
288         * ircd/m_opmode.c: Log the mode changes to OPATH
289
290         * ircd/channel.c (modebuf_flush_int): Log the mode changes to
291         OPATH
292
293         * include/channel.h (MODEBUF_DEST_LOG): Log the mode changes to
294         OPATH
295
296         * doc/Configure.help: help text for CONFIG_LOG_OPMODE / OPATH
297
298         * config/config-sh.in: added OPATH for opmode log file
299
300         * ircd/m_clearmode.c (do_clearmode): updated uses of
301         modebuf_mode_string() for the new usage
302
303         * ircd/channel.c: added flag MODE_FREE and an int argument to
304         modebuf_mode_string() to indicate that the string must be free'd;
305         updated calls to modebuf_mode_string() for the new usage; called
306         collapse(pretty_mask()) on the ban string and use allocated memory
307         for it; added ban list length accounting; fixed a number of small
308         bugs in ban processing
309
310         * include/channel.h: added flag MODE_FREE and an int argument to
311         modebuf_mode_string() to indicate that the string must be free'd
312
313         * ircd/m_clearmode.c (do_clearmode): made sure clearmode removed
314         keys and limits that are set
315
316 2000-03-30  Perry Lorier <isomer@coders.net>
317         * ircd/ircd.c: rewrote check_pings() for maintainability
318         and speed.  Also changed quit msg's so they don't have
319         redundant nick[host] info in them.
320
321         * ircd/send.c: Changed write errors to report what error
322         occured (if possible).
323
324         * ircd/gline.c: added gline comment to the quit.
325
326         * ircd/m_server.c: Added suggestions to server quits mentioning
327         what went wrong so the admin can fix it earlier instead of asking
328         questions...
329
330         * ircd/map.c: Changed m_map() to hide numerics, show a * beside
331         servers that aren't fully burst yet.  And show '(--s)' for servers
332         where its not sure.
333
334         * doc/example.conf: Fixed wrapped U:
335
336 2000-03-30  Kevin L. Mitchell  <klmitch@mit.edu>
337
338         * ircd/m_mode.c (ms_mode): implemented a new m_mode in terms of
339         mode_parse() (version selectable at compile time)
340
341         * ircd/m_clearmode.c (mo_clearmode): clean_channelname(parv[1])
342
343         * ircd/m_opmode.c (mo_opmode): clean_channelname(parv[1])
344
345         * config/config-sh.in: add new config option to enable new m_mode
346         implementation
347
348         * doc/Configure.help: add documentation for new config option
349         CONFIG_NEW_MODE
350
351         * ircd/channel.c (mode_parse_client): /opmode #foobar -o -- 461
352         MODE -v : Not enough parameters
353
354         * ircd/m_clearmode.c (do_clearmode): do_clearmode() would remove
355         +k and +l even if they weren't set...
356
357         * ircd/m_opmode.c: implement the OPMODE command using mode_parse()
358
359         * ircd/channel.c: make mode_process_clients() clear the DEOPPED
360         flag; fix +s+p exclusivity; add MODE_ADD/MODE_DEL to flag list
361         for; test the 0-th member, not the i-th member, of the client
362         change state stuff
363
364         * ircd/m_clearmode.c (do_clearmode): use the new
365         mode_invite_clear() function
366
367         * ircd/channel.c: cleared up all the compile-time warnings and
368         errors
369
370         * include/channel.h: added declarations for mode_ban_invalidate()
371         and mode_invite_clear()
372
373         * ircd/channel.c: finished mode_parse(), then broke it up into a
374         dozen or so helper functions to make the code easier to read
375
376 2000-03-29  Thomas Helvey <tomh@inxpress.net>
377         * ircd/ircd.c: refactor server initialization a bit, use
378         getopt for parsing command line, refactor init_sys, main,
379         and other bits.
380
381         * ircd/s_bsd.c: add functions for initialization to clean
382         up logic a bit and remove duplicated code.
383
384         * include/ircd.h: add struct for server process related
385         variables.
386
387 2000-03-29  Kevin L. Mitchell  <klmitch@mit.edu>
388
389         * ircd/channel.c: initial definition of mode_parse(); flags to
390         prevent doing the same thing multiple times; helper method
391         send_notoper() to send a "Not oper"/"Not on channel" notice
392
393         * include/channel.h: declare mode_parse() and helper flags
394
395         * ircd/channel.c (modebuf_flush_int): fiddled with timestamp
396         sending to match the current action of set_mode() closely enough
397         that hopefully there won't be major conflicts
398
399         * ircd/channel.c (modebuf_flush_int): consolidated the mode string
400         building logic, reversed the order of the arguments to mode
401         commands to have '-' preceed '+'
402
403 2000-03-29  Thomas Helvey <tomh@inxpress.net>
404         * ircd/s_bsd.c (add_connection): don't disable socket options
405         let OS tune itself and allow important performance tweaks to 
406         work.
407
408 2000-03-28  Kevin L. Mitchell  <klmitch@mit.edu>
409
410         * ircd/channel.c (modebuf_flush_int): use %d, not %-15d; I got
411         confused by set_mode, which is doing some really weird logic;
412         guess what I'm going to rewrite next?  ;)
413
414 2000-03-28  Kevin L. Mitchell  <klmitch@emc.com>
415
416         * include/channel.h: added MODE_SAVE for the bounds checking stuff
417         in modebuf_flush
418
419         * ircd/channel.c: make modebuf_flush into modebuf_flush_int and
420         make it do bounds checking on the buffer; all modes are sent only
421         if the all parameter is 1; modebuf_flush is the exported wrapper
422
423         * include/channel.h: add BOUNCE, renumber flags to get a little
424         more space
425
426         * ircd/channel.c (modebuf_flush): don't overload HACK2, add
427         BOUNCE; send DESYNCH message
428
429 2000-03-27  Kevin L. Mitchell  <klmitch@emc.com>
430
431         * ircd/m_clearmode.c (do_clearmode): only mark the modes the
432         channel actually has in effect for deletion
433
434         * ircd/channel.c: added explanatory comments to all added
435         functions; made flushing take place at the correct place even if
436         the MODEBUF_DEST_DEOP flag is set; rewrote build_string() helper
437         to bash some stupid bugs; made modebuf_flush() return if ModeBuf
438         is empty, fixed the apparent source, removed some bogus string
439         termination code, properly terminate the mode strings, add support
440         for HACK2 and HACK3, made limit strings not be sent if the limit
441         is being removed, changed where '+' and '-' come from in sent
442         strings, added support for DEOP flag, set up bouncing code for
443         HACK2
444
445         * ircd/Makefile.in: ran make depend
446
447         * include/channel.h: added new defines for future functionality,
448         made modebuf_flush() return int so I can use tail recursion
449
450         * ircd/m_clearmode.c: add msg.h to includes; other misc cleanups
451         to make it all compile
452
453         * ircd/m_opmode.c: add msg.h to includes...
454
455         * ircd/m_clearmode.c: implemented mo_clearchan()/ms_clearchan()
456
457         * ircd/channel.c (modebuf_flush): realized I forgot to
458         nul-terminate addbuf/rembuf properly...
459
460         * ircd/m_clearmode.c (do_clearmode): wrote do_clearmode()...
461
462         * ircd/channel.c (modebuf_flush): correct sendto_server_butone to
463         sendto_serv_butone--blah^2
464
465         * ircd/send.c (sendto_serv_butone): stupid comments confused me
466
467         * ircd/channel.c (modebuf_flush): if there are no mode changes to
468         propagate, we're done...
469
470         * ircd/channel.c (modebuf_flush): duh; it's sendto_server_butone,
471         not sendto_all_butone
472
473         * ircd/m_clearmode.c: define skeleton for m{o,s}_clearmode
474
475         * ircd/m_opmode.c: define skeleton for m{o,s}_opmode
476
477         * ircd/Makefile.in (SRC): added m_opmode() and m_clearmode() to
478         the list
479
480         * ircd/parse.c: added messages for opmode and clearmode
481
482         * include/handlers.h: added declarations for mo_opmode(),
483         ms_opmode(), mo_clearmode(), and ms_clearmode()
484
485         * include/msg.h: define MSG_OPMODE, TOK_OPMODE, MSG_CLEARMODE, and
486         TOK_CLEARMODE
487
488         * include/channel.h (MODEBUF_DEST_OPMODE): Define the
489         MODEBUF_DEST_OPMODE flag
490
491         * ircd/channel.c (modebuf_flush): added new flag,
492         MODEBUF_DEST_OPMODE; causes channel MODE/HACK(4) notice to appear
493         to originate from source's server (or source itself, if
494         IsServer(source)); also causes a server-level MODE to be sent as
495         OPMODE instead
496
497         * include/channel.h: defined MODEBUF_DEST_SERVER,
498         MODEBUF_DEST_HACK4
499
500         * ircd/channel.c: Add another argument to build_string() to handle
501         numeric nicks; implemented MODEBUF_DEST_SERVER to send MODEs to
502         servers; implemented MODEBUF_DEST_HACK4 to cause HACK(4) notices
503         to be sent out
504
505 2000-03-27  Perry Lorier <isomer@coders.net>
506
507         * ircd/s_bsd.c: fixed missing 'u' typo.
508
509 2000-03-26  Kevin L. Mitchell  <klmitch@emc.com>
510
511         * ircd/channel.c: implement modebuf_init(), _mode(), _mode_uint(),
512         _mode_string(), _mode_client(), _flush(); also implemented a
513         simple build_string()
514
515         * include/channel.h: added definition of ModeBuf, modebuf_*
516         manipulation functions, and a couple of helper macros
517
518 2000-03-24 Thomas Helvey <tomh@inxpress.net>
519   * numicks.c: convert extended numerics to use original mask version
520   * numnicks.h: ""
521   * s_user.c:
522 2000-03-23 Thomas Helvey <tomh@inxpress.net>
523   * Merge in changes from production
524 2000-03-22 Thomas Helvey <tomh@inxpress.net>
525   * numicks.c: Tweak to numnick generator to reduce possibility of duplicates.
526   * rfc1459.unet: Add Maniac's documentation for /names 0
527 * Fix misc. jupe bugs that somehow made it into the tree
528 * Escape /names 0 to mean /names --Maniac
529 * Don't core when server asks for info --Maniac 
530 * Add Kev's jupe patch --Bleep
531 * Add Maniacs squit patch --Bleep
532 * Merge in u2_10_10_beta07 changes --Bleep
533 * Merge in u2_10_10_beta06 changes --Bleep
534 * Start ircu2.10.11 development, beta branch u2_10_10 --Bleep
535 #-----------------------------------------------------------------------------
536 #
537 # ChangeLog for ircu2.10.11
538 #
539 # $Id: ChangeLog,v 1.88 2000-04-15 03:47:32 gte Exp $
540 #
541 # Insert new changes at beginning of the change list.
542 #