-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
3110 lines (2092 loc) · 99.8 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2008-03-27 Kevin L. Mitchell <[email protected]>
* ircd/watch.c: implementation of generic watch subsystem
* include/watch.h: implementation of generic watch subsystem
2008-03-22 Kevin L. Mitchell <[email protected]>
* ircd/ancillary.c: implementation of generic ancillary data
subsystem
* include/ancillary.h: implementation of generic ancillary data
subsystem
* ircd/register.c: minor correction to copyright comment--this is
ircd/register.c, not include/register.h!
2008-03-22 Kevin L. Mitchell <[email protected]>
* ircd/register.c: implementation of generic registration
subsystem
* include/register.h: header file for generic registration
subsystem
2008-03-20 Kevin L. Mitchell <[email protected]>
* include/client.h (infousermodes): add +O to the list of
supported usermodes--some clients complain if they see it
otherwise
2008-03-20 Kevin L. Mitchell <[email protected]>
* ircd/ircd_features.c: update CHANMODES ISUPPORT setting to
include 'R' channel mode
* ircd/channel.c: add MODE_REGISTERED, mapped to +R; arrange to
only have it settable or clearable by remote users or /opmode
* include/channel.h: add MODE_REGISTERED, update infochanmodes to
include 'R' channel mode
2008-03-20 Kevin L. Mitchell <[email protected]>
* include/client.h: IsLocOp() now checks to see if its MyUser() as
well; IsAnOper() uses IsOper() and IsLocOp() instead of directly
testing the flags
2008-03-15 Kevin L. Mitchell <[email protected]>
* ircd/ircd.c: you know what, let's just make those SQUIT
messages, like they were probably supposed to be in the beginning
* ircd/ircd.c: add a preceding colon in ERROR messages
* doc/example.conf: document 'exempt' port flag
* ircd/send.c: implement sendto_lusers() to send server notices to
all local users
* ircd/parse.c: add ms_die, ms_rehash, and ms_restart
* ircd/m_restart.c: reimplemented mo_restart() in terms of
exit_schedule(); implemented ms_restart() under control of
FEAT_NETWORK_RESTART
* ircd/m_rehash.c: implemented ms_rehash() under control of
FEAT_NETWORK_REHASH
* ircd/m_die.c: reimplemented mo_die() in terms of
exit_schedule(); implemented ms_die() under control of
FEAT_NETWORK_DIE
* ircd/listener.c: create new 'exempt' flag for listeners,
indicated in /stats p by an 'X' flag; fix a typo in a length fed
to send()
* ircd/ircd_signal.c: use exit_schedule() in place of server_die()
and server_restart()
* ircd/ircd_parser.y: add port 'exempt' clause to mark a port as
exempt from connection restrictions during timed /restart or /die
* ircd/ircd_lexer.l: add 'exempt' keyword
* ircd/ircd_features.c: new features NETWORK_REHASH (allow /rehash
from the network), NETWORK_RESTART (ibid, for /restart), and
NETWORK_DIE (ibid)
* ircd/ircd.c: suite of functions to implement scheduled exits
(abstract term for both server restart and server termination);
includes definition of the 'refuse' flag to block new client
connections except from exempt ports; also remove deprecated
server_die() and server_restart()
* ircd/engine_select.c: call exit_schedule() instead of
server_restart()
* ircd/engine_poll.c: call exit_schedule() instead of
server_restart()
* ircd/engine_kqueue.c: call exit_schedule() instead of
server_restart()
* ircd/engine_epoll.c: call exit_schedule() instead of
server_restart()
* ircd/engine_devpoll.c: call exit_schedule() instead of
server_restart()
* include/send.h: declare sendto_lusers() to send a server notice
to all local users
* include/msg.h: create 2 character tokens for rehash, restart,
and die
* include/listener.h: create new "exempt" flag for listeners, to
make a specific port exempt from the restrictions implied by the
refuse flag
* include/ircd_features.h: define features FEAT_NETWORK_REHASH,
FEAT_NETWORK_RESTART, and FEAT_NETWORK_DIE
* include/ircd.h: set up struct PendingExit; define PEND_INT_*
macros; remove declarations for server_die() and server_restart(),
which are now replaced by exit_cancel() and exit_schedule();
declare refuse integer to signal that new connections are to be
refused
* include/handlers.h: add declarations for ms_die(), ms_rehash(),
and ms_restart()
* doc/readme.features: document new features
2007-12-05 Michael Poole <[email protected]>
* include/dbuf.h (DBufAllocCount): Make unsigned.
(DBufUsedCount): Likewise.
* include/ircd_crypt.h (crypt_token_size): Make unsigned.
* include/ircd_features.h (feature_uint): Declare new function.
* include/res.h (irc_in_addr_valid): Since in6_16[0] is unsigned
short, bitwise not could happen after extension to signed int,
which would give us undesired results. Compare to 65535 instead.
* ircd/channel.c (add_invite): Make max and count unsigned.
(modebuf_extract): Make i and len unsigned.
(joinbuf_flush): Make i unsigned.
* ircd/class.c (init_class): Use feature_uint() to retrieve
the value of FEAT_DEFAULTMAXSENDQLENGTH.
(add_class): Likewise.
(get_sendq): Likewise.
* ircd/dbuf.c (DBufAllocCount): Make unsigned.
(DBufUsedCount): Make unsigned.
(dbuf_alloc): Use feature_uint() for FEAT_BUFFERPOOL.
* ircd/engine_poll.c (engine_add): Make i unsigned.
(engine_loop): Likewise.
* ircd/gline.c (count_realnames): Cast minlen to unsigned for
comparison. Should be safe since it comes from matchcomp().
(gline_add): Cast the result of ircd_snprintf() to unsigned.
Should be safe since negative numbers will exceed sizeof(uhmask).
* ircd/ircd_events.c (gen_flags): Give loc type size_t.
(sock_flags): Likewise.
* ircd/ircd_features.c (set_isupport_maxchannels): Use
feature_uint() for FEAT_MAXCHANNELSPERUSER.
(set_isupport_nicklen): Likewise for FEAT_NICKLEN.
(set_isupport_channellen): Likewise for FEAT_CHANNELLEN.
(FEAT_UINT): New value.
(F_U): New helper macro.
(features): Use F_U instead of F_I for FEAT_BUFFERPOOL,
FEAT_CLIENT_FLOOD, FEAT_NICKNAMEHISTORYLENGTH, FEAT_NICKLEN,
FEAT_MAXCHANNELSPERUSER, FEAT_DEFAULTMAXSENDQLENGTH and
FEAT_CHANNELLEN.
(feature_set): Handle FEAT_UINT case.
(feature_reset): Likewise.
(feature_get): Likewise.
(feature_mark): Likewise.
(feature_init): Likewise.
(feature_report): Likewise.
(feature_uint): New function.
* ircd/ircd_parser.y (generalnumeric): Typecast the number as
unsigned int.
(featureitem): Make ii signed.
(includeblock): Make the ~0 unsigned long to match cb_allowed.
* ircd/ircd_snprintf.c (PAD_LENGTH): Make signed.
* ircd/m_cap.c (send_caplist): Make i and loc unsigned.
* ircd/m_join.c (m_join): Use feature_uint() to retrieve the value
of FEAT_MAXCHANNELSPERUSER.
* ircd/m_nick.c (m_nick): Likewise for FEAT_NICKLEN.
* ircd/m_server.c (check_loop_and_lh): Make hop unsigned.
(mr_server): Likewise.
* ircd/msgq.c (bufsize): Make result unsigned.
(msgq_alloc): Make power unsigned. Use feature_uint() to retrieve
the value of FEAT_BUFFERPOOL.
* ircd/numnicks.c (markMatchexServer): Make i unsigned.
(find_match_server): Likewise.
* ircd/s_bsd.c (read_packet): Use feature_uint() to retrieve the
value of FEAT_CLIENT_FLOOD.
* ircd/s_debug.c (debug_serveropts): Make bp unsigned. Use
feature_uint() to retrieve the value of FEAT_BUFFERPOOL.
(send_usage): Fix format string for dbufs.
(count_memory): Use feature_uint() to retrieve the value of
FEAT_NICKNAMEHISTORYLENGTH. Fix format string for whowas array
dimension and dbuf counts.
* ircd/s_misc.c (exit_downlinks): Make i unsigned.
* ircd/s_user.c (set_user_mode): Make i unsigned.
(umode_str): Likewise.
(send_umode): Likewise.
(build_isupport_lines): Use feature_uint() to retrieve the value
of FEAT_NICKLEN.
* ircd/uping.c (uping_read): Make pingtime type time_t.
Typecast it before passing it to sprintf().
* ircd/whowas.c (whowas_alloc): Use feature_uint() to retrieve the
value of FEAT_NICKNAMEHISTORYLENGTH. Fix format string to match.
2007-12-03 Michael Poole <[email protected]>
* doc/Makefile.in (DATAROOTDIR): Define.
(DATADIR): Likewise.
2007-11-30 Kevin L. Mitchell <[email protected]>
* ircd/version.c.SH: correct invalid syntax in shell case/esac
* ircd/ircd_lexer.l: provide an implementation of yywrap() so we
no longer have to link against -lfl
* configure.in: drop tests on LEXLIB and don't add it to the list
of libs
* ircd/gline.c (gline_add): apply too-many-users test to realname
G-lines *only* when the origin is my user (or a user, for
remote-local G-lines)
2007-11-28 Michael Poole <[email protected]>
* tests/test-driver.pl (drv_default): Fix expect for numeric
responses that have non-trivial parameters.
(check_expect): Simplify (and fix) sender name check.
* tests/bug-1640796.cmd: Update expect NNN for new POE behavior
and part to not try to part the channel named "leaving".
* tests/bug-1674539.cmd: Update expect NNN for new POE behavior.
* tests/bug-1840011.cmd: New test script.
2007-11-28 Michael Poole <[email protected]>
* ircd/channel.c (mode_ban_invalidate): Clarify Doxygen comments.
(apply_ban): Only block narrower bans if the wider ban is active.
2007-11-24 Michael Poole <[email protected]>
* ircd/m_names.c (do_names): Don't try to re-initialize the start
of buf[] for each line. It's done the first time around and that
can be reused safely.
2007-11-17 Michael Poole <[email protected]>
* ircd/m_stats.c (m_stats): Properly assign param before it is
used in the hunt_server_cmd() call.
2007-11-17 Michael Poole <[email protected]>
* ircd/s_auth.c (iauth_disconnect): Avoid destroying invalid
sockets.
(iauth_stderr_callback): Disconnect iauth child if stderr has
EOF (in case stdin notification is delayed somehow).
2007-11-04 Michael Poole <[email protected]>
* ircd/umkpasswd.c (sum): Typecast buffer to avoid a warning about
the parameter type being passed to strlen().
2007-11-04 Michael Poole <[email protected]>
* doc/example.conf: Document /LIST M as controlled by list_chan.
* include/channel.h (LISTARG_SHOWMODES): Define.
* ircd/hash.c (list_next_channels): Handle it.
* ircd/m_list.c (show_usage): Document 'M' flag.
(param_parse): Recognize 'M' as LISTARGS_SHOWMODES.
2007-11-04 Michael Poole <[email protected]>
* ircd/m_list.c (param_parse): Reverse comparison direction when
converting from minutes to time_t, and which bound is set (so that
T<time_t works correctly). Also switch is_time cases so that 'T'
and 'C' work as documented. Remove a "break" after a "return".
(m_list): Remove a "break" after a "return".
2007-10-29 Michael Poole <[email protected]>
* ircd/ircd_lexer.l (YY_INPUT): Redefine to use fbgets().
(init_lexer): Return a value to indicate failure. Use fbopen().
(deinit_lexer): New function.
* ircd/s_conf.c (read_configuration_file): Update extern
declarations. Bail if init_lexer() fails. Call deinit_lexer()
rather than directly munging yyin.
2007-10-29 Michael Poole <[email protected]>
* include/gline.h: Delete declaration of gline_propagate().
* include/whocmds.h: Delete declaration of count_users().
* ircd/whocmds.c (count_users): Move to gline.c as a static.
* ircd/gline.c (whocmds.h): Remove #include.
(gliter): Document boolean trickiness. Add missing trickiness
when gl_flags has bits set besides GLINE_ACTIVE.
(make_gline): Get rid of now-unused "after" variable and the
comments related to overlapping G-lines.
(gline_propagate): Make static.
(count_users): Move from whocmds.c as a static function.
(count_realnames): New function.
(gline_add): Require a force to hit lots of users with a realname
G-line.
2007-09-05 Michael Poole <[email protected]>
* ircd/m_gline.c (ms_gline): Remove dead branch when 4 < parc < 5.
(mo_gline): Consistently use the last argument as the reason.
2007-09-05 Michael Poole <[email protected]>
* ircd/Makefile.in: Fix dependencies for version.h generation.
2007-08-20 Michael Poole <[email protected]>
* ircd/send.c (sendwallto_group_butone): Move a feature_bool()
call out of a loop. Convert HasFlag() uses to appropriate macros
from client.h.
2007-08-20 Michael Poole <[email protected]>
* ircd/ircd_string.c (ircd_aton_ip4): Allow a sequence of *.* at
the end of an IPv4 mask.
(ipmask_parse): Likewise for *:* at the end of IPv6 masks.
* ircd/test/ircd_in_addr_t.c (test_masks): Add tests for this.
2007-08-20 Michael Poole <[email protected]>
* ircd/s_user.c (register_user): Update inv_clients and opers
counts. Call client_set_privs() for local users.
(set_nick_name): Do not call client_set_privs() for remote users.
(set_user_mode): Move oper and invisible client checks inside the
IsRegistered() section.
2007-08-14 Michael Poole <[email protected]>
* ircd/channel.c (DONE_*): Split key changes into _ADD and _DEL.
(mode_parse_key): Check both, to properly handle -k+k changes.
(mode_parse_upass): Likewise, for -U+U.
(mode_parse_apass): Liekwise, for -A+A (in case that ever happens).
(mode_parse): Update which "done" flag is checked during a wipeout.
2007-08-13 Michael Poole <[email protected]>
* ircd/s_user.c (whipser): CNOTICEs should not trigger away
messages, only CPRIVMSGs.
2007-08-13 Michael Poole <[email protected]>
* ircd/m_who.c (m_who): Reorder responses and change the
ERR_QUERYTOOLONG parameter to be consistent with m_whois().
2007-08-13 Michael Poole <[email protected]>
* ircd/s_user.c (register_user): Initialize umodev[] in a
C89-compatible way. (gcc 4.1.2 warned about it.)
2007-08-13 Michael Poole <[email protected]>
* ircd/m_names.c (do_names): Add NAMES_DEL to comment. Avoid use
of strcat(). Get rid of ms_names(), which was basically a copy of
m_names(), and merge the "showingdelayed" changes into m_names().
Replace the recursion with iteration.
* ircd/parse.c (msgtab): Use m_names(), not ms_names().
2007-08-08 Michael Poole <[email protected]>
* ircd/s_auth.c (report_iauth_conf): Remove end-of-stats message;
m_stats() already does that.
(report_iauth_stats): Likewise.
2007-08-08 Michael Poole <[email protected]>
* include/res.h (irc_in_addr_is_ipv4): Fix classification of
addresses like 0.0.0.0.
2007-07-21 Perry Lorier <[email protected]>
* ircd/s_user.c: Move set_nick_name() to use set_user_mode(),
set_user_mode() now interprets +r usermodes properly (and ignores
them from non servers). This fixes a problem where remote users
weren't being counted properly anymore.
2007-07-20 Kevin L. Mitchell <[email protected]>
* ircd/m_gline.c: create abs_expire() macro to convert an expire
timestamp from the network into an absolute time, if needed;
rename expire_off to expire globally, since it now represents an
absolute expiration time; use expire - CurrentTime in gline
forwarding statements; in ms_gline(), use abs_expire() to convert
network expiration timestamp into absolute timestamp; in
mo_gline(), add CurrentTime to oper-provided expiration offset to
convert to absolute timestamp
* ircd/gline.c: assume expire and lifetime arguments to
gline_add() and gline_modify() are already absolute timestamps;
send lifetime parameter as an absolute timestamp, but leave expire
timestamp as relative as first part of a 2-phase update
2007-07-12 Perry Lorier <[email protected]>
Reconsider how we manage modes before registration, to avoid stats
getting out of sync.
* ircd/s_user.c (set_user_mode): Add new parameter to set_user_mode to
ignore some modes.
(register_user): Use set_user_mode to parse default usermode for
users.
* ircd/m_user.c: Add extra parameter to set_user_mode call
* ircd/s_auth.c: Add extra parameter to set_user_mode call
* ircd/m_mode.c: Add extra parameter to set_user_mode call
* ircd/s_misc.c: Verify stats are consistant.
* include/s_user.h: Change prototype, add flag definitions.
* ircd/m_lusers.c (m_users): Assert that we're generating sane stats,
include "unknowns" in the total user connections to avoid negative
wrap arounds.
2007-07-12 Perry Lorier <[email protected]>
* ircd/m_user.c (m_luser): Fix broken RFC 2812 on connect user mode
setting
2007-05-28 Michael Poole <[email protected]>
* include/numeric.h (ERR_INPUTTOOLONG): New numeric.
* ircd/s_bsd.c (read_packet): Use it.
* ircd/s_err.c (replyTable): Give it a format string.
2007-05-20 Michael Poole <[email protected]>
* ircd/m_burst.c (ms_burst): Do not let bursting servers join a
user to a channel more than once.
2007-05-20 Michael Poole <[email protected]>
* ircd/ircd_features.c (feature_set): Report new value of feature
for /set.
(feature_reset): Likewise, for /reset.
2007-05-20 Michael Poole <[email protected]>
* ircd/m_burst.c (netride_modes): Return -1 if someone tries to
remove modes in the burst.
(ms_burst): Check for, and handle, that protocol violation.
2007-05-20 Michael Poole <[email protected]>
* ircd/m_privs.c (mo_privs): Report "no such nickname" for unknown
nicks in the list. (Unfortunately, the nick is lost before ms_privs.)
2007-05-20 Michael Poole <[email protected]>
* ircd/listener.c (show_ports): Actually hide hidden ports from
clients that should not see them.
2007-05-20 Michael Poole <[email protected]>
* ircd/s_err.c (ERR_DONTCHEAT): Add apparently missing %s.
2007-05-20 Michael Poole <[email protected]>
* ircd/m_connect.c (mo_connect): Return an error to a locop who
tries to do a remote connect.
2007-05-20 Michael Poole <[email protected]>
* ircd/parse.c (msgtab): Make SETTIME consistent with other
oper commands, in using m_not_oper for non-opered clients.
2007-05-20 Michael Poole <[email protected]>
* ircd/ircd_parser.y (pseudoblock): Forbid pseudo commands that
are not all alphabetic characters.
2007-05-20 Michael Poole <[email protected]>
* configure.in (maxcon): Check that maximum connections is
sufficiently large to avoid underflow in MAXCLIENTS.
2007-05-20 Michael Poole <[email protected]>
* include/supported.h (FEATURES2): Remove extra space.
* ircd/m_admin.c (m_admin): Only check server mask against our
name, so that it cannot leak information about other linked
servers.
* ircd/m_version.c (m_version): Likewise.
2007-04-15 Kevin L. Mitchell <[email protected]>
* ircd/m_gline.c: fix minor typo in code that forwards remote
local activations/deactivations: %c takes characters, not
pointers!
(mo_gline): fix similar typo in code forwarding remote local
G-lines by opers
2007-04-10 Michael Poole <[email protected]>
* ircd/ircd_parser.y (iauth): Avoid problems related to MyFree's
multiple evaluation of its argument.
2007-04-10 Kevin L. Mitchell <[email protected]>
* ircd/m_gline.c (ms_gline): lastmod must be non-zero
2007-04-04 Michael Poole <[email protected]>
* ircd/s_conf.c (rehash): Restart resolver after reading the
config file; this un-breaks the resolver after /rehash if the
ircd.conf contains no "dns server = <ipstring>;" lines.
2007-04-01 J. R. Lenz <[email protected]>
* ircd/s_user.c (register_user): Check for host-hiding when fully
registering a user. [Comment added by Entrope.]
2007-03-31 Michael Poole <[email protected]>
* doc/readme.iauth (IAuth M): Document new command.
* ircd/m_user.c (m_user): Recognize RFC 2812 mode request and a
saner usermode request.
* ircd/s_auth.c (iauth_cmd_usermode): New command.
(iauth_parse): Dispatch to it.
* ircd/s_user.c (set_user_mode): Only broadcast usermode changes
for registered clients.
* tools/iauth-test (127.0.1.3): Test the new M command.
2007-03-31 Michael Poole <[email protected]>
* ircd/m_mode.c (m_mode): Check and report target/source
violations before calling set_user_mode().
(ms_mode): Likewise.
* ircd/s_user.c (set_user_mode): Remove those checks from here.
2007-03-31 Michael Poole <[email protected]>
* include/ircd_events.h (struct Generators): Convert elements to
be struct GenHeader*.
(timer_next): Update to match.
* ircd/ircd_events.c (timer_enqueue): Update to match.
(signal_callback): Likewise.
(timer_init): Remove a typecast with something slightly safer.
(timer_run): Update to deal with new type of Generator.g_timer.
(signal_add): Likewise.
(socket_add): Likewise.
2007-03-28 Michael Poole <[email protected]>
* ircd/m_asll.c (ms_asll): Count hits and report at the end, so
that a client is told whether any match (and has a hint that only
directly linked servers are checked).
(mo_asll): Likewise.
2007-03-26 Michael Poole <[email protected]>
* ircd/s_stats.c (m_stats): Move check for STAT_FLAG_LOCONLY (and
the assignment to "param") to the hunted server.
2007-03-26 Michael Poole <[email protected]>
* ircd/s_auth.c (iauth_parse): Check for missing arguments when
parsing the iauth message.
* tests/bug-1685648.cmd: New file to test this.
* tests/iauth-test: New file to exercise the code path.
* tests/ircd.conf: Use the iauth-test helper program.
2007-03-26 Michael Poole <[email protected]>
* ircd/m_silence.c (forward_silences): Do not try twice to process
silences that were both added and deleted.
2007-03-26 Michael Poole <[email protected]>
* ircd/ircd_parser.y (portblock): Restore old behavior for Port
blocks with no host listed.
2007-03-26 Michael Poole <[email protected]>
* doc/readme.iauth (iauth I): Fix example and syntax.
2007-03-18 Michael Poole <[email protected]>
* acinclude.m4 (unet_NONBLOCKING): Properly quote function name.
(unet_SIGNALS): Likewise.
(unet_CHECK_TYPE_SIZES): Likewise.
(AC_LIBRARY_NET): Likewise.
2007-03-18 Kevin L. Mitchell <[email protected]>
* ircd/m_gline.c (mo_gline): add permissions checks I kept
forgetting to add--remote local modifications require
FEAT_CONFIG_OPERCMDS and PRIV_GLINE, local G-lines require
PRIV_LOCAL_GLINE, and global G-line changes (excluding local
activation/deactivation) require FEAT_CONFIG_OPERCMDS and
PRIV_GLINE
2007-03-17 Kevin L. Mitchell <[email protected]>
* ircd/s_err.c: update replies to handle new fields in
RPL_STATSGLINE and RPL_GLIST--new fields indicate G-line lastmod,
G-line lifetime, and local activation status
* ircd/m_gline.c: update function documentation for ms_gline();
move test for server to before mask processing; don't look up
remote server too early; add code to process local activations and
deactivations early in ms_gline(); implement adding and destroying
local G-lines; don't try to locally activate or deactivate G-lines
that don't exist; add code to keep track of which fields were
available to ms_gline(); implement G-line modification and
creation; remove old ms_gline() code; convert
sendwallto_group_butone() calls to Debug() calls; reimplement
mo_gline() to take into account new syntax
* ircd/gline.c: change gl_rexpire to gl_lifetime to better reflect
its meaning; make sure to set gl_state to GLOCAL_GLOBAL when
G-line expires; add lifetime parameter to make_gline(); disable
overlapping G-line check; initialize gl_lifetime from lifetime
parameter; initialize gl_state to GLOCAL_GLOBAL; update
gline_propagate() to send lifetime parameter; add lifetime
parameter to gline_add(); remove some old code in gline_add();
figure out lifetime to set on new G-line; remove test for
make_gline() returning NULL, since it should never do so now; add
modify_gline() for modifying global G-lines; add gline_destroy()
for destroying local G-lines; update gline_burst() to send
lifetime parameter; update gline_resend() to send lifetime
parameter; update gline_list() to add lastmod, lifetime, and local
status indicators; update gline_stats() to send lastmod, lifetime,
and local status indicators; count BADCHANs in
gline_memory_count()
* include/gline.h: add enum GlineLocalState for keeping track of
local state changes to global G-lines; store state in struct
Gline; document enum GlineAction; add GLINE_EXPIRE,
GLINE_LIFETIME, and GLINE_REASON flags to indicate the presence of
those fields to gline_modify(); add GLINE_UPDATE mask for checking
for the above flags; update GlineIsActive() to take into account
new gl_state field in struct Gline; add lifetime to gline_add();
add gline_modify() for modifying existing global G-lines, and
gline_destroy() for destroying local G-lines
* doc/readme.gline: update documentation to reflect changes made
to G-line command syntax
2007-03-16 Kevin L. Mitchell <[email protected]>
* ircd/s_conf.c (find_kill): check FEAT_DISABLE_GLINES prior to
checking for a G-line matching a new user
* ircd/m_gline.c (ms_gline): rework ms_gline() to handle new
command syntax--although it can parse the new syntax, it doesn't
yet perform the actions demanded by that syntax
* ircd/ircd_features.c: trap-door feature FEAT_DISABLE_GLINES to
disable G-lines
* ircd/gline.c: create gliter() macro which performs an iteration
over all G-lines in a specified G-line list; initialize record
expire in make_gline() (to be redone); check FEAT_DISABLE_GLINES
in do_gline(); add and document what happens if GLINE_LOCAL is
passed to gline_find()
* include/ircd_features.h: trap-door feature FEAT_DISABLE_GLINES
to disable G-lines; intended use: accidental G-line of *@*
* include/gline.h: add rexpire (record expiration time) field to
gline description structure; add GlineAction enumeration (still
undocumented) to describe actions that may be performed on G-lines
2007-08-11 Michael Poole <[email protected]>
* configure.ac: Remove AC_SYS_RESTARTABLE_SYSCALLS.
* ircd/ircd_signal.c (setup_signals): Remove code for restartable
syscalls. Using sigaction() requires a flag to restart syscalls.
2007-04-10 Michael Poole <[email protected]>
* test.l: #include <errno.h> since we use errno.
2007-03-17 Michael Poole <[email protected]>
* doc/example.conf (Port): Document the optional additional field
for vhost entries. Document the support for multiple vhost
entries in a single Port block.
* ircd/ircd_parser.y (USE_IPV4): Shift up by 16 bytes.
(USE_IPV6): Likewise.
(portblock): Iterate over hosts rather than using the single host.
(portitem): Add portvhostnumber alternative production.
(portnumber): Check port number here. If valid, combine address
family and port number in "port" variable. If a port-less item
exists in "hosts", set its port number.
(portvhost): Prepend mask to "hosts" list.
(portvhostnumber): New production.
2007-03-17 Michael Poole <[email protected]>
* ircd/listener.c (add_listener): Only try to create IPv6 sockets
for IPv6-compatible addresses; likewise for IPv4.
2007-03-17 Michael Poole <[email protected]>
* doc/example.conf (Operator): Update documentation to mention
more than one host entry is allowed.
(Motd): Likewise.
* ircd/ircd_parser.y (hosts): New file-scope variable.
(free_slist): New helper function.
(operblock): Iterate over hosts instead of using the single host.
(operhost): Prepend the mask to hosts.
(motdblock): Iterate over hosts instead of using the single host.
(motdhost): Prepend the mask to hosts.
(motdfile): Fix possible leak of "pass" string (the filename).
* ircd/s_conf.c (conf_parse_userhost): Stop freeing the host
string; operblock (the only caller) frees it now.
2007-03-17 Michael Poole <[email protected]>
* ircd/list.c (free_link): Only decrement the in-use count of
links if we free a link.
2007-03-16 Michael Poole <[email protected]>
* doc/example.conf (Class): Move the "Recommended client classes"
comment to a better place (and stop recommending them). Clarify
what maxlinks does. Make it clear that Operator password entries
only support umkpasswd formats.
2007-03-16 Michael Poole <[email protected]>
* ircd/ircd.c (parse_command_line): Emit a warning if using -x
when DEBUGMODE is disabled.
2007-03-16 Michael Poole <[email protected]>
* ircd/s_conf.c (find_conf_exact): Treat maxlinks == 0 as being
unlimited here, to match attach_conf()'s behavior.
2007-03-05 Michael Poole <[email protected]>
* ircd/m_privs.c (ms_privs): Use the correct source when
forwarding the PRIVS request.
* tests/bug-1674539.cmd: New file to test for this.
* tests/test-driver.pl: Recognize "oper" command from scripts.
2007-03-05 Michael Poole <[email protected]>
* tests/ircd.conf: Make into a hub.
* tests/ircd-2.conf: New file, for a second server.
* tests/ircd-3.conf: Configuration for a third server.
2007-03-04 Michael Poole <[email protected]>
* ircd/gline.c (count_users): Fix length of ipbuf. (Spotted by
paulr.)
2007-02-28 Michael Poole <[email protected]>
* ircd/os_generic.c (sockaddr_from_irc): Zero out socket address
before setting family, and regardless of whether we have an
irc_sockaddr template.
2007-02-25 Michael Poole <[email protected]>
* doc/example.conf: Document new options for General block.
* include/res.h (clear_nameservers): Declare new function.
(add_nameserver): Declare previously static function.
* include/s_bsd.h (VirtualHost_dns_v4): Declare.
(VirtualHost_dns_v6): Likewise.
* ircd/ircd_lexer.l (DNS): Recognize new token.
* ircd/ircd_parser.y (DNS): Declare new token.
(generalitem): Allow new items for dns vhost(s) and dns servers.
(generaldnsvhost): New production.
(generaldnsserver): New production.
* ircd/ircd_res.c (VirtualHost_dns_v4): New variable.
(VirtualHost_dns_v6): Likewise.
(clear_nameservers): New function.
(restart_resolver): Scan specified servers so we only try to open
DNS client sockets that we need.
* ircd/ircd_reslib.c (irc_nscount): Remove redundant initializer.
(irc_res_init): Only read the resolver config file if there are no
nameservers provided.
(add_nameserver): Make non-static. Remove off-by-one check
against IRCD_MAXNS.
* ircd/s_conf.c (read_configuration_file): Clear nameserver list
before reading the config file.
2007-01-27 Jeannot Langlois <[email protected]>
* doc/example.conf (Features): Illustrate URLREG feature.
* doc/readme.features (URLREG): Define new feature.
* include/ircd_features.h (Feature): Add FEAT_URLREG.
* ircd/ircd_features.c (features): Set the default value.
* ircd/m_join.c (m_join): For ERR_NEEDREGGEDNICK, include the
URLREG value as a format argument.
* ircd/s_err.c (replyTable): Update ERR_NEEDREGGEDNICK
appropriately.
2007-02-03 Michael Poole <[email protected]>
* ircd/ircd_reply.c (protocol_violation): Avoid reusing the
va_list in vd.
* ircd/send.c (sendcmdto_channel): Warn against using %v in the
pattern -- that will cause incorrect behavior.
(sendwallto_group): Likewise.
(sendcmdto_match): Likewise.
2007-01-22 Michael Poole <[email protected]>
* ircd/channel.c (find_delayed_joins): Fix to use sendto_channel()
properly for CVS HEAD.
2007-01-22 Michael Poole <[email protected]>
* ircd/channel.c (find_delayed_joins): New function.
(modebuf_flush): Handle +D-D and related cases.
(mode_parse_mode): It is too early to handle +D here, so don't.
(CheckDelayedJoins): Use find_delayed_joins().
2007-01-22 Michael Poole <[email protected]>
* tests: New subdirectory for test framework.
* tests/ircd.conf: Helper file for testing.
* tests/readme.txt: Simple documentation of test framework.
* tests/test-driver.pl: Testing script interpreter.
2007-01-22 Michael Poole <[email protected]>
* doc/example.conf: Fix potentially confusing comment about ip
mask syntax.
2007-01-22 Michael Poole <[email protected]>
* INSTALL: Mention source directory naming; update the reference
to the config file converter (hah); update CVS directions.
2007-01-22 Michael Poole <[email protected]>
* include/supported.h: Move parameters from FEATURES1 to FEATURES2
so that neither ISUPPORT line has more than 15 parameters. (Some
clients are picky about this.)
2007-01-15 Michael Poole <[email protected]>
* doc/readme.iauth (U): Document extended fields.
* include/s_auth.h (auth_set_user): Declare new parameters.
* ircd/m_user.c (m_user): Pass new parameters.
* ircd/s_auth.c (auth_set_user): Accept new parameters. When
using Undernet extensions, forward them to the iauth process.
2007-01-14 Michael Poole <[email protected]>
* ircd/os_generic.c (os_recv_nonb): Set errno to zero when
returning IO_FAILURE due to a closed connection.
2006-12-31 Michael Poole <[email protected]>
* ircd/s_user.c (set_nick_name): Only use actual account name in
the fakehost, not account name plus suffix.
2006-12-31 Michael Poole <[email protected]>
* ircd/m_mode.c (ms_mode): Bounce modes from deopped members.
2006-12-30 Michael Poole <[email protected]>
* ircd/ircd_string.c (ircd_strncpy): Make sure the output buffer
is terminated. We don't rely on the arguable strncpy semantics.
2006-12-30 Michael Poole <[email protected]>
* include/struct.h (struct Server): Add asll_last field.
* ircd/ircd.c (check_pings): Add check for asll_last. When a
server doesn't ping, use an old-style ping rather than AsLL ping.
* ircd/m_pong.c (ms_pong): Use ClearPingSent() rather than
ClrFlag(). Set asll_last to current time.
(mr_pong): Use ClearPingSent() rather than ClrFlag().
(m_pong): Likewise.
* ircd/s_bsd.c (completed_connection): Likewise.
(read_packet): Likewise. Update cli_lasttime for servers in
addition to clients.
2006-12-07 Michael Poole <[email protected]>
* ircd/flagset.h: New file.
* ircd/capab.h: #include "flagset.h" rather than "client.h"
* include/client.h: Move flagset definitions to flagset.h.
Include that file.
* include/listener.h: #include "flagset.h" rather than "client.h"
2006-12-07 Michael Poole <[email protected]>
* ircd/crule.c (crule_free): Move decrement so that MyFree() may
continue to evaluate its argument twice (bleh).
(crule_cat): Properly set terminal byte for compound expressions.
* ircd/ircd_lexer.l (init_lexer): Remove extraneous yy_init = 1.
(<<EOF>>): Add yy_init = 0; to force flex to re-init on rehash.
2006-12-07 Michael Poole <[email protected]>
* ircd/listener.c (show_ports): Update to show '4' and/or '6' as
flags in response, with a '-' suffix if either one fails to open.
2006-12-07 Michael Poole <[email protected]>
* doc/example.conf (Port): Document the method to select IPv4 or
IPv6 restriction for a port.