-
Notifications
You must be signed in to change notification settings - Fork 24
/
ChangeLog.11
4169 lines (2756 loc) · 140 KB
/
ChangeLog.11
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
2002-01-08 Perry Lorier <[email protected]>
* Fixed the build system -- MAKEFILES is *not* a variable you can
just use in a makefile :)
* Added "Quit: " prefix to quit messages.
2001-10-14 Perry Lorier <[email protected]>
* Minor fixes to the below
2001-09-21 Perry Lorier <[email protected]>
* ircd/send.c and various: replace sendcmdto_flag_butone with
sendwallto_group_butone
2001-09-21 Vampire- <unknown>
* ircd/ircd_string.c: unique_name_vector round II.
2001-09-21 mbuna <[email protected]>
* configure.in: Add support for darwin
2001-09-21 Perry Lorier <[email protected]>
* ircd/s_user.c I'm stupid, s/acptr/from/, Hektik pointed it out
2001-09-20 Perry Lorier <[email protected]>
* Pullups from 2.10.10.pl16
* Added some warnings, and the concept of rate limited snotices
2001-08-31 Kevin L Mitchell <[email protected]>
* ircd/channel.c: use "%u" to format limit arguments; use
strtoul() to process limit arguments in a /mode command--note:
most clients seem to truncate the integer, probably because
they're using atoi, and perhaps signed ints
2001-08-17 Kevin L Mitchell <[email protected]>
* ircd/numnicks.c: include stdlib.h for exit()
* ircd/ircd_log.c: include stdlib.h for exit()
* ircd/ircd_events.c: include stdlib.h for exit()
* ircd/s_stats.c: remove description of /stats v, since it's gone
* ircd/m_wallops.c (mo_wallops): add "*" to the beginning of
/wallops to distinguish wallops from wallusers
* ircd/m_error.c (mr_error): ignore ERROR from clients that aren't
in the "handshake" or "connecting" states--I think the latter will
never happen, but...
* doc/Authors: apply delete's Authors patch
* RELEASE.NOTES: rewrite RELEASE.NOTES, basing it a little on
Braden's version
* README: rewrite README
2001-07-31 Kevin L. Mitchell <[email protected]>
* ircd/s_serv.c (server_estab): remove unused variable split
* ircd/parse.c: add mr_error to the parse table
* ircd/m_error.c (mr_error): add mr_error() to handle ERRORs from
unregistered connections--if IsUserPort() is true, the ERROR is
ignored, otherwise, the message is saved
2001-07-28 Kevin L. Mitchell <[email protected]>
* ircd/m_kill.c (ms_kill): another minor typo *sigh*
* ircd/s_user.c (send_supported): oops, minor typo...
* ircd/s_user.c: implement send_supported() to send two ISUPPORT
messages containing our feature buffers; make register_user() use
send_supported()
* ircd/s_misc.c (exit_client): make sure not to give away a remote
server in the ERROR message sent to the client; if the killer is a
server, we substitute our name in its place
* ircd/m_version.c (m_version): use send_supported() to send the
ISUPPORT values to the user
* ircd/m_nick.c: shave nick collision kills here a bit, too, for
the same reasons as for m_kill.c
* ircd/m_kill.c: shave kills a bit so that the results look
exactly the same no matter where you are; if we didn't do this, it
would be possible to map the network by looking at the differences
between kills originating under various circumstances
* include/supported.h: split the features into two, so as to not
bust the parameter count when sending the features list
* include/s_user.h: declare new send_supported() function to send
the ISUPPORT information
2001-07-27 Kevin L. Mitchell <[email protected]>
* ircd/s_bsd.c: disable IP (*not* TCP) options to prevent
source-routed spoofing attacks; this is only available under
u2.10.11, so don't even bother, since no one but testers are using
the source base
2001-07-25 Kevin L. Mitchell <[email protected]>
* include/ircd_policy.h: enable HEAD_IN_SAND_REMOTE by default
* ircd/s_err.c: put in a . for reporting link version on /trace,
to match what /version does
2001-07-21 Kevin L. Mitchell <[email protected]>
* ircd/s_misc.c (exit_client): servers don't understand what the
numeric nick ERROR is supposed to mean, so they ignore error
messages, resulting in not knowing why we were rejected; use
sendcmdto_one for servers and sendrawto_one for clients
2001-07-17 Kevin L. Mitchell <[email protected]>
* ircd/m_burst.c (ms_burst): in the case of a modeless channel and
a nick collide, a bare BURST may be propagated; adjust the
enforced parameter count to accept the bare BURST
2001-07-12 Kevin L. Mitchell <[email protected]>
* ircd/s_bsd.c: mark a client as having been IP checked
* ircd/IPcheck.c (ip_registry_check_remote): remove unneeded
second call to SetIPChecked()
2001-07-11 Kevin L. Mitchell <[email protected]>
* ircd/engine_poll.c: deal with POLLHUP properly (hopefully)
* ircd/engine_devpoll.c: deal with POLLHUP properly (hopefully)
2001-07-09 Kevin L. Mitchell <[email protected]>
* ircd/os_bsd.c (os_get_rusage): move buf into the two ifdef'd
sections so that if neither is used, the declaration of buf will
not elicit an "unused variable" warning under NetBSD
* ircd/m_map.c: include string.h to declare strcpy (fix warnings
on alpha)
* ircd/m_away.c: include string.h to declare strcpy/strlen (fix
warnings on alpha)
* ircd/ircd_log.c: include string.h to declare strcpy/strlen (fix
warnings on alpha)
* ircd/client.c: include string.h to declare memset (fix warnings
on alpha)
* ircd/channel.c: remove unused functions next_overlapped_ban,
del_banid, and is_deopped (fix warnings under -O1)
* ircd/IPcheck.c: include string.h to declare memset/memcpy (fix
warnings on alpha)
2001-06-29 Kevin L. Mitchell <[email protected]>
* ircd/s_user.c (set_user_mode): clear the snomask if the user
isn't supposed to receive server notices anymore
* ircd/ircd_features.c: change CONFIG_OPERCMDS to default to FALSE
* configure.in: use AC_MSG_CHECKING/AC_MSG_RESULT when checking
installation prefix; default devpoll and kqueue to on (they get
turned off if the required headers aren't present)
* ircd/whocmds.c (do_who): use ircd_snprintf() instead of
sprintf_irc(); it's a bit hackish, but it'll do for now
* ircd/support.c: remove unused #include
* ircd/send.c: remove unused #include
* ircd/s_user.c: use ircd_snprintf() instead of sprintf_irc()
* ircd/s_serv.c: remove unused #include
* ircd/s_misc.c: use ircd_snprintf() and friends instead of
sprintf_irc() and friends
* ircd/s_err.c: moved atoi_tab[] from ircd/sprintf_irc.c to
ircd/s_err.c, which is the only other file to refer to it
* ircd/s_conf.c (conf_add_deny): use ircd_snprintf() instead of
sprintf_irc()
* ircd/s_bsd.c (connect_server): use ircd_snprintf() instead of
sprintf_irc()
* ircd/s_auth.c: use ircd_snprintf() instead of sprintf_irc()
* ircd/res.c: use ircd_snprintf() instead of sprintf_irc()
* ircd/m_version.c: use ircd_snprintf() instead of sprintf_irc()
* ircd/m_kill.c: use ircd_snprintf() instead of sprintf_irc()
* ircd/listener.c: use ircd_snprintf() instead of sprintf_irc()
* ircd/gline.c: use ircd_snprintf() instead of sprintf_irc()
* ircd/channel.c: don't include sprintf_irc.h; use ircd_snprintf()
instead of sprintf_irc()
* ircd/Makefile.in: remove sprintf_irc.c from sources list; run
make depend
* include/ircd_string.h: remove declaration of sprintf_irc() (what
was it doing here anyway?)
* include/sprintf_irc.h: removed unneeded source file
* ircd/sprintf_irc.c: removed unneeded source file
* ircd/s_debug.c (count_memory): remove some dead code
* ircd/s_auth.c: remove some dead code
* ircd/res.c (update_list): remove some dead code
* ircd/m_whowas.c: remove some dead code
* ircd/m_whois.c: remove some dead code
* ircd/m_who.c: remove some dead code
* ircd/m_wallusers.c: remove some dead code
* ircd/m_wallops.c: remove some dead code
* ircd/m_wallchops.c: remove some dead code
* ircd/m_version.c: remove some dead code
* ircd/m_userip.c: remove some dead code
* ircd/m_userhost.c: remove some dead code
* ircd/m_uping.c: remove some dead code
* ircd/m_trace.c: remove some dead code
* ircd/m_topic.c: remove some dead code
* ircd/m_tmpl.c: remove some dead code
* ircd/m_time.c: remove some dead code
* ircd/m_squit.c: remove some dead code
* ircd/m_silence.c: remove some dead code
* ircd/m_settime.c: remove some dead code
* ircd/m_set.c: remove some dead code
* ircd/m_server.c: remove some dead code
* ircd/m_rpong.c: remove some dead code
* ircd/m_rping.c: remove some dead code
* ircd/m_restart.c: remove some dead code
* ircd/m_reset.c: remove some dead code
* ircd/m_rehash.c: remove some dead code
* ircd/m_quit.c: remove some dead code
* ircd/m_proto.c: remove some dead code
* ircd/m_privs.c: remove some dead code
* ircd/m_privmsg.c: remove some dead code
* ircd/m_pong.c: remove some dead code
* ircd/m_ping.c: remove some dead code
* ircd/m_pass.c: remove some dead code
* ircd/m_part.c: remove some dead code
* ircd/m_opmode.c: remove some dead code
* ircd/m_oper.c: remove some dead code
* ircd/m_notice.c: remove some dead code
* ircd/m_nick.c: remove some dead code
* ircd/m_map.c: remove some dead code
* ircd/m_lusers.c: remove some dead code
* ircd/m_list.c: remove some dead code
* ircd/m_links.c: remove some dead code
* ircd/m_kill.c: remove some dead code
* ircd/m_kick.c: remove some dead code
* ircd/m_jupe.c: remove some dead code
* ircd/m_join.c: remove some dead code
* ircd/m_ison.c: remove some dead code
* ircd/m_invite.c: remove some dead code
* ircd/m_info.c: remove some dead code
* ircd/m_help.c: remove some dead code
* ircd/m_gline.c: remove some dead code
* ircd/m_get.c: remove some dead code
* ircd/m_error.c: remove some dead code
* ircd/m_endburst.c: remove some dead code
* ircd/m_die.c: remove some dead code
* ircd/m_desynch.c: remove some dead code
* ircd/m_destruct.c: remove some dead code
* ircd/m_defaults.c: remove some dead code
* ircd/m_create.c: remove some dead code, along with an #if 1
* ircd/m_cprivmsg.c: remove some dead code
* ircd/m_connect.c: remove some dead code
* ircd/m_close.c: remove some dead code
* ircd/m_clearmode.c: remove some dead code
* ircd/m_burst.c: remove some dead code
* ircd/m_away.c: remove some dead code
* ircd/m_admin.c: remove some dead code
* ircd/listener.c (accept_connection): remove some dead code
* ircd/ircd_reply.c (need_more_params): remove some dead code
* ircd/channel.c (add_banid): remove some dead code
* include/support.h: remove some dead code
* include/querycmds.h: remove some dead code
* doc/readme.chroot: document how to do chroot operation
2001-06-28 Kevin L. Mitchell <[email protected]>
* ircd/Makefile.in: tune for VPATH builds/installs; add a rule to
force bin directory to be created if necessary prior to
installation; run make depend
* doc/Makefile.in (install): tune for VPATH installs by cd'ing to
the ${srcdir}
* Makefile.in: tune to detect Makefile.in changes in
subdirectories and to create installation directory indicated by
${prefix}
* ircd/whocmds.c (count_users): routine to count the number of
users matching a given user@host mask
* ircd/s_err.c: add error messages for ERR_LONGMASK,
ERR_TOOMANYUSERS, and ERR_MASKTOOWIDE
* ircd/m_gline.c: look for and advance past '!' flag on G-lines
from operators; only set GLINE_OPERFORCE flag if oper has the
PRIV_WIDE_GLINE privilege
* ircd/ircd_features.c: add GLINEMAXUSERCOUNT, which is the
maximum number of users a G-line can impact before it has to be
forced; OPER_WIDE_GLINE, to allow operators to use ! to force a
wide G-line to be set; and LOCOP_WIDE_GLINE, to allow local
operators to use ! to force a wide G-line to be set
* ircd/gline.c: make make_gline() be called with separate user and
host arguments, and not call canon_userhost() directly; implement
gline_checkmask() to verify that a host mask is acceptable; move
BADCHAN check up in gline_add(), and check passed-in mask under
certain circumstances for acceptability; fix call to
sendto_opmask_butone() to handle separation of userhost into user
and host in gline_add(); update call to make_gline()
* ircd/client.c: use FEAT_OPER_WIDE_GLINE and
FEAT_LOCOP_WIDE_GLINE to set PRIV_WIDE_GLINE for an operator; add
PRIV_WIDE_GLINE to privtab[] for client_report_privs()
* include/whocmds.h (count_users): declare routine to count users
matching a given user@host mask
* include/numeric.h: added three new error returns: ERR_LONGMASK
-- mask can't be formatted into a buffer; ERR_TOOMANYUSERS -- too
many users would be impacted by the mask; ERR_MASKTOOWIDE -- mask
contains wildcards in the wrong places
* include/ircd_features.h: add FEAT_GLINEMAXUSERCOUNT,
FEAT_OPER_WIDE_GLINE, and FEAT_LOCOP_WIDE_GLINE
* include/gline.h (GLINE_OPERFORCE): provides a way for m_gline()
to signal to gline_add() that the operator attempted to force the
G-line to be set
* include/client.h (PRIV_WIDE_GLINE): new privilege for operators
* doc/readme.gline: update to document new "!" prefix to a G-line
user@host mask
* doc/readme.features: document GLINEMAXUSERCOUNT,
OPER_WIDE_GLINE, and LOCOP_WIDE_GLINE
* doc/example.conf: update to mention new features along with
their defaults
2001-06-27 Kevin L. Mitchell <[email protected]>
* doc/example.conf: updated example.conf from Braden
* include/supported.h: forward-port from pl15
2001-06-25 Kevin L. Mitchell <[email protected]>
* ircd/whocmds.c: include ircd_policy.h and implement
HEAD_IN_SAND_WHO_OPCOUNT--forward-port from pl15
* ircd/m_whois.c: forward-port of the idle-time hiding code from
pl15; this also required passing parc into do_whois(), which also
meant passing parc into do_wilds()--*sigh*
* include/ircd_policy.h: add a couple more HEAD_IN_SAND
#define's--WHOIS_IDLETIME and WHO_HOPCOUNT
2001-06-22 Kevin L. Mitchell <[email protected]>
* tools/wrapper.c: add a wrapper program that can be used to
adjust file descriptor limits and root directories; program must
be run as root--NOT SETUID!--and given appropriate -u arguments
* doc/readme.log: documentation of how to configure logging
* doc/readme.features: documentation of each feature (except for
logging)
2001-06-21 Kevin L. Mitchell <[email protected]>
* Makefile.in (config): add a deprecation notice with a pointer to
tools/transition
* tools/transition: shell script to convert old compile-time
options into new compile-time options and appropriate F-lines
* tools/mkchroot: shell-script to prepare the chroot area by
copying over all the necessary libraries so they can be found
2001-06-20 Kevin L. Mitchell <[email protected]>
* INSTALL: partial update of INSTALL for u2.10.11 release...
2001-06-14 Kevin L. Mitchell <[email protected]>
* ircd/table_gen.c (makeTables): finally got tired of the
"overflow in implicit conversion" warning, so just got rid of it
by explicitly casting UCHAR_MAX to a (default) char; diffs show no
differences in the tables generated
2001-06-11 Kevin L. Mitchell <[email protected]>
* ircd/send.c (sendcmdto_match_butone): don't let the server crash
if a client is in the STAT_CONNECTING status
2001-06-10 Kevin L. Mitchell <[email protected]>
* ircd/send.c: remove unused vsendcmdto_one(), consolidating it
into sendcmdto_one(); define new sendcmdto_prio_one(), which
places the message into the priority queue
* ircd/s_user.c (hunt_server_prio_cmd): definition of
hunt_server_prio_cmd(), which simply calls sendcmdto_prio_one()
instead of sendcmdto_one()
* ircd/m_settime.c: use sendcmdto_prio_one() and
hunt_server_prio_cmd() to send SETTIME
* ircd/m_server.c: use sendcmdto_prio_one() to send SETTIME
* include/send.h: removed declaration for unused vsendcmdto_one();
added a declaration for sendcmdto_prio_one()
* include/s_user.h: declare hunt_server_prio_cmd(), which calls
sendcmdto_prio_one()
* ircd/send.c (sendcmdto_flag_butone): oops; /wallops should be
put in the server's priority queue, too...
* ircd/ircd.c: don't check LPATH for accessibility at all
2001-06-08 Kevin L. Mitchell <[email protected]>
* ircd/s_serv.c (server_estab): send a +h flag in our SERVER
command if we're configured as a hub; send individual server flags
in SERVER commands
* ircd/s_bsd.c (completed_connection): send a +h flag in our
SERVER command if we're configured as a hub
* ircd/m_server.c: implement parv[7] as a mode-like string; +h
sets the FLAGS_HUB flag for a server; +s sets the FLAGS_SERVICE
flag for a server; +hs sets both flags; also modify CMD_SERVER
format string to send the flags
* include/client.h: define two new flags, FLAGS_HUB and
FLAGS_SERVICE to mark services and hubs as such; define testing
macros, setting macros
* ircd/s_user.c: remove deprecated struct Gline* argument to
register_user(); remove GLINE rebroadcast; do not send GLINE
acknowledgement parameter to NICK; do not look for GLINE
acknowledgement parameter to NICK while parsing
* ircd/s_serv.c (server_estab): remove deprecated struct Jupe*
argument to server_estab(); do not send JUPE/GLINE acknowledgement
parameters for SERVER or NICK
* ircd/m_user.c (m_user): remove deprecated argument to
register_user()
* ircd/m_server.c: remove deprecated argument to server_estab();
remove documentation comment regarding JUPE acknowledgement
parameter to SERVER; remove JUPE rebroadcast
* ircd/m_pong.c (mr_pong): remove deprecated argument to
register_user()
* ircd/m_nick.c: remove documentation comment regarding GLINE
acknowledgement parameter to NICK
* ircd/jupe.c: use user's real name in JUPE server notices if
HEAD_IN_SAND_SNOTICES is defined
* ircd/ircd.c: remove deprecated chroot() code; remove deprecated
setuid code; correct ancient DEBUG vs DEBUGMODE typo
* ircd/gline.c: use user's real name in GLINE server notices if
HEAD_IN_SAND_SNOTICES is defined
* ircd/channel.c (modebuf_flush_int): make apparent source be
local server, not oper's server; use user's real name in hack
notices and DESYNC notices if HEAD_IN_SAND_SNOTICES is defined
* include/s_user.h: remove struct Gline pre-declaration; remove
deprecated struct Gline argument from register_user()
* include/s_serv.h: remove struct Jupe pre-declaration; remove
deprecated struct Jupe argument from server_estab()
2001-06-07 Kevin L. Mitchell <[email protected]>
* ircd/s_stats.c (hunt_stats): forward-port from pl15 of all the
changes required to control remote stats
* ircd/s_numeric.c (do_numeric): rewrite numeric origins if
recipient is not an operator and HEAD_IN_SAND_REWRITE is defined
[forward-port from pl15]
* ircd/m_whowas.c (m_whowas): report server name only if requester
is an operator [forward-port from pl15]
* ircd/m_whois.c (do_whois): /whois <mynick> now correctly reports
my server; if HEAD_IN_SAND_REMOTE is 1, ignore the middle argument
and obtain the report from the user's server [forward-port from
pl15]
* ircd/m_who.c: add missing include for ircd_policy.h
[forward-port from pl15]
* ircd/m_version.c (m_version): require oper access for remote
/version if HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15]
* ircd/m_time.c (m_time): require oper access for remote /time if
HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15]
* ircd/m_stats.c: pass extra argument to hunt_stats(); correct
missing semicolon [forward-port from pl15]
* ircd/m_nick.c (ms_nick): hide the origin of certain collision
kills [forward-port from pl15]
* ircd/m_motd.c (m_motd): require oper access for remote /motd if
HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15]
* ircd/m_lusers.c (m_lusers): require oper access for remote
/lusers if HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15]
* ircd/m_burst.c (ms_burst): server-added bans are stored using
local server name, to hide remote server names; modes also are to
originate from the local server [forward-port from pl15]
* ircd/m_admin.c (m_admin): require oper access for remote /admin
if HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15]
* ircd/channel.c (add_banid): if a server is adding a ban, use my
server name to hide the remote server's name [forward-port from
pl15]
* ircd/Makefile.in: ran make depend
* include/s_stats.h: hunt_stats() has to have an extra argument to
support the forward-port from pl15
* include/ircd_policy.h: #define HEAD_IN_SAND_STATS_P; add
HEAD_IN_SAND_{BANWHO,REWRITE,REMOTE} [forward-port from pl15]
* ircd/engine_poll.c (engine_loop): remove bogus assert that I
forgot to check in the events branch
2001-06-06 Kevin L. Mitchell <[email protected]>
* ircd/res.c (init_resolver): don't start DNS expires with a 0
relative timeout--if the server starts slow, timeouts could be
messy...there's probably a better solution, but this'll do for now
* ircd/os_solaris.c: _XOPEN_SOURCE doesn't get along with Solaris
headers very well; include stropts.h; define an os_set_tos()
* ircd/os_generic.c (os_set_tos): added an os_set_tos() for
os_generic.c
* ircd/ircd.c: if there are no C-lines, we don't want to have a
timer that expires at the absolute time of 0--it kinda blocks all
the other timers!
* ircd/engine_devpoll.c: some includes for open(); declare errcode
and codesize in engine_loop()
* ircd/list.c (free_client): remove bogus check on timer active
flag
* ircd/s_auth.c: pull out destruction code in
auth_timeout_request() into an externally-visible
destroy_auth_request(); manage cli_auth pointer in client
structure; use it for an extra assertion check
* ircd/list.c: include s_auth.h for destroy_auth_request(); add
debugging notices to show flow when deallocating
connections/clients; call destroy_auth_request() when free'ing a
client that has an auth outstanding; don't free the connection if
the process timer is unmarked but still active
* ircd/ircd_events.c: set GEN_ACTIVE when initializing a generator
and reset it before calling the event handler for an ET_DESTROY
event
* include/s_auth.h (destroy_auth_request): declare
destroy_auth_request(), which can be used to destroy an
outstanding auth request if a client socket goes away before the
auth exchange is completed
* include/ircd_events.h: add an active flag to keep track of
whether or not particular generators are active, for the
convenience of functions using the API
* include/client.h: add a pointer for auth requests to struct
Connection so we can kill outstanding auth requests if a client
socket closes unexpectedly
* ircd/s_bsd.c: cli_connect() could become 0 during the course of
the sock or timer callback; take that into account in the assert
* ircd/list.c: add magic number checking and setting--magic
numbers are zero'd on frees to detect double-frees; add back
setting of cli_from() to 0 to break the back-link from the struct
Connection (duh)
* ircd/ircd.c: set me's magic number correctly
* include/client.h: define magic numbers and accessor/verifier
macros
* ircd/list.c: assert that dealloc_client() is called with
cli_connect(cptr) == 0; set cli_connect(cptr) to 0 before calling
dealloc_client(); don't mess with cli_from(cptr)
* ircd/s_bsd.c: only attempt to dealloc a connection if the
associated client has already been destroyed, or at least delinked
2001-06-05 Kevin L. Mitchell <[email protected]>
* ircd/list.c (free_client): only try to delete the socket when
the fd hasn't already been closed, avoiding a double-free
* ircd/list.c (free_connection): make sure the client is really
gone before doing away with the connection
* ircd/s_bsd.c: record that socket has been added in con_freeflag
field; queue a socket_del() as soon as the socket is close()'d;
use con_freeflag & FREEFLAG_TIMER instead of con_timer; clear
FREEFLAG_SOCKET on ET_DESTROY event in client_sock_callback(),
then dealloc the connection if safe; mark socket as dead when
there's a read error or EOF; clear FREEFLAG_TIMER flag upon entry
to client_timer_callback(); dealloc connection if safe upon
ET_DESTROY event in client_timer_callback()
* ircd/list.c: use con_freeflag instead of con_timer; only dealloc
the connection if both socket and timer have been destroyed;
destroy both socket and timer explicitly and carefully
* include/client.h: replace the con_timer field with a
con_freeflag field, to indicate what still needs freeing; define
the freeflags
* ircd/engine_select.c (engine_loop): duh...sockList[i] could
become 0
* ircd/engine_devpoll.c (engine_loop): duh...sockList[i] could
become 0
* ircd/s_bsd.c: add some extra assertions to try to track down a
corruption problem
* ircd/engine_select.c (engine_loop): add an extra assert to try
to track down a corruption problem
* ircd/engine_poll.c (engine_loop): add an extra assert to try to
track down a corruption problem
* ircd/engine_kqueue.c (engine_loop): add an extra assert to try
to track down a corruption problem
* ircd/engine_devpoll.c (engine_loop): skip slots that have become
empty during processing; add an extra assert to try to track down
a corruption problem
* ircd/engine_kqueue.c (engine_delete): make sure to zero deleted
entries
2001-06-04 Kevin L. Mitchell <[email protected]>
* ircd/s_bsd.c (client_sock_callback): client is no longer
blocked, so we must mark it as unblocked
* ircd/engine_select.c: add Debug() calls galore; add handling for
SS_NOTSOCK; use a dummy sock variable to keep things from
disappearing on us; correct timeout calculation; update nfds for
efficiency
* ircd/engine_poll.c: use new debugging level (DEBUG_ENGINE);
remove a spurious "if (sock)" which will always be true; update
nfds for efficiency
* ircd/engine_kqueue.c: add Debug() calls galore; add handling for
SS_NOTSOCK (just in case); correct timeout calculation
* ircd/engine_devpoll.c: add Debug() calls galore; add handling
for SS_NOTSOCK; correct timeout calculation; add EAGAIN handling
* include/s_debug.h (DEBUG_ENGINE): add new debugging level;
pretty-indent numbers
* ircd/engine_poll.c (engine_loop): break out SS_NOTSOCK
case--it's not a socket; the check for writability is most likely
not needed, but present for completeness
2001-05-24 Kevin L. Mitchell <[email protected]>
* ircd/s_bsd.c: add Debug messages; call read_packet() even if the
no newline flag is set; call read_packet() when the timer expires,
regardless of what's in the buffer--read_packet() should be able
to deal properly
* ircd/IPcheck.c (ip_registry_connect_succeeded): correct a NOTICE
sent to clients to include the client nickname (duh)
* ircd/ircd_events.c: don't destroy a timer if it's already marked
for destruction; replace a missing ! in socket_del()
* ircd/engine_poll.c (engine_loop): reference a temporary variable
so we don't have to worry about sockList[i] going away
* ircd/s_bsd.c (client_sock_callback): add Debug messages
* ircd/s_auth.c: add Debug messages all over the place
* ircd/ircd_events.c: add and edit some Debug messages; add a list
of routines to convert some of the enums and flags from numbers
into human-readable strings for the Debug messages
* ircd/engine_poll.c: hack some Debug messages to use the new name
conversion routines in ircd_events.c; add an extra assert for a
condition that shouldn't ever happen; apparently recv() can return
EAGAIN when poll() returns readable--I wonder why...
* include/ircd_events.h: declare some helper routines under
DEBUGMODE
2001-05-23 Kevin L. Mitchell <[email protected]>
* ircd/s_bsd.c (client_sock_callback): add an extra assertion
check
* ircd/s_auth.c: add more Debug messages
* ircd/list.c (make_client): add an extra assertion check
* ircd/ircd_events.c (socket_events): don't call the engine events
changer if we haven't actually made any changes to the event mask
* ircd/uping.c: add some Debug messages
* ircd/s_stats.c: document new /STATS e
* ircd/s_err.c: add RPL_STATSENGINE to report the engine name
* ircd/s_bsd.c: remove static client_timer variable; in
read_packet(), if there's still data in the client's recvQ after
parsing, add a 2 second timer (con_proc); fix the ET_DESTROY case
of client_sock_callback to handle destroying the timer properly;
rewrote client_timer_callback from scratch to be called on an
individual client
* ircd/m_stats.c: add /STATS e to report the engine name
* ircd/list.c: deal with con_timer field in struct Connection
properly; correct a core-level bug in remove_client_from_list--if
the client is the only one in the list, we try to update
GlobalClientList's cli_prev pointer--not good
* ircd/ircd.c: remove call to init_client_timer()
* ircd/engine_poll.c: made Debug messages more uniform by
prepending "poll:" to them all; corrected an off-by-one error that
caused poll_count to be 1 less than the actual count and removed
my work-around; added Debug messages to indicate which socket is
being checked and what the results are
* ircd/Makefile.in: ran a make depend
* include/s_bsd.h: remove init_client_timer(), since we're doing
it differently now
* include/numeric.h (RPL_STATSENGINE): a stats reply to report the
engine name
* include/ircd_policy.h (HEAD_IN_SAND_STATS_E): turn off /stats e
reports for non-opers
* include/client.h: add con_timer and con_proc fields to struct
Connection and define accessor macros--con_timer marks that
con_proc contains a valid timer, and con_proc is used to pace user
data
* ircd/s_bsd.c (close_connection): let free_client() destroy the
socket
* ircd/s_auth.c (start_auth): add a Debug call to indicate when
auth has begun on a client
* ircd/ircd_events.c: ensure that event_execute() is called with a
non-NULL event; modify event_add() macro to properly zero list
bits; modify gen_dequeue() to not try to clip it out of a list
it's already been clipped out of; change signal socket
initialization to use state SS_NOTSOCK; permit timeout values of
0 in add_timer(); add many Debug calls; change socket_del() and
timer_del() to always set the GEN_DESTROY flag; use GEN_MARKED in
timer_run() instead of GEN_DESTROY so that event_generate() will
pass on the events; remove the switch and replace with a simpler
if-then-else tree in timer_run(); don't allow destroyed sockets to
be destroyed again, nor their states or event masks to be changed
* ircd/ircd.c: initialize "running" to 1
* ircd/engine_poll.c: deal with SS_NOTSOCK "sockets"; add Debug
messages all over the place; fix a counting problem in
engine_add(); turn wait into a signed integer and set it to -1
only if timer_next() returns 0; adjust wait time to be relative;
don't call gen_ref_dec() if socket disappeared while we were
processing it
* include/ircd_events.h: the pipe for signals is not a socket, so
we must mark it as such--added SS_NOTSOCK for that special socket;
events won't be generated if GEN_DESTROY is on, so add GEN_MARKED
for the benefit of timer_run()
* configure.in: add --enable-pedantic and --enable-warnings to
turn on (and off) -Wall -pedantic in CFLAGS
2001-05-21 Kevin L. Mitchell <[email protected]>
* ircd/s_conf.c: change "s_addr" element accesses to "address"
element accesses
* include/s_conf.h: on some systems, "s_addr" is a macro; use
"address" instead
2001-05-18 Kevin L. Mitchell <[email protected]>
* ircd/engine_kqueue.c: include ircd_alloc.h; set_or_clear returns
void in this file; add a missing semi-colon; declare errcode,
codesize
* ircd/uping.c (uping_sender_callback): it's pptr, not uping
* ircd/s_user.c (register_user): comment out spurious reference to
nextping
* ircd/s_serv.c (server_estab): comment out spurious reference to
nextping
* ircd/s_conf.c (read_configuration_file): comment out spurious
reference to nextping and nextconnect
* ircd/s_bsd.c: comment out some spurious references to formerly
global (now non-existant) variables; correct a couple of typos
* ircd/s_auth.c: pre-declare some functions referenced in the
callback; correct a typo
* ircd/res.c (start_resolver): pass errno value of ENFILE
* ircd/listener.c (accept_connection): you know your API is messed
up when...variables that shouldn't have been global crop up in
other files
* ircd/list.c (free_client): substitution of == for =
* ircd/ircd_signal.c: include assert.h for assertion checking;
check ev_data() to find out what signal generated event
* ircd/ircd_events.c: some references to the variable "timer"
should have been references to the variable "ptr"
* ircd/engine_select.c: it's struct fd_set, not struct fdset;
ev_timer(ev) is already a timer pointer; declare codesize as a
size_t to correct signedness issue; use timer_next(), not
time_next()
* ircd/engine_poll.c: ev_timer(ev) is already a timer pointer;
select fd out of struct pollfd in assertion checking; declare
errcode and codesize; use timer_next(), not time_next()
* ircd/engine_kqueue.c: ev_timer(ev) is already a timer pointer;
use function timer_next(), not time_next()
* ircd/engine_devpoll.c: ev_timer(ev) is already a timer pointer;
use function timer_next(), not time_next()
* ircd/Makefile.in (IRCD_SRC): add ircd_events.c to the list of
compiled sources; do make depend
* include/list.h: pre-declare struct Connection
* include/ircd_events.h (gen_ref_inc): cast to the right structure
name
* include/s_auth.h: duh; missing */
2001-05-10 Kevin L. Mitchell <[email protected]>
* ircd/send.c: update write events status after sending data or
accumulating data to be sent
* ircd/m_list.c (m_list): update write events status after
canceling a running /list
* ircd/channel.c (list_next_channels): update write events status
after listing a few channels
* ircd/s_bsd.c: extensive changes to update to new events model;
remove on_write_unblocked() and the two implementations of
read_message(), which have been deprecated by this change
* ircd/s_auth.c: set the socket events we're interested in for
clients; simplify some logic that does the connect_nonb followed
by the socket_add
* ircd/list.c: define free_connection() to free a connection
that's become freeable once the struct Socket has been
deallocated; fix up free_client() to take this new behavior into
account