-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
3084 lines (2662 loc) · 157 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
TODO:
* core/modules.c, core/init.*: to do partial reloading of config.
* tree/tree.c: to join small nodes in Delete_Key() (?).
* core/lib.c: to implement %{subfmt} macro and SetSubformat().
* core/journal.c: to implement transactions journal (for botnet, etc.).
* modules/irc*: to do something with ident masks?
* core/wtmp.c: to handle errors somehow?
* core/direct.c: to add support for charset and comments in motd file.
* core/socket.c: to make socket limit extendible.
* core/lib.c: to fail if unable to set desired locale.
* modules/ircd: to test if both locales are valid and fail.
* modules/ircd: to review against IRCd 2.11.2 for compliance.
* *: to check Add_Request/New_Request coming to user to be translatable.
* modules/ircd: to support command LANG for numerics translation.
* modules/ircd: to allow MODE KILL KICK TOPIC INVITE to be used by the
service with admin rights.
Mon May 11 2020 Andriy Grytsenko <[email protected]>
* core/direct.c: added prototypes to match in Dcc_Parse() to be safe.
* core/help.c: topic text on new line should not include space.
* core/help.ci, doc/modules.api: changed behavior of Get_Help_L() for
each=-1, it will not wrap lines sent.
* core/socket.c: fixed crash due to missing lock in AssociateSocket().
* core/sheduler.c: fixed bug where not all flood timers were processed.
* doc/HOWTO.ircd: added new HOWTO file.
* modules/ircd/channels.c: fixed crash in ircd_char2umode().
* modules/ircd/clients.c, modules/ircd/numerics.h, modules/ircd-rusnet/rusnet.c:
added a bit of multilanguage support, not activatable yet.
Sat May 9 2020 Andriy Grytsenko <[email protected]>
* core/lib.c, core/protos.h, doc/modules.api: added new function
match_simple_ic() to do case-insensitive matching.
* modules/ircd/channels.c, modules/ircd/clients.c, modules/ircd/ircd.c, modules/ircd/messages.c, modules/ircd/queries.c, modules/ircd/sendto.h, modules/ircd/servers.c:
use low case server name only for internal checks, never show
it to any client.
* core/socket.c: fixed spurious socket wake-ups due to raised
POLLHUP flag at handshake stage.
* modules/ircd/ircd.c: fixed sending PING to servers, it might be
delayed too much.
* core/dispatcher.c: mark interface if it got I_FINWAIT after run.
* core/socket.c: fixed case if something left in the socket, in such
case callback should be called and owner must be marked to run.
* core/sheduler.c: lowered debug level on trying to add duplicate timer.
* modules/ircd/ircd.c: fixed wakeup after penalty to be more reliable.
* modules/ircd/clients.c, modules/ircd/messages.c, modules/ircd/ircd.ref, modules/ircd-rusnet/rusnet.c, doc/modules.api:
expanded "ircd-check-message" to check private messages to users.
* modules/ircd/channels.c: fixed user MODE propagation via IMODE.
* modules/ircd-rusnet/rusnet.c: changed umode +R to +I, added umode +R.
Thu May 7 2020 Andriy Grytsenko <[email protected]>
* modules/ircd-rusnet/rusnet.c: workarounded an issue with random()
range on Solaris (it may exceed RAND_MAX).
* modules/ircd/channels.c: fixed incomplete initialization of CMASKL.
* modules/ircd/ircd.c: loosed on client names that come from servers.
* configure: dropped flag '-fast' from CFLAGS on Solaris: too unstable.
* modules/ircd/channels.c: fixed wrong channel "flags" like +b.
* core/socket.c: unlock and lock mutex on cancelling subthread.
Tue May 5 2020 Andriy Grytsenko <[email protected]>
* modules/ircd/ircd.*, modules/ircd/servers.c, modules/ircd/clients.c, modules/ircd-rusnet/rusnet.c:
reworked collision handling, it now uses "soft" collision handling
where server which got a collision resolves it for peers other than
existing client in a collision and waits for said origin to resolve
it (rename or kill the client).
Sun May 3 2020 Andriy Grytsenko <[email protected]>
* core/foxeye.h, modules/ircd/channels.c, modules/ircd/ircd.*, modules/ircd-rusnet/rusnet.c, doc/modules.api:
reworked "ircd-modechange" and "ircd-check-modechange" bindtables to
allow any mode use lists, not just +b, +e and +I.
* modules/ircd-rusnet/rusnet.c: added support for user and channel modes
+R (identification with services related).
Fri May 1 2020 Andriy Grytsenko <[email protected]>
* core/help.c: fixed invalid memory access in _delete_help_lang().
* modules/ircd/ircd.c: lowered message level on unknown user mode from
the neighbour server to warning from error.
* modules/ircd/channels.c: lowered message level on alien channel mode
change coming from neigbour server to warning from error.
* core/foxeye.h, modules/ircd/channels.c: allowed non-ops do channel
mode change for some networks, #define ALLOW_NOOP_CHANMGMT 1 to allow
such behavior.
* modules/ircd/ircd.c: rewritten _ircd_transform_invalid_nick() to allow
non-ascii chars in nick.
* modules/ircd/ircd.c: fixed missing correction if not set define on
IRCD_KILL_INVALID_NICK.
* modules/ircd/ircd.c: fixed (again) client message simulation.
* modules/ircd-rusnet/rusnet.c: fixed sending 470 numeric on +z join.
Wed Apr 29 2020 Andriy Grytsenko <[email protected]>
* core/connchain.c: fixed invalid 'x' filter sending when buffer wasn't
empty.
* core/direct.c: set test variable in accept thread to volatile, that
seemed to terminate thread unexpectedly.
* core/dispatcher.c, modules/ircd-rusnet/rusnet.c: fixed missing reset
on ShutdownR value after seinding signals.
* core/dispatcher.c: added a safeguard against failed conversion when
sending requests.
* modules/ircd/channels.c, modules/ircd/ircd.c: fixed missing fields
initialization creating new channels or clients.
* modules/ircd/ircd.c: fixed missing data check in _ircd_class_in().
* modules/ircd/ircd.c: added a safeguard to _istats_l() - it should be
impossible there but still...
* modules/ircd/ircd.c: fixed wrong remote clients init after reconnect.
Mon Apr 27 2020 Andriy Grytsenko <[email protected]>
* modules/ircd/ircd.*, modules/ircd/messages.c, modules/ircd/queries.c, modules/ircd/servers.c, modules/ircd/channels.c, modules/ircd-rusnet/rusnet.c:
fixed handling of peer_t as NULL (in case of internal source).
* modules/ssl/openssl.c: added call to SSL_set_shutdown() on finish.
* modules/ircd/ircd.c: fixed processing of internal sourced messages
(e.g. ones coming from bindings), client simulation should never have
NULL peer and messages from ME should go through server bindtable.
* modules/ircd-capab/ircd-capab.c: reworked peer links using PeerData
interface to have reliable deallocation on them.
* core/dispatcher.c: create a core dump on memory allocation error.
Sat Apr 25 2020 Andriy Grytsenko <[email protected]>
* modules/ircd/ircd.c: fixed crash on S_REPORT on registering client.
* modules/ircd/ircd.c: fixed issues after user dropped by overloads.
* core/list.c: fixed statistic value for unnamed bans.
Fri Apr 24 2020 Andriy Grytsenko <[email protected]>
* core/direct.c, modules/ircd/ircd.c: fixed error with thread detach,
added a bit more debug.
* modules/ircd/ircd.c: fixed invalid collision names handling on new
NICK from server.
Thu Apr 23 2020 Andriy Grytsenko <[email protected]>
* core/direct.c, core/init.c, core/lib.c, core/protos.h, modules/ircd/queries.c, modules/lua/lua.c:
changed to use safe_pfree() or safe_free() instead of free(), and
safe_calloc() instead of calloc().
* modules/irc-ctcp/dcc.c, modules/ircd/ircd.c: added resetting data
pointer on S_SHUTDOWN as it might be async.
* core/foxeye.h, core/list.c, doc/modules.api, modules/ircd/ircd.c:
fixed test for subrecords expiration time, Find_Userrecord() in case
of full host scan should not take into consideration expired records.
* modules/ircd/ircd.c: fixed processing messages initiated by bindings,
they should be processed in accordance with syntax, not always as if
it was user simulation.
* modules/ircd/ircd.c: fixed $@ processing by S_REPORT, it should print
not just <hostname> but <ident>@<host>.
* modules/ircd/ircd.c: fixed registration responces: ERR_NOTREGISTERED
was missing.
* modules/ircd/ircd.c: @<network> interface should provide not just an
interface for messages to clients but also interface to send a signal
to all local users.
* modules/ircd-rusnet/rusnet.c: fixed not working KLINE command.
Wed Apr 22 2020 Andriy Grytsenko <[email protected]>
* modules/ircd/accvs.api, modules/ircd/messages.c, modules/ircd-rusnet/rusnet.c:
added A_PINGED special meaning for "ircd-set-message-targets" binding
parameter to not process marks but just validate.
* modules/ircd/messages.c: fixed SQUERY messages processing, it should
accept only single service name.
* modules/ircd-rusnet/rusnet.c: fixed KLINE processing from server, it
should accept timestamp instead of hours number or -1 to clear ban.
* modules/ircd/ircd.c: fixed crash after auth filter failure.
Tue Apr 21 2020 Andriy Grytsenko <[email protected]>
* intl/VERSION: bump to gettext-0.19.8.
* modules/ircd/accvs.cfg, modules/ircd/ircd.c: fixed invalid nick try
to correct on invalid remote nickchange, added IRCD_KILL_INVALID_NICK
to control that behavior.
* modules/ircd/ircd.c: fixed crash after K-line received.
* modules/ircd/accvs.api, modules/ircd/messages.c: added mode flags
parameter to "ircd-set-message-targets" bindtable, A_ISON controls
whether local recipients should be activated or opposite.
* modules/ircd/messages.c: fixed SQUERY recipients parse: should be
either service name or service@server form.
* modules/ircd-rusnet/accvs.cfg, modules/ircd-rusnet/rusnet.c: fixed
NICKSERV and like command handling: it should also provide custom
recipients mark when coming from module to remote service.
--- release 0.12.1 ---
Mon Apr 20 2020 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: don't report invalid token if RFC1459 'SERVER'
message was received.
* modules/ziplink/ziplink.c: fixed invalid input stream processing in
case if inflate() left something in buffer unprocessed.
* modules/ircd/servers.c: added channel name to diagnostics message.
* modules/ircd/channels.c: don't send mode cancellations on behalf of
server which made the mode change.
Sun Apr 19 2020 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.h: fixed build with -fno-common (default in gcc-10).
* modules/ircd/queries.c: fixed invalid processing of whowas list.
* core/connchain.c: fixed 'x' chain receive when buffer is wrapped.
Sat Apr 18 2020 Andriy Gritsenko <[email protected]>
* modules/lua/lua.c: fixed build with Lua 5.3.
Sat Nov 25 2017 Andriy Gritsenko <[email protected]>
* configure: added largefile support macros.
--- [0.11.0 end] (released 0.12.0)
Wed Nov 22 2017 Andriy Gritsenko <[email protected]>
* configure: added summary block after running.
* core/direct.c: fixed support for non-channel service in console cmd.
* core/socket.c: simplified processing in ReadSocket() function, it may
not check for POLLIN event, read() will handle everything correctly.
* modules/ircd: added IRCD_TRUST_SERVER_NAME define to skip validation
of server name coming from another server against RFC1035.
Fri Jul 21 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: treat too long ident as OTHER type ident.
Wed Jul 19 2017 Andriy Gritsenko <[email protected]>
* configure: added support for Lua 5.2 and 5.3.
Fri Jun 30 2017 Andriy Gritsenko <[email protected]>
* core/wtmp.c: fixed crash on negative uids in RotateWtmp(), those uids
should be not rotated into wtmp.gone but dropped.
Sat Jun 17 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: skip ERR_UNKNOWNCOMMAND at registering state, as
most of ircd implementations do.
* modules/ircd/ircd.c: use server name instead of host in the arguments
of "ircd-server-handshake" bindings.
* modules/ircd/ircd.c: report unsupported PASS options as warnings, not
errors.
* modules/ircd-capab/ircd-capab.c: rewritten CAPAB message processing,
it should go before PASS message so it'll be taken into consideration
in the burst. Added "ircd-capab-blacklist" variable to exclude servers
from sending them CAPAB message.
Fri Jun 16 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: make PASS/SERVER message in a single place.
* modules/ircd/ircd.c: added new bindtable "ircd-drop-unknown".
* modules/ircd/ircd.c: added new bindtable "ircd-server-handshake".
* core/connchain.c: made "x" filter capable of keep more than a single
message in buffers.
Thu Jun 15 2017 Andriy Gritsenko <[email protected]>
* modules/irc/irc.c: fixed never occuring restart of connect list (as
it should be after "irc-next-try" timeout).
Sun Jun 4 2017 Andriy Gritsenko <[email protected]>
* core/foxeye.h, core/dispatcher.c: new F_RAW message flag to don't do
any message conversions.
* modules/ircd/clients.c: added missing send NICK to client on charset
change if new nick appearance is different from old one.
* core/list.c: fixed crash in Get_Clientlist() on a ban record.
* modules/ircd-rusnet/rusnet.c: fixed KLINE, etc. - it should create
records of U_DEOP to work properly, said U_DEOP anyway will not affect
direct connect being unnamed.
* modules/ircd-rusnet/rusnet.c: restricted mask on KLINE, etc. to expect
to have '@'.
* modules/ircd-rusnet/rusnet.c: allowed optional *! or ! prefix to the
mask for UNKLINE, etc.
* modules/ircd-rusnet/rusnet.c: fixed STATS K, etc.
Sat Jun 3 2017 Andriy Gritsenko <[email protected]>
* modules/ssl/openssl.c: return error on sending data if previous read
from socket failed, that will drop connection immediately instead of
waiting for a timeout in case of EOF.
* modules/ircd/ircd.c: report actual socket error on client disconnect
instead of default "Connection timeout".
* modules/ircd/ircd.c: don't eat CPU in send cycle in the prehandler
callback, that will be done in regular request handler later.
* modules/ssl/openssl.c: optimized ssl handshake processing.
Fri Jun 2 2017 Andriy Gritsenko <[email protected]>
* core/dispatcher.c: added check for deadlock in dprint().
* core/connchain.c, modules/ziplink/ziplink.c, modules/ssl/openssl.c:
disassociate connchain on its termination from the socket.
Wed May 31 2017 Andriy Gritsenko <[email protected]>
* core/lib.c: fixed infinite loop on substitution text containing just
garbage.
Thu Mar 23 2017 Andriy Gritsenko <[email protected]>
* modules/ssl/openssl.c, modules/ssl/accvs.m4: added support for libssl
version 1.1.
Sun Feb 26 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: fixed crash on TRACE reply on unknown connection.
Sat Feb 25 2017 Andriy Gritsenko <[email protected]>
* core/help.c, core/protos.h, doc/modules.api, core/direct.c, core/init.c:
added possibility for Get_Help_L to include prefix to each message
sent, not just first one.
* core/init.c: use U_NEGATE in Check_Bindtable() parameter as a
"never match" flag.
* modules/ircd/clients.c, modules/ircd/ircd.help, modules/ircd/numerics.h:
implemented a client command "HELP".
* modules/ircd/clients.c: send IP in USERHOST reply to client themself.
Some clients may rely on that to retrieve own IP for DCC commands.
Thu Feb 23 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: fixed nickchange testing, it should be tested
early and never tried to send to neighbours again.
Wed Feb 22 2017 Andriy Gritsenko <[email protected]>
* modules/irc/irc.c, modules/irc/msgs.c: fixed privmsgout processing.
* modules/tcl/modtcl.c, configure: fixed detect of Tcl 8.x version and
processing result with no 8.x version detected.
Tue Feb 21 2017 Andriy Gritsenko <[email protected]>
* core/foxeye.h, core/sheduler.c, doc/modules.api, modules/irc-channel/irc-channel.c, modules/ircd/channels.c, modules/ircd/ircd.c:
added new signal S_WAKEUP for purpose of waking up interface by timer.
* doc/modules.api: documented changes in connchain behavior (due to
changes in socket events processing), and new APIs.
* modules/logs/logs.c, modules/autolog/autolog.c: fixed build failure
on non-GNU systems.
* core/foxeye.h, configure: define _GNU_SOURCE only on Linux, it is
required for struct ucred, and undef on other platforms.
Fri Feb 17 2017 Andriy Gritsenko <[email protected]>
* core/dispatcher.c: never lock mutex in signal handler, use pipe to
deliver signal number to the dispatcher.
* core/init.c: enforced saving "locale" in the generated config: when
started by cron it may have another value in environment.
* modules/ircd-rusnet/rusnet.c: fixed unitialized value on service call.
* modules/ircd/channels.c: fixed invalid formatting on RPL_ISUPPORT.
* core/dispatcher.c, core/socket.*, core/foxeye.h, core/protos.h, core/connchain.c, core/direct.c, core/main.c, core/sheduler.c, modules/autolog/autolog.c, modules/irc-channel/irc-channel.c, modules/irc/irc.c, modules/ircd/ircd.*:
reworked interfaces requests. Instead of querying each interface in
each cycle and do cycles each 200 ms at most, dispatcher now will be
put into sleep if there is no job for any interface. Polling will be
also done in a separate thread and will also sleep until some event
happens, then it will call a callback bound to the appropriate socket
(using AssociateSocket() API) which will wake up the thread waiting
for the event. If interface wants to be waked up, it may ask the
dispatcher using Mark_Iface() API, that will work either from the
request or signal handler, or even from any thread which is sure that
the interface is alive while the call is processed. If request handler
returns REQ_REJECTED, next try may be done due in half of second, or
faster, depending if some other interface is ready to accept requests.
That possible delay is added in regard of modules such as "irc" which
may forcibly suspend delivery of messages, so will not accept request
right away anyway. So far, there will be at least 5 threads sleeping
now: dispatcher, scheduler, UNIX signals receiver, poll, and the poll
controller, more threads may be added by modules (such as listener
threads, including those that are usually added by "port" command in
config).
Thu Feb 16 2017 Andriy Gritsenko <[email protected]>
* core/list.c: corrected support saved hostmasks with passwords by
Find_Clientrecord().
* modules/ircd/ircd.c: added check for maximum clients on login (it
cannot exceed 10000 due to other limitations), and incoming server
should not stay classless until we verify it's really a server.
* modules/logs/logs.c: added check on "logrotate-time" variable value,
it might crash on too short length.
Wed Feb 15 2017 Andriy Gritsenko <[email protected]>
* core/sheduler.c: process timers in the separate thread with sleeping
to reduce CPU consumed.
* core/sheduler.*, core/dispatcher.c, doc/modules.api, core/modules.c, modules/irc-channel/chmanagement.c, modules/irc-channel/irc-channel.c, modules/irc-ctcp/dcc.c:
new APIs: Add_Schedule(), Stop_Schedule(), Add_Timer().
Tue Feb 14 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/channels.c, modules/ircd/ircd.*, doc/modules.api: added
new bindtable "ircd-eob" to inform modules about channel burst done.
Mon Feb 13 2017 Andriy Gritsenko <[email protected]>
* core/dispatcher.c: do restart properly: shutdown everything and then
re-exec the process, instead of just restarting the modules.
* core/help.c, core/protos.h, doc/modules.api: added new function
Get_Help_L() for any custom language help, not default one.
* core/direct.c, core/init.c: localized help in direct chat messages.
* core/lib.c: fixed printl() wrapping with multibyte encodings.
Sun Feb 12 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: reworked multiconnect diagnostics on SQUIT.
* modules/ircd-rusnet/rusnet.*: use "ircd.rmotd" default value for
rusnet-rmotd-file variable.
Sat Feb 11 2017 Andriy Gritsenko <[email protected]>
* core/direct.*: added support for language on per-session basis.
* modules/ircd/management.c: added command "-hub" to negate "+hub".
* core/direct.c: correctly show usage on ss-* bindings on wrong use.
* modules/ircd/management.c: added command "class" to change class
parameters.
Fri Feb 10 2017 Andriy Gritsenko <[email protected]>
* core/list.c: fixed host pattern check, +host failed on IPv6 address.
* modules/ircd-rusnet/rusnet.c: stats k/e shouldn't show server records.
* modules/ircd/ircd.c, modules/ircd/clients.c, modules/ircd/servers.c:
fixed invalid ISERVER and SQUIT processing when processed server was
a phantom.
* modules/ircd/ircd.c: implemented following class name change.
* core/protos.h, core/init.c, doc/modules.api: added new bindtable
"update-public" and new function Update_Public() as a shortcut to a
network-specific function to change mode or topic of a community.
* modules/ircd/management.c, modules/ircd/ircd.c: moved "+hub" command
from "dcc" into "ss-ircd" bindtable.
Thu Feb 9 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: never create ACK for NULL client.
* modules/ircd/ircd.c: fixed missing host->phantom relation cleanup.
Tue Feb 7 2017 Andriy Gritsenko <[email protected]>
* modules/ircd-rusnet/rusnet.c: added support for TOPIC and KICK by a
channel half-op. KICK is limited to one client at a time for half-op.
* modules/ircd/channels.c, modules/ircd/clients.c, modules/ircd/ircd.*, modules/ircd/queries.c, modules/ircd/servers.c:
fixed support on multiple mode chars on a channel member.
* modules/ircd/ircd.c: token for introduced server should be sent to
multiconnected server back as well to be able to introduce clients
from another direction later.
* modules/ircd/ircd.c, modules/ircd/queries.c: reworked multiconnect
checks on CONNECT and SQUIT, it's simpler and more reliable now.
Mon Feb 6 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/queries.c: don't notify users on WHOIS on themselves.
* modules/ircd/queries.c: reordered WHOIS replies: channels should be
second, idle should be last, that's how it used to be.
* modules/ircd/ircd.c: fixed token processing in SERVER and ISERVER:
even if link is already known, token should be added to the peer.
* modules/ircd/servers.c, modules/ircd/channels.c, modules/ircd/clients.c, modules/ircd/ircd.*, modules/ircd/messages.c:
denied sending messages such as MODE, TOPIC, PRIVMSG, NOTICE, SQUERY
and numerics via multiconnect capable links to avoid cycles. Those
messages will be converted to messages with IDs and sent reliably.
Sun Feb 5 2017 Andriy Gritsenko <[email protected]>
* modules/ircd-rusnet/rusnet.c: collision changed nick should be
different for local client and for remote client.
* modules/ircd/queries.c: fixed invalid call of "ircd-whois" bindings.
* modules/ircd/ircd.c: reworked collisions handling: simplified a call
to the bindings; eliminated try to "fix" wrong nickchange from a
server - if server made such error then it hardly is good enough to
accept a fix, so only way is to send a KILL; fixed wrong processing
on incoming nick change by a binding.
Sat Feb 4 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: reworked phantoms handling on QUIT or on SQUIT,
local client should be converted into phantom right away, and name
should stay accessible until client structure is destroyed (i.e. the
last message was sent, hold expired, and ACKs received).
Fri Feb 3 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: fixed crash in multilink mode due to invalid
freeing of client by ack while it was still kept to send last message.
* modules/ircd/ircd.c, modules/ircd/sendto.h: never send duplicate SQUIT
to RFC servers.
* modules/ircd/ircd.c: fixed _ircd_do_server_numeric() sender test, it
might send INUM back to sender.
* modules/ircd/ircd.c: again fixed sending SQUIT back to the origin.
Thu Feb 2 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: shifted strictness on server connection flags,
some servers may sent not negotiated flags but all supported ones.
* modules/ircd/queries.c: fixed counting clients on /lusers reply.
* modules/ircd/queries.c: fixed hangup on /whois with extra modules.
Wed Feb 1 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/channels.c, modules/ircd/ircd.*: added check for channel
rules when user changes nick using "ircd-check-modechange" bindtable,
e.g. if channel has a policy to not accept certain nicks then such
change will be refused. Sending a numeric on rejected join in now a
mandatory call for these bindings.
* modules/ircd-rusnet/rusnet.c: added a ERR_7BIT numeric for +z mode.
* modules/ircd/channels.c: fixed ISUPPORT collection from modules.
Tue Jan 31 2017 Andriy Gritsenko <[email protected]>
* modules/ircd-rusnet/rusnet.c: fixed message by /nickserv, etc.
* modules/ircd/ircd.c: fixed forgotten PING after server reconnect.
Sun Jan 29 2017 Andriy Gritsenko <[email protected]>
* doc/module.template.c: updated the module template.
* doc/modules.api, modules/ircd/ircd.c: added two bindtables related
to local connections: "ircd-got-server" and "ircd-lost-server".
* modules/ircd-capab/*: new module, support for IRCD command CAPAB.
Sat Jan 28 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/channels.c: fixed channel reop time processing.
* modules/ircd/servers.c: fixed ACKs processing.
* modules/ircd/clients.c, modules/ircd/ircd.c, modules/ircd/queries.c, modules/ircd/sendto.h, modules/ircd/servers.c:
fixed sending numerics, they should be never sent back to the sender.
* modules/ircd/messages.c: also send IPRIVMSG/INOTICE by alternate way
for exact target to ensure delivery.
* modules/ircd/messages.c: implemented support for NOTICE from servers.
* modules/ircd-rusnet/*: new module, implementation RusNet IRC network
extensions.
Thu Jan 26 2017 Andriy Gritsenko <[email protected]>
* core/lib.c: enforced setting LC_CTYPE for mbrtowc() call sake.
* modules/ircd/channels.c: added NICKTEST into RPL_ISUPPORT with charset
being used to validate names.
* modules/ircd/queries.c: added sending NOTICE to WHOISed operator (if
defined at compile time config).
* modules/ircd/ircd.c: added support for class passwords.
Wed Jan 25 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/servers.c: fixed invalid channel validation on NJOIN.
* modules/ircd/queries.c: fixed wrong services count on LUSERS.
--- [0.10.2] end (released 0.11.0)
Tue Jan 24 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: fixed dropping CLIENT where it should not.
* modules/ircd/servers.c: fixed ACKs processing.
* modules/ircd/ircd.c: fixed missing ACK QUIT on backup message.
* modules/ircd/servers.c: don't send errors for duplicate JOIN and PART
from a multiconnected server.
* core/main.c, modules/ircd/queries.c, doc/foxeye.1: updated copyright
years in messages.
Mon Jan 23 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: revised phantoms relations, some problems found.
Sat Jan 21 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: fixed wrong sending SQUIT and NICK back to the
origin.
* modules/ircd/ircd.c: fixed invalid token setting on local connect of
server which was already introduced as remote.
* modules/ircd/ircd.c: fixed wrong refused server name processing.
* modules/ircd/channels.c, modules/ircd/ircd.*: fixed invalid usage of
CLIENT_IS_REMOTE() macro.
* modules/ircd/ircd.c: fixed crash on module termination.
* modules/ircd/ircd.c: corrected point of removing name from the list.
* modules/ircd/ircd.c: fixed tokens handling in multiconnect mode.
* modules/ircd/ircd.c: fixed SQUIT message processing in multiconnect
mode.
Wed Jan 18 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: don't send error replies to a killed client.
* modules/ircd/ircd.c: fixed not initialized memory on remote ISERVER.
* modules/ircd/ircd.c: fixed connection data after local connect of
already known server (as remote).
* modules/ircd/ircd.c: fixed autoconnect retry on connection timeout
on uplink attempt.
* modules/ssl/openssl.c, modules/ziplink/ziplink.c: fixed crash on
module termination with some incomplete connection present.
* modules/ircd/ircd.c: fixed uplink interface name (was empty).
* modules/ircd/ircd.c: added a test to not send ISERVER back to itself.
Sun Jan 15 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.*: fixed issues with multiconnected SQUIT at the
same time via few servers (local and remote).
Mon Jan 2 2017 Andriy Gritsenko <[email protected]>
* modules/ircd/queries.c, modules/ircd/ircd.h: fixed issue with version
flags pointer.
* modules/ircd/clients.c: fixed deadlock after failed OPER request.
Sun Dec 25 2016 Andriy Gritsenko <[email protected]>
* core/main.c, doc/foxeye.1, modules/ircd/queries.c: updated copyright
year to 2016.
* configure: fixed build if openssl isn't available.
Wed Dec 14 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: fixed crash on terminating unfinished connection.
Fri Oct 7 2016 Andriy Gritsenko <[email protected]>
* intl/VERSION: bump gettext included to 0.17 version.
Sun May 29 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.*: sending version flags in server handshake.
* modules/ircd/channels.c: fixed wrong MODE query reply.
Thu May 19 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c, modules/ircd/queries.c: show 'z' in trace reply
on Zlib links.
* modules/ircd/queries.c: fixed wrong counters in LUSERS replies.
Mon May 16 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: fixed few issues with multiconnected servers.
Wed May 11 2016 Andriy Gritsenko <[email protected]>
* core/socket.c: handled case if socket has more data than buffer can
receive (mark flags appropriately).
* modules/ircd/servers.c: fixed received ACK check, args count should
match expecting count.
* modules/ircd/ircd.c: corrected version string, it should match 2.10
instead of 2.11, we don't support 2.11 features.
* modules/ircd/ircd.c: fixed problems in _ircd_recalculate_hops().
Tue May 10 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.*, modules/ircd/messages.c: implemented handling
message targets such as user[%host]@servername, user%host, and
nickname!user@host.
Mon May 9 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: clarified behavior when "ircd-client-filter"
returns 0 - the IRCD should not send ERR_UNKNOWNCOMMAND to client
but binding should handle it itself.
* modules/ircd/ircd.c: added missing check for user sendq to early
diagnose user link problems.
* modules/ircd/channels.c: check channel key size for KEYLEN, the check
was missing.
* modules/ircd/channels.c: set noop_since on channel if last operator
on ! channel was deopped.
* modules/ircd/queries.c: fixed WHOWAS query database filling, it was
only last user that saved.
Sun May 8 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.*, modules/ircd/messages.c, modules/ircd/numerics.h, modules/ircd/queries.c:
added max clients statistics (RPL_LOCALUSERS, RPL_GLOBALUSERS) into
LUSERS query replies.
Sat May 7 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: pass ERR_YOUREBANNEDCREEP message to the killed
client too, not just ERROR or KILL ones.
* modules/ircd/ircd.c: fixed problem on SERVICE collision, nick on hold
should be dropped, and existing should be killed, so only possible
collision is for real services.
* modules/ssl, debian/copyright, README: renamed 'openssl' module into
'ssl' to comply with OpenSSL license, updated license information.
* modules/ircd/ircd.c, modules/ircd/channels.c: added a way to override
hardcoded NICKLEN in some limited cases.
* modules/ircd/clients.c: added override for _ircd_do_command() into
TOPIC and KICK handlers.
Fri May 6 2016 Andriy Gritsenko <[email protected]>
* core/socket.c: recheck listening socket after success on accept(), it
could get few incoming connections at once and no additional revents
received. Noticed by denk.
* core/sheduler.c: fixed scheduler timer parsing, it might fail on bad
strings. Noticed by denk.
* modules/ircd/queries.c: implemented STATS c reply, for opers only.
* modules/ircd/queries.c: implemented STATS H reply, for opers only.
* modules/ircd/messages.c: got rid of #define MAXTARGETS, it should be
based on penalty values as in original ircd.
* modules/ircd/channels.c: moved #define MAXCHANNELS into a variable
"ircd-max-channels".
* modules/ircd/ircd.c: cut all input messages by RFC size (512 chars
including CR+LF), not leave them as they are.
Thu May 5 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/channels.c: introduced "ircd-max-bans" variable to limit
bans/exempts/invites list size for each channel.
* modules/logs/logs.c: fixed infinite cycle on empty log message.
* modules/ircd/queries.c: fixed invalid handling on "ircd-max-matches".
* modules/ircd/channels.c, modules/ircd/ircd.*: added RPL_ISUPPORT to
be sent to client on registration.
* modules/ircd/ircd.c: use kill comment in the ERR_YOUREBANNEDCREEP.
* modules/ircd/ircd.c: changed server flag from U_ACCESS to U_UNSHARED,
U_ACCESS is used for exemption.
Wed May 4 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: added check on bans of mask nick!user@host after
registration, so we can check nicks as well.
* modules/ircd/queries.c: added missing RPL_LISTSTART.
* modules/ircd/channels.c: reworked binding args on "ircd-modechange",
"ircd-check-modechange" and "ircd-umodechange".
* core/direct.*, modules/irc/irc.c, modules/irc-ctcp/dcc.c, modules/ircd/ircd.c, doc/modules.api:
implemented PeerData_* functions family to allow modules attach fast
accessible data to peer_t structure.
Tue May 3 2016 Andriy Gritsenko <[email protected]>
* core/init.*, doc/modules.api: added new function GetVariable() which
grants access to variables of one module to another at init stage.
* core/foxeye.h (ircd): changed TOPICLEN to 255 as it is in IRCd 2.11.
* modules/ircd/servers.c, modules/ircd/ircd.h, modules/ircd/clients.c, modules/ircd/channels.c:
changed RPL_TOPICWHOTIME format (it should contain full mask and not
show real user for A_ANONYMOUS channel).
* modules/ircd/ircd.c: added user mode to "ircd-local-client" bindings.
* modules/ircd/ircd.c: changed "ircd-client-filter" return value, it
should return 0 to refuse, and >1 for increased penalty.
Mon May 2 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/*: added effective user mode as "ircd-client-command"
binding parameter, setting user mode by server would need it.
* modules/ircd/channels.c: added function "ircd-set-channel-topic" to
let other modules change topic.
* modules/ircd/*: implemented RPL_TOPICWHOTIME feature.
* modules/ircd/ircd.c: added few more parameters for "ircd-collision"
bindings.
* modules/ircd/channels.c: fixed arguments of "ircd-check-modechange"
binding calls, added interface pointer to it.
* modules/ircd/*: converted some of #define into variables.
Sun May 1 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/channels.c: fixed MODE change via another server: only
users can change own modes, not other users.
* modules/ircd/ircd.c: added missing I_CLIENT collector to the IRCD.
* core/foxeye.h: increased NAMEMAX to MB_LEN_MAX*LNAMELEN.
* modules/ircd/ircd.c: enabled user simulation mode (when message to
IRCD main interface received originated from local user), it supposed
to be acceptable as well, not just server simulation.
* modules/ircd/channels.c: added server name to the "ircd-umodechange"
callback function, some modes may depend on it.
* modules/ircd/queries.c: added sender mode to the "ircd-whois" binding
parameters.
Sat Apr 30 2016 Andriy Gritsenko <[email protected]>
* core/list.c: fixed Get_Clientlist() call against nonamed U_DEOP and
U_QUIET, they were missed on scan.
* modules/ircd/channels.c: fixed "ircd-check-modechange" test for the
users with +r usermode, they were denied to join any channel.
* modules/ircd/*: removed 'char *cmd' parameter from "ircd-server-cmd"
bindings, it's never used and never should.
* modules/ircd/channels.c, modules/ircd/clients.c, modules/ircd/ircd.c, modules/ircd/queries.c:
fixed missing command in ERR_NEEDMOREPARAMS numeric.
* core/list.c: added hostmask test into _add_usermask() to contain at
least a single non-wildcard char.
* core/list.c: Find_Clientrecord() should not do match() against masks
but just compare, match() is appropriate for client search, not mask.
* core/list.c: denied to add duplicate hostmask by Find_Clientrecord().
Fri Apr 29 2016 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: implemented "ircd-check-send" bindtable for sake
of modules which would send message to target *.*@<network> so they
can filter recipients using bindings on this bindtable.
* modules/ircd/ircd.c: added check with "ircd-client-filter" bindtable
before "ircd-register-cmd" processing as well.
* modules/ircd/ircd.c: added support for Lname_IsOn() for ircd network.
* modules/ircd/*: added support for visible host (A_MASKED user mode).
No actual user mode implemented, only data space preserved, support
should be implemented by network-specific module.
Thu Apr 28 2016 Andriy Gritsenko <[email protected]>
* core/connchain.c: removed "sticky" filters from connchain processing,
it will never work that way because chain anyway should be made from
scratch.
* core/connchain.*: added new API Connchain_Shrink to use by recv()
callback from filter to perform suicide.
* modules/ircd/queries.c: added new bindtable "ircd-whois" to expand
WHOIS query reply.
* modules/ircd/ircd.c: added one more parameter to the "ircd-auth"
binding to make it possible to change modeflag (may be needed e.g. in
case of restricted connection or whatever).
* modules/ircd/queries.c, modules/ircd/channels.c, modules/ircd/ircd.c, modules/ircd/numerics.h:
added special support for SSL connections: numeric on WHOIS and user
mode flag 'z'.
* modules/openssl/openssl.c: implemented "bypass mode" for OpenSSL
server connection - it will remove filter if incoming connection does
not use SSL/TLS so not encrypted connections are possible on that
port as well.
Tue Apr 26 2016 Andriy Gritsenko <[email protected]>
* modules/openssl: new module to handle connects using OpenSSL.
* modules/irc/irc.c: fixed IRC connection startup in case if connection
chain needs handshake (in case of SSL for example).
* modules/irc/irc.c: fixed infinite cycle on IRC connection termination
in case if connection chain contains some filters.
* modules/irc-channel/irc-channel.c: fixed empty "JOIN" message to IRC
server if there are no channels to autojoin.
* modules/syslog: new module to logging messages using syslog.
Thu Mar 3 2016 Andriy Gritsenko <[email protected]>
* configure: use -fPIC instead of -fpic on 64 bit Linux systems,
otherwise it fails on some archs.
--- [0.10.1] end (released 0.10.2)
Tue Jun 30 2015 Andriy Gritsenko <[email protected]>
* configure, core/Makefile, modules/Makefile.mods, core/protos.h, core/socket.c:
make it buildable on Mac OS X.
Mon Jun 29 2015 Andriy Gritsenko <[email protected]>
* core/Makefile, modules/Makefile.mods: added explisit '-lc' for shared
objects linking when needed.
* configure: fixed build using '-Wl,-z,defs' on Solaris.
Sun Jun 28 2015 Andriy Gritsenko <[email protected]>
* configure, core/Makefile, modules/Makefile.mods: removed the option
-nostartfiles from linker call on Linux, it was wrong one.
* configure, modules/Makefile.mods: added compatibility with automake
that is newer than 1.13.
Tue Jun 9 2015 Andriy Gritsenko <[email protected]>
* configure: added support for GNU/Hurd.
Thu Jun 4 2015 Andriy Gritsenko <[email protected]>
* configure: added support for GNU/kFreeBSD.
* core/main.c, modules/ircd/queries.c: updated year in copyright info
messages.
Sun Oct 19 2014 Andriy Gritsenko <[email protected]>
* Makefile: changed to use XZ compression for distro tarball.
Mon Oct 13 2014 Andriy Gritsenko <[email protected]>
* modules/ircd/servers.c: fixed ircd_test_id() bits updating.
Sun Oct 12 2014 Andriy Gritsenko <[email protected]>
* *: updated old FSF address in all files.
Sat Oct 11 2014 jcsl <[email protected]>
* po/es.po, po/LINGUAS: added new translation (Spanish).
Sun Oct 5 2014 Andriy Gritsenko <[email protected]>
* core/Makefile: fixed installation of symlink over existing one.
Sat Oct 4 2014 Andriy Gritsenko <[email protected]>
* configure, core/Makefile: fixed build on Solaris: its ld fails with
-Wl,-z,defs on shared library, it requires main().
* modules/ircd/ircd.c: added "+hub" dcc command for command line setup.
--- [0.10.0] end (released 0.10.1)
Fri Oct 3 2014 Andriy Gritsenko <[email protected]>
* configure, core/Makefile, core/main.c, core/foxeye.h, core/dispatcher.c:
moved core functions into libfoxeye.so.0.0.0, in case if confugured
for non-static compilation.
* modules/ircd/ircd.c: fixed static compilation of module 'ircd'.
* Makefile: removed useless target 'kit'.
* modules/Makefile.mods: simplified form of OBJS a little.
* modules/Makefile: recreate Makefile when Makefile.in changed.
* modules/Makefile.mods: added using libfoxeye.so.0.0.0 on linking.
* configure, core/Makefile, modules/Makefile.mods: fixed linking bugs,
added -Wl,-O1 -Wl,-z,defs to dynamic linking options.
* configure: moved flags not needed for linker from CFLAGS to CPPFLAGS.
* configure, modules/tcl/accvs.m4: fixed static compilation.
* modules/Makefile*: fixed make distcheck.
* core/Makefile: fixed build shared lib when libtree.a not ready.
* core/Makefile, modules/Makefile.mods: moved library out of the way.
* foxeye.pc: added file for pkgconfig.
* modules/irc-channel/irc-channel.c: fixed spelling error (splitted).
* modules/ircd/ircd.c: fixed spelling error (succesfully).
* configure.in: renamed into configure.ac (configure.in is deprecated).
* core/foxeye.h, core/list.c, core/wtmp.c, modules/autolog/autolog.c, modules/irc-ctcp/dcc.c, modules/logs/logs.c:
fixed calls to strerror_r() - return code should be checked.
* core/socket.c: corrected casts from short to pointer.
Mon Sep 29 2014 Andriy Gritsenko <[email protected]>
* core/Makefile: replaced obsolete INCLUDES with AM_CPPFLAGS.
Tue Apr 29 2014 Andriy Gritsenko <[email protected]>
* modules/lua/lua.c: fixed compatibility with Lua 5.2.
* configure, modules/Makefile.mods: simplified usage of MAKE_IS_GNU.
Wed Oct 17 2012 Andriy Gritsenko <[email protected]>
* Makefile: removed debian/* stuff from distro (see Debian Rules).
Wed May 9 2012 Andriy Gritsenko <[email protected]>
* configure: fixed --enable-debug=info mode.
* debian/*: updated debian packaging.
Tue Apr 17 2012 Andriy Gritsenko <[email protected]>
* core/lib.c: fixed case with charset in lowercase on setting locale.
Thu Apr 5 2012 Andriy Gritsenko <[email protected]>
* modules/logs/logs.c: fixed wrong rotation time calculation on start.
Wed Apr 4 2012 Andriy Gritsenko <[email protected]>
* core/main.c: fixed making of run path (bug#110).
* core/socket.c: fixed uninitialized variable in PollSockets().
* core/dispatcher.c, core/lua/lua.c, modules/ircd/queries.c: eliminated
unused variables.
* modules/ircd/ircd.c: fixed SIGSEGV on incomplete ircd setup (bug#109).
* modules/ircd/queries.c: added debug message into motd file check.
Sun Apr 1 2012 Andriy Gritsenko <[email protected]>
* modules/irc-channel/chmanagement.c: fixed SIGSEGV yet again on server
modechange reversing.
Mon Dec 5 2011 Andriy Gritsenko <[email protected]>
* modules/irc-channel/chmanagement.c: fixed SIGSEGV on server
modechange reversing.
Tue Nov 22 2011 Andriy Gritsenko <[email protected]>
* core/socket.c: added unlink of UNIX listener on terminating.
Fri Nov 18 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: implemented dropping link if message source
seems to be server but unknown to us (see RFC2813).
Mon Nov 14 2011 Andriy Gritsenko <[email protected]>
* modules/tcl/modtcl.c: fixed setting of Tcl encoding for UTF-8.
Tue Nov 8 2011 Andriy Gritsenko <[email protected]>
* core/socket.c, doc/modules.api: implemented resolving of UID and PID
of connected process in case of UNIX socket connection.
Fri Nov 4 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c, modules/ircd/queries.c: changed bindtable
"ircd-lost-client" into more common "ircd-client" one, WHOWAS should
be aware of nickchanges too from now on.
* modules/ircd/queries.c: forced sending prefix to local clients on
PONG as some clients are broken and think PONG always is prefixed.
Thu Nov 3 2011 Andriy Gritsenko <[email protected]>
* modules/irc/irc.c: corrected "time-shift" binding.
* modules/logs/logs.c: added "time-shift" binding.
* core/socket.c, core/foxeye.h: implemented "strict backresolv" feature
to ignore resolved hostname of incoming connect if it does not resolve
into the same IP.
* configure, core/Makefile, core/socket.c: added libidn support.
Wed Nov 2 2011 Andriy Gritsenko <[email protected]>
* core/direct.c: added test for non-alnum first char of ident.
Tue Nov 1 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: added time corrections handler to ircd.
* modules/ircd/clients.c: disabled changing of topic outside of channel
(bug#106).
* modules/ircd/ircd.c: added check if autoconnect already in progress.
* modules/ircd/ircd.c: added stupidity check into ircd_prepare_quit().
* core/connchain.c: implemented "sticky" connchain links.
* modules/ircd/channels.c: fixed +-o on !chan again.
Mon Oct 31 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/clients.c, modules/ircd/servers.c: fixed KICK reason
and target on A_ANONYMOUS channels.
* modules/ircd/servers.c: fixed foreign SQUIT query (bug#105).
Sun Oct 30 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/channels.c: fixed wrong putting channel on hold.
* modules/ircd/channels.c: implemented MODE !x O query (bug#102).
* modules/ircd/ircd.c: fixed unreleased uplink thread on fail (bug#104).
Sat Oct 29 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: added support for NICK after KILL.
* modules/ircd/ircd.c: added nick checking in case USER came after NICK
(bug#100).
* modules/ircd/channels.c: fixed SIGSEGV on topic for holded channel.
* modules/ircd/servers.c: fixed handling acks for KILL and JOIN 0.
* modules/ircd/channels.c: fixed counter for joined channels (bug#103).
* modules/ircd/channels.c: fixed mode query (bug#99).
Fri Oct 28 2011 Andriy Gritsenko <[email protected]>
* core/direct.c, modules/ircd/ircd.c: fixed unreleased pthread (bug#98).
* modules/ircd/ircd.c: fixed relations after client quit.
* modules/ircd/servers.c: added diagnostics for ACK parameters.
Mon Oct 24 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/channels.c: fixed local MODE broadcast on A_ANONYMOUS
channels (bug#95).
* modules/ircd/clients.c, modules/ircd/servers.c: fixed local TOPIC
broadcast on A_ANONYMOUS channels (bug#95).
* modules/ircd/channels.c: fixed duplicates on chanmode -l.
* modules/ircd/clients.c: disabled invite to remote &channel (bug#97).
* modules/ircd/clients.c, modules/ircd/servers.c: fixed local KICK
broadcast on A_ANONYMOUS channels (bug#95).
Sun Oct 23 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: rewritten message origin detection again.
Sat Oct 22 2011 Andriy Gritsenko <[email protected]>
* configure: added optional parameter 'info' for --enable-debug to
not disable optimization in that case.
* modules/ircd/ircd.c: fixed phantom finding.
* modules/ircd/ircd.c: set phantom again to be created on nick change
but ignored on attempt to regain that free nick (bug#94).
* modules/ircd/ircd.c: added ignorance of dummy nick change.
* modules/ircd/channels.c, modules/ircd/servers.c: fixed non-ignorance
of dummy "JOIN 0".
* modules/ircd/channels.c: implemented supression of duplicate channel
modes (bug#96).
* modules/ircd/channels.c: fixed apply of +b/e/I when user joining
channel by short name (bug#92).
Fri Oct 21 2011 Andriy Gritsenko <[email protected]>
* core/socket.c: fixed wrong setting of Pollfd structure after poll.
* core/socket.c: fixed SocketError() on errors from strerror_r().
* core/dispatcher.c: fixed shutting down of modules on restart (bug#57).
* modules/ircd/channels.c: fixed +-o on A_ADMIN (bug#93).
* modules/ircd/channels.c: fixed modechange shown to users on the
anonymous channels (bug#95).
* configure: removed --enable-profile as gprof doesn't handle dlopen().
Tue Oct 17 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/queries.c: added validation of second arg of PING.
* modules/ircd/channels.c, modules/ircd/servers.c: fixed modeflags for
channel creator.
* modules/ircd/queries.c: fixed PING replying.
* modules/ircd/channels.c: fixed wrong deleting a channel while acks
are still on.
* core/direct.c: tuned identd request in accordance with RFC1413.
Sun Oct 16 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/queries.c: fixed matching on reply to WHOIS (bug#91).
* modules/ircd/ircd.c: fixed critical bug on phantom collision.
* modules/ircd/ircd.c: fixed case of ident and host from local/remote.
* modules/ircd/channels.c: fixed invalid local JOIN onto transformed
channel name.
Fri Oct 14 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c, modules/ircd/queries.c: renamed bindtable
"ircd-got-client" into "ircd-local-client".
* modules/ircd/channels.c: disabled "&CHANNEL" as it's unused.
* modules/ircd/queries.c: denied queries from servers.
* modules/ircd/channels.c: implemented simple MODE mask validation.
* modules/ircd/channels.c, modules/ircd/clients.c, modules/ircd/ircd.c, modules/ircd/sendto.h, modules/ircd/servers.c:
implemented &WALLOPS system channel.
Thu Oct 13 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: fixed handling collision with nick on hold.
* core/list.c: fixed deleting of host for servers.
* modules/ircd/ircd.c: fixed matching of server host with no ident mask.
Wed Oct 12 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: added alternative path to send on servers burst.
* modules/ircd/ircd.c: fixed case with backup nick introduction.
* core/direct.c: fixed incorrect int cast.
* modules/ircd/ircd.c: fixed bad initialization of phantom structure.
* modules/ircd/channels.c, modules/ircd/ircd.c: fixed wrong channel
destruction on termination.
* modules/irc-channel/irc-channel.c: made own joins be send in one piece
to avoid flooding server.
Tue Oct 11 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: fixed SIGSEGV on message from gone client.
* core/socket.c: added a little cleanup on revents.
* core/dispatcher.c: disabled expired code.
* core/socket.c: fixed broken IPv6 socket setup.
* modules/irc-channel/irc-channel.c: fixed recently changed rejoin.
* modules/irc/irc.c: fixed wrong handling of "irc-raw" bindtable.
* modules/ircd/clients.c: changed shown hops in WHO reply.
* modules/ircd/ircd.c: fixed clients burst.
* core/socket.c: disabled polling incomplete sockets.
Mon Oct 10 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/channels.c: added numeric on bad mode (bug#80).
* modules/ircd/ircd.c: fixed wrong nick casechange.
* modules/ircd/queries.c: fixed telling channels to client itself.
* modules/irc-channel/irc-channel.c: added rejoin onto temporarily
unavailable channels (bug#90).
* modules/ircd/channels.c: fixed name of created !chan (bug#89).
* modules/ircd/clients.c: fixed WHO for channels containing chars '?'.
Sun Oct 9 2011 Andriy Gritsenko <[email protected]>
* modules/ircd/ircd.c: removed try of autoconnect to already connected.