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 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
|
2004-08-22 Topia <topia@clovery.jp>
* HACKING:
- ModuleManager/*_blacklist, Multicast/attach_for_client,
remark/IRCMessage/always-use-colon-on-last-param,
Hook の使い方を追加。
* tiarra:
(shutdown):
- runloop->terminate を使った shutdown を行うようにした。
- runloop->terminate が失敗した時のために、2度以上 shutdown が
呼ばれれば強制終了する。
* doc-src/conf-main.tdoc, main/Configuration.pm:
- general/messages/quit/netconf-changed-{re,dis}connect を追加。
* main/IrcIO.pm:
(disconnect):
- runloop->unregister_receive_socket を呼ぶ。
* main/IRCMessage.pm:
(serialize):
- remark/always-use-colon-on-last-param 追加。最後のパラメータの
シリアライズ時に必ずコロンを使うようにする。
主にクライアント対策用。
* main/ModuleManager.pm:
(add_to_blacklist, remove_from_blacklist, check_blacklist, _set_blacklist):
- blacklist の実装。
(_clear_module_cache, get_modules):
- blacklist を除いた、使用可能モジュールのキャッシュを作る。
(terminate):
- mod_timestamp にあるモジュールも destruct/_unload する。
(check_timestamp_update):
- 共通ルーチンとしてメソッドにした。
(update_modules):
- blacklist 関連処理と、設定は変更されていないがアップデート
されていて、前回ロード失敗しているモジュールの再試行を追加した。
(reload_modules_if_modified, _unload):
- blacklist 関連処理の追加。
* main/Multicast.pm:
(_NOTICE_from_server):
- 追加。 MODE で代用していると、メッセージとして global nick
のみが送られてきたときに、改変してしまう。
($server_sent):
- NOTICE と PRIVMSG を _NOTICE_from_server へ変更。
(attach_for_client):
- 追加。multi-server-mode のときのみ attach する。
* main/RunLoop.pm:
- set-current-nick フックを追加した。
(_new):
- 一時変数として $conf を追加して見やすくする。
- terminated_networks, terminating を追加。
(network):
- networks, disconnected_networks, terminated_networks の各
ジャンルを順に検索して、最初に見つかったものとジャンル名を返す。
(set_current_nick):
- set-current-nick フックを呼ぶようにした。
(_conf, _conf_{general,networks,messages}):
- Configuration::shared_conf->... の短縮形として追加。
(_cleanup_closed_link):
- unregister_receive_socket を使うようにした。
- state として reconnecting/terminating/finalizing を受け入れる。
(_action_{part_and_join,message_for_each}):
- Multicast::attach_for_client を使うようにした。
(update_networks):
- ->_conf* を使うようにした。
- state として reconnecting/finalizing を使う。
(terminate_server):
- 追加。 quit し、 conf 変更がない限り自動再接続しない。
- state として terminating を使う。
(reconnect_server):
- 何らかのジャンルにあるネットワークを再接続する。
(disconnect_server):
- セレクタからの削除は IO->disconnect に任せる。
(close_client):
- ERROR を送信してクライアントを切断する。
({,un}install_socket):
- ->{,un}register_receive_socket を使うようにした。
({,un}register_receive_socket):
- 追加。 ->{receive_selector}->{add,remove} を呼ぶだけ。
(run):
- ->_conf* を使うようにした。
- ->{,un}register_receive_socket を使うようにした。
- 終了処理中はクライアントからの接続を受けても即切断する。
- 終了処理を追加。また、 400 回以上ループを回ったら強制終了する。
(terminate):
- 全てのサーバ・クライアントを切断する。
- 終了処理フラグを立てる。
(apply_filters):
- エラーメッセージを表示するときに、再帰を防ぐために一時的に
ブラックリストに入れる。
- 処理がまわってきているということはブラックリストにないという
ことなので、そのまま解除しても大丈夫なはず。
(_apply_filters):
- バージョン管理もしているし、いらないコメントを削除する。
(notify_msg):
- ->_conf* を使うようにした。
* main/TiarraDoc.pm:
(_makeconf):
- 空行のときはインデントしないようにした。
* main/Configuration/Preprocessor.pm:
- 解説コメントが間違っているので訂正。
* main/IrcIO/Client.pm:
(new):
- runloop->register_receive_socket を呼ぶようにした。
(username, client_host):
- 追加。プロパティ取得専用。
(do_namreply):
- ->inform_joinning_channels の中の names 関連処理だけ分けた。
(inform_joinning_channels):
- ->do_namreply を使うようにした。
* main/IrcIO/Server.pm:
- RunLoop 用の ->state を追加。
(connect):
- runloop->register_receive_socket を呼ぶようにした。
(quit):
- quit メッセージを送信する。
* module/Skelton.pm:
(message_io_hook):
- 過去から現在進行へ修正。
* module/Auto/Utils.pm:
(sendto_channel_closure):
- Multicast::attach_for_client を使うようにした。
* module/Client/Cache.pm:
- network が存在しないのはあまり特別な事態ではなくなったので、
debug 時でさえも表示しないようにした。
* module/Client/Eval.pm:
- 無意味なリスト生成をやめて、配列をそのまま使うようにした。
* module/Client/Rehash.pm:
- 追加。 nick と names による rehash を行う。
* module/Log/Channel.pm:
- Log::Writer フレームワークを使うようにした。
- always-flush 設定を追加。
- 現在、 dir の都合によりプロトコルを混ぜることはできません。
* module/Log/Writer.pm:
- 追加。ログ記録に必要なメソッド(reserve, flush)に限った
マルチプロトコル対応可能なフレームワーク。
* module/Log/Writer/Base.pm:
- Log::Writer のプロトコルプラグインのベースクラス。
* module/Log/Writer/File.pm:
- Log::Writer の File プロトコルプラグイン。
- fallback として動作するため、プロトコルを省略したときも
(そして他の fallback によってハンドルされなかったときも)
このプロトコルで処理する。
- ないディレクトリは勝手に作るので注意。
* module/System/Error.pm:
- 追加。 ERROR メッセージをクライアントに送る前に NOTICE に埋め込む。
- デフォルトオンです。機構的に以前からの conf は救済できません(^^;;
* module/System/Shutdown.pm:
- シャットダウンメッセージを受け入れるようにした。
* module/System/NotifyIcon/Win32.pm:
- iconfile と hide-console-on-load 設定を追加。
- 他の雑多な機能は 128 文字対応が全然動いてくれない上に、
実装自体も全然進んでいないので見送りです。
* module/Tools/FileCache.pm:
- use Carp を追加。
- shared で __PACKAGE__ を使うようにした。
* module/Tools/FileCache/EachFile.pm:
- ->{add,del}_refcount を ->{add_ref,release} に変更。
内部 API だから影響はないはず。
2004-07-29 Topia <topia@clovery.jp>
* main/ModuleManager.pm:
- ->notify_error(...) を ->notify_error->(...) と間違えていた
ので修正。
(reload_modules_if_modified):
- USED に対してメッセージは出しても実際にはリロードして
いなかったので修正。
(_unload):
- 自分でシンボルテーブルをクリアする代わりに、 Symbol::delete_package を
使うようにした。ただしサブパッケージは退避している。
* main/Timer.pm:
(reset):
- 追加。現在の時刻を元に fire_time を設定しなおす。
* main/Module/Use.pm:
(import):
- @USE にそのまま設定する代わりに push をするようにした。
* module/Client/Eval.pm:
- いくつか関数を追加。
(conf, module_manager, module, shutdown, reload)
* module/System/NotifyIcon/Win32.pm:
- 追加。タスクバーの通知領域にアイコンを表示し、コンソールの
表示・非表示、 conf リロード、終了などができる。
2004-07-24 Topia <topia@clovery.jp>
* HACKING:
- Auto::Utils::sendto_channel_closure の説明を追加。
- remark の説明をいくつか追加。
- Emacs で自動的に text-mode になるようにした。
(Local variables)
* Makefile:
- 間違っているコメントを削除した(etags/update もするし)。
- ターゲット名を clean に変えた。
- clean の一行目だけでも sh で通るようにした。
* main/ControlPort.pm:
- SelfLoader が動作しない例の一つだった。修正もれ。
コメントアウトして対処した。
* module/Auto/Utils.pm:
- いくつか説明コメントを修正。
(sendto_channel_closure):
- $sender が省略されれば自分で調査して送信する。
($sendto, $command) だけで呼べるようになった。
- シングルサーバモード時の処理をしていなかったので修正。
2004-07-09 phonohawk <phonohawk@ps.sakura.ne.jp>
* module/Auto/Reply.pm,
module/User/ServerOper.pm,
module/User/Vanish.pm:
typoの訂正。動作に変更は無い。
2004-07-08 Topia <topia@clovery.jp>
* main/Configuration.pm:
- include されたファイルの更新も感知するようにした。
* main/Mask.pm:
(_split):
- $mask が未定義の時に warning がでるのを防止した。
* main/ModuleManager.pm:
(reload_modules_if_modified):
- エラー通知に notify_error を使うようにした。
* main/ReloadTrigger.pm:
- Configuration::Hook/reloaded について追記。
* main/Timer.pm:
- notify_error の発行対象にしているパッケージの間違いを修正。
* main/Configuration/Preprocessor.pm:
- ->included_files を追加。
* main/IrcIO/Client.pm:
(_receive_while_logging_in):
- $network が未定義(未接続)の時にエラーがでていたので修正。
(inform_joinning_channels):
- 固定チャンネルの mask は一致した分を全部飲み込むように変更。
#*@ircnet,#*@ircnet:* のようなことが出来るようになるはず。
* module/System/Reload.pm:
- conf-reloaded-notify を追加。
2004-06-19 Topia <topia@clovery.jp>
* doc-src/conf-main.tdoc:
- ./tiarra --make-password のことを書き加えた。
* main/Timer.pm:
- code 中で die が起こっても abort しないようにした。
* module/Channel/Mode/Oper/Grant.pm:
- $myself が undef でないかチェックするようにした。
* module/Client/Cotton.pm:
- 追加。いくつかの Cotton の不具合を回避する(予定)。
- 今は network rejoin 時の自動 part を無視する。
* module/Client/Eval.pm:
- runloop に括弧を付け(て関数形式に認識させ)るのを
忘れていたので修正。
* module/Client/GetVersion.pm:
- 追加。クライアントの接続時に CTCP Version を発行して
クライアントのバージョンを取得する。
2004-06-09 Topia <topia@clovery.jp>
* main/IrcIO/Server.pm:
(_receive_while_logging_in):
- PING に対応した。
- RPL_WELCOME / NOTICE / PRIVMSG 以外で無視することになった場合、
警告を出す。
2004-06-04 Topia <topia@clovery.jp>
* main/IRCMessage.pm:
- MAX_PARAMS(= 14) 定数を追加した。
(params):
- 呼び出し時に未定義なら強制的に初期化するようにした。
(n_params):
- params を使用するようにした。
(_parse):
- $this->push を使用するようにした。
(length, push, pop):
- 追加した。
* main/IrcIO/Client.pm:
(_receive_while_logging_in):
- シングルサーバモード時にサーバから RPL_ISUPPORT が提供されていれば、
それを送信するようにした。
* module/Client/Cache.pm:
- MODE キャッシュ、 WHO キャッシュともに、取得中フラグに有効期限を
つけるようにした。デフォルトで 5 分、 conf では指定できない。
- 念のため RPL_ENDOFWHO もハンドリング。
* module/Client/Eval.pm:
- メッセージを再構築して、 : をつけなくても良いようにした。
もちろん ::shutdown を実行するには /eval :::shutdown と
しなければならない(笑)。
- $err を初期化して warning が出ないようにした。
(network, runloop):
- eval 内部からよく使いそうなものを function 化した。
* module/System/Raw.pm:
- 配列の最後の要素は (n_params - 1) なので修正して warning が
でないようにした。
2004-06-04 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/Unicode/Japanese.pm:
Unicode::Japanese 0.22に更新。
2004-05-26 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/Unicode/Japanese.pm:
Unicode::Japanese 0.21に更新。
2004-05-09 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/IrcIO.pm (receive):
サーバーやクライアントから空行を送られた場合に、エラーが出る問題を修正。
2004-05-09 Topia <topia@clovery.jp>
* main/Multicast.pm:
(nick_p):
- 省略可能な nicklen を引数に追加した。
(channel_p):
- 省略可能な chantypes を引数に追加した。
* main/IrcIO/Server.pm:
- isupport を remark からインスタンス変数に変更した。
(nick_p, channel_p):
- 追加した。 ISUPPORT として NICKLEN, CHANTYPES が指定されていた
場合にそれを使って検査する。
(_set_to_next_nick):
- 簡略化した。
2004-05-08 Topia <topia@clovery.jp>
* HACKING:
- typo を修正した。
- IrcIO::Server->remark に isupport と uid を追加した。
- ChannelInfo->remark に creation-time を追加した。
* main/Multicast.pm:
- $server_sent, $client_sent: RPL_CREATIONTIME へ対応した。
- $client_sent: admin コマンドを追加した。
* main/NumericReply.pm:
- RPL_BOUNCE を RPL_REDIR に変更。 RPL_BOUNCE はエイリアスとして
そのまま残すようにした。
- RPL_CREATIONTIME を追加した。
- RPL_TOPICWHOTIME を RPL_TOPIC_WHO_TIME に変更した。
RPL_TOPICWHOTIME はエイリアスとしてそのまま残すようにした。
- irc2.11 なものをいくつか追加した。
+ RPL_HELLO(020)
+ RPL_YOURID(042)
+ RPL_SAVENICK(043)
+ RPL_REOPLIST(344)
+ RPL_ENDOFREOPLIST(345)
* main/IrcIO/Server.pm:
- RPL_{CREATIONTIME,ISUPPORT,YOURID} に対応した。
(_receive_while_logging_in):
- RPL_HELLO 対策を追加した。
(modify_nick):
- 第二引数で nicklen を指定できるようにした。
(_set_to_next_nick):
- ISUPPORT に NICKLEN が含まれていれば、それを使うようにした。
* module/Client/Cache.pm:
(_send_mode_cache):
- creation-time が存在すれば、それも返すようにした。
2004-04-18 Topia <topia@clovery.jp>
* HACKING:
- BulletinBoard と remark についてを追記。
- こまかい修正。
* main/IrcIO/Client.pm, module/Client/Cache.pm:
- __PACKAGE__ がダブルクォートの中では展開されないことを
忘れていたので修正。
* module/Channel/Rejoin.pm:
- 自分自身がいないチャンネル(そもそもふつうはこんなことには
ならないのだが)の rejoin 判定時に error が起きるのを修正。
2004-04-18 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/ControlPort.pm (ControlPort::Session::main):
誤字修正。 NOTIFT => NOTIFY
2004-04-07 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/IrcIO/Server.pm (new):
$this->{channels}のキーを、小文字に変換しておく。
大文字小文字に一貫性の無いチャンネル名をクライアントに送る、
EFnetやFreenet(IRC)のようなircdに接続していると、しばしば
Tiarraは混乱する。この問題を回避するため、チャンネル名同士の
比較は一旦小文字に変換した上で行うようにする。
(channel):
大文字小文字を無視してチャンネルを探索するように変更。
$server->channel($name)のようにしてChannelInfoを得ている
場合には、何ら変更は必要無い。
チャンネル名 => ChannelInfoのハッシュを返す、$server->channels
を使っている場合は、そのキーが小文字に変換されている事に注意しなければ
ならない。
* main/Multicast.pm (lc, uc): 追加
IRC方式で大文字と小文字の変換を行う。IRC方式とは、[]\がそれぞれ{}|の
大文字であると定義されている方式である。
* main/Mask.pm (compile): 追加
マスクからコンパイル済み正規表現を生成する部分を、独立した関数にした。
大量のマッチングを高速に行う場合は、Mask::の関数を何度も呼ぶ代わりに
マスクを一度だけコンパイルする事を考えた方が良い。
Mask.pm内でコンパイル済みマスクはキャッシュしているが、それでも速度は違う。
2004-04-01 Topia <topia@clovery.jp>
* module/Client/Cache.pm:
- single-server-mode 時の不具合をいろいろ修正。
- mode/who に共通な一部のコードを関数リファレンスの形でまとめた。
2004-04-01 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra:
confファイルが読み込まれる前に::printmsgを実行するとdieする問題を回避。
そのような場合には、文字コード変換を行わない。
2004-03-27 Topia <topia@clovery.jp>
* tiarra:
- quiet モード時に STDIN を閉じないと握りっぱなしになって
(sshd が落ちないなどの)不具合が発生するようなので閉じる。
- STDERR を何かにリダイレクトするのは、とりあえずは保留。
2004-03-27 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/LinedINETSocket.pm (recvbuf):
追加。通信終了後に改行が付かなかった行の内容を取り出すために使う。
* main/RunLoop.pm (run):
select前フックは、タイマーの次回発動時刻を計算する前に呼ぶ。
フック内でタイマーの状態を変更しても問題を起こさないため。
* main/Timer.pm (time_to_fire):
引数を指定した場合、タイマーの発動時刻を変更できるように。
* module/Tools/HTTPClient.pm:
追加。
HTTP/1.0専用のhttpクライアント。手抜き。
2004-03-19 Topia <topia@clovery.jp>
* main/IrcIO.pm, main/LinedINETSocket.pm:
- IO::Handle 1.21 において、 LEN が存在しないと croak がでる bug
の回避。
* main/ModuleManager.pm:
- モジュールの destruct を呼ぶ際に、 $show_msg でなく
RunLoop->shared_loop->notify_error を使うように。
* main/IrcIO/Client.pm:
(inform_joinning_channels):
- フックの引数を変更。
- フックコール中にエラーが発生しても
最低限すべてのチャンネル情報だけは送信するように。
* module/Client/Cache.pm:
- IrcIO::Client::Hook/channel-info を使用して、
知っているチャンネルモードを強制的に先行して送るようにした。
* module/Log/Recent.pm:
(IrcIO::Client::Hook/channel-info):
- 引数変更に同期。
- クライアントオプション no-recent-logs をみるようにした。
2004-03-13 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/Hook.pm (Hook::call, HookTarget::call_hooks):
フック関数に引数を渡せるように変更。
* main/RunLoop.pm:
Hook.pmで一般化したためにコメントアウトしてあったフック関連のコードを削除。
* main/IrcIO/Client.pm (inform_joinning_channels):
チャンネル情報一つ転送される度に呼ばれるフック channel-info を定義。
このフックには引数としてIrcIO::Client自身とチャンネル名が渡される。
フッククラスは同ファイルで定義されるIrcIO::Client::Hook。
* module/Log/Recent/pm:
クライアントに送られるチャンネルと同じ順番でログも送るように変更。
この動作はIrcIO::Clientのフックを利用している。
* main/RunLoop.pm (run):
Tiarra暴走検出のコードにバグがあったので修正。
0秒selectに2秒以上の間隔が開いた場合にはカウンタをリセットする意図があったと思うが
2秒*以下*の間隔でリセットしていた。
ついでなので警告の閾値も300まで引き上げ。
2004-03-09 Topia <topia@clovery.jp>
* module/Client/Cache.pm:
- destruct において、呼ぶメソッドを勘違いしていたのを修正。
2004-03-08 phonohawk <phonohawk@ps.sakura.ne.jp>
* module/Unicode/Japanese.pm:
UniJP 0.20に置換え。
2004-03-07 Topia <topia@clovery.jp>
* tiarra:
- untaint を行うようにした。
* main/Configuration.pm:
- 呼び出す関数名を間違えていた bug を修正。
* main/Mask.pm:
- untaint を行うようにした。
* main/Multicast.pm:
- ERR_NOTONCHANNEL, ERR_NOSUCHCHANNEL を *_sent に追加。
* main/IrcIO/Server.pm:
- nick 変更の prefix category を nick::system にした。
- _START_WHOIS_REPLY を呼ぶときに defined check をしてない bug
を修正。
* module/Client/Cache.pm:
- destruct を追加。
- ChannelInfo につける remark にパッケージ名をつけて、
他のモジュールとかぶらないようにした。
* module/Client/Eval.pm:
- untaint を行うようにした。
- 複数行の出力をちゃんと処理するようにした。
2004-02-23 Topia <topia@clovery.jp>
* module/Debug/RawLog.pm:
- 追加。生の IRC メッセージ(のようなもの?)を ::printmsg を使って
表示する。
* main/IrcIO/Client.pm:
- RunLoop を Runloop と typo していたのを修正。
* main/IrcIO/Server.pm:
(_received_after_logged_in, _set_to_next_nick):
- sysmsg_prefix を使うようにした。
(_RPL_CHANNELMODEIS):
- 存在しないチャンネルが対象だったときにエラーがでるという
どうしようもないミスを修正。
* main/RunLoop.pm:
(_multi_server_mode_changed):
- sysmsg_prefix を使うようにした。
* makedoc:
- sample.conf を出力するようにした。
- 全体にわたってモジュール名のソートを行うようにした。
- block 構文への暫定対応。
- #key:value という *コメント* をきちんと認識していなかったのを fix
- グループ名に説明が定義されていなかったときに警告を出すようにした。
* tiarra:
- --enable-debug 時にも、 couldn't connect 関連のメッセージなら
スタックトレースを省略するようにした。
* sample.conf:
- TiarraDoc を使用するようになった。
* doc/module-toc.html, doc/module/*.html:
- regen.
* doc-src/conf-main.tdoc:
- general/omit-sysmsg-prefix-when-possible 削除。
- general/sysmsg-prefix-use-masks ブロック追加。
- 書かれていなかった networks/multi-server-mode の解説を
sample.conf から持ってきて追加。
- typo したままだった networks/channel-network-separator の
コメントを sample.conf に従って修正。
- ircnet/host を irc.nara.wide.ad.jp に変更。
いまは停止しているのだが、復活を願うということで。
* doc-src/module-group.tdoc:
- Channel の最後が typo していたのを修正。
- Client, CTCP, Debug を追加。
とはいえ Debug はまだ cvs repo. には存在していないが…。
* doc-src/sample.conf.in:
- RCS Tag 'Id' を追加。
* main/Configuration.pm:
- general/omit-sysmsg-prefix-when-possible のデフォルト値を消して、
general/sysmsg-prefix-use-masks のデフォルトブロックを追加。
(_complete_table_with_defaults):
- _complete_{table,block}_with_defaults に分割。
(_complete_table_with_defaults):
- Block を使った実装に変更。
- Configuration::Block->table の追加が必須。
(_complete_block_with_defaults):
- block(hash_ref) と array_ref のデフォルト値に対応。
* main/ModuleManager.pm:
(update_modules):
- %loaded_mods に古いモジュールが無かった場合は無視するようにした。
(_unload):
- デバッグモード時でも、同じモジュールからの 11 以上の export は表示しない。
* main/Multicast.pm:
- $server_sent, $client_sent: NumericReply 化。
ERR_TOOMANYCHANNELS と RPL_WHOISCHANNELS を追加。
(_NJOIN_from_server, _RPL_NAMREPLY):
- /[@+]/ が変数展開されているようなので /[\@+]/ に変更。
(_WHOIS_from_client):
- RunLoop->shared_loop->sysmsg_prefix を使用するようにした。
(_{attach,detach}_RPL_WHOISCHANNELS):
- 追加。 WHOIS で表示されるチャンネル名に network をつける。
* main/RunLoop.pm:
- sysmsg_prefix を追加。
(_action_one_message, _action_message_for_each, notify_msg):
- RunLoop->shared_loop->sysmsg_prefix を使用するようにした。
* main/TiarraDoc.pm:
(_makeconf):
- block への暫定対応。
* main/Configuration/Block.pm:
- ->table を追加。
(eval_code):
- original の typo を修正。
* main/IrcIO/Client.pm:
- RunLoop->shared_loop->sysmsg_prefix を使用するようにした。
(inform_joinning_channels):
- 暫定的に networks/fixed-channels ブロックに channel の mask を
書くことで、送信順を指定できるようにしたが、 conf エントリ名が
気に入らないため、名前が決まるまでは sample.conf に
書かないことにする。
* main/IrcIO/Server.pm:
- ->server_hostname を追加。 RPL_WELCOME(001) で送られてきた
サーバ名を保持する。
- サーバで nick 変更が起こったときに、以前の nick も表示するようにした。
* module/Auto/Reply.pm:
- 返答時に mask をチェックするようにした。
* module/Channel/Freeze.pm:
- RunLoop->shared_loop->sysmsg_prefix を使用するようにした。
- 不要になった use Configuration; を削除。
* module/Client/Cache.pm:
- RunLoop->shared_loop->sysmsg_prefix を使用するようにした。
- WHO キャッシュ送信時において、 Multicast::global_to_local を
使って nick を変換していなかった bug を修正。
- 不要になった use Configuration; を削除。
* module/Client/Eval.pm:
- RunLoop->shared_loop->sysmsg_prefix を使用するようにした。
- 無用な remark('fill-prefix-when-sending-to-client') をなくした。
* module/Log/Recent.pm:
- no-recent-logs クライアントオプションを追加。
- RunLoop->shared_loop->sysmsg_prefix を使用するようにした。
- 不要になった use Configuration; を削除。
* module/System/Pong.pm:
- NumericReply 化。 ERR_NOORIGIN を返せるようにした。
- PING もここで破棄するようにした。
(message_arrived):
- $sender->server_hostname を使用して正確なホスト名に返す。
* module/System/Raw.pm:
- RunLoop->shared_loop->sysmsg_prefix を使用するようにした。
- NumericReply 化。 NOTICE の代わりに ERR_NEEDMOREPARAMS を返す。
- 不要になった use Configuration; を削除。
* module/User/Ignore.pm:
- sample conf の mask に例示用ドメインを使用するようにした。
* module/Auto/Alias.pm, module/Auto/Answer.pm,
module/Auto/ChannelWithoutOper.pm, module/Auto/Joined.pm,
module/Auto/MesMail.pm, module/Auto/Oper.pm,
module/Auto/Random.pm, module/Auto/Reply.pm,
module/Auto/Response.pm, module/CTCP/*.pm,
module/Channel/*.pm, module/Channel/Join/Invite.pm,
module/Channel/Join/Kicked.pm, module/Channel/Mode/*.pm,
module/Channel/Mode/Oper/Grant.pm, module/Log/Recent.pm,
module/System/Macro.pm, module/System/Pong.pm,
module/System/Raw.pm, module/System/RemoteControl.pm,
module/System/Shutdown.pm, module/User/Filter.pm,
module/User/ServerOper.pm, module/User/Vanish.pm,
module/User/Away/Client.pm, module/User/Away/Nick.pm,
module/User/Nick/Detached.pm:
- TiarraDoc 化。 sample.conf から取ってきて一部まずいところは
変更している。
2004-02-21 phonohawk <phonohawk@ps.sakura.ne.jp>
* module/Channel/Freeze.pm:
freezeコマンドの引数は、これまでは完全なチャンネル名であったが、
これはマスクに変更。その時にJOINしている全てのチャンネルの中から
マスクに一致した全てのチャンネルを凍結する。
* sample.conf, doc-src/conf-main.tdoc:
設定 general/omit-sysmsg-prefix-when-possible 追加。
これが1である時、sysmsg-prefixはチャンネルに対してのメッセージ
でなければ省略する。デフォルトは1。
* main/Configuration.pm:
general/omit-sysmsg-prefix-when-possible のデフォルト値を追加。
* main/Multicast.pm, main/RunLoop.pm,
main/IrcIO/Client.pm, module/Channel/Freeze.pm,
main/Log/Recent.pm, module/System/Raw.pm:
omit-sysmsg-prefix-when-possibleを反映。
2004-02-15 Topia <topia@clovery.jp>
* module/Client/Cache.pm:
- message_io_hook を追加。サーバとの通信を監視して、
MODE や WHO を発行(して返答をもらっている)途中かどうかを
記憶しておくように。
- message_io_hook で記憶した情報を使って、
(ほかのクライアントなどによって)サーバに情報を問い合わせている
途中の時も、メッセージを破棄するようにした。
2つ以上のクライアントが同時につながったときに効果が出るはず。
テストには LimeChat を 3 つ同時に接続させたが、
サーバへの問い合わせは各チャンネルにつき1回までに抑えられていた。
- クライアントに伝達される必要のあるメッセージではないので、
RunLoop->shared_loop->notify_warn() if ::debug_mode; から
::debug_printmsg(); に変更。
- WHO キャッシュにおいて、
データ不足であきらめたときのメッセージ表示をやめた。
2004-02-14 Topia <topia@clovery.jp>
* 全般:
(a) NumericReply を使うようにした。
(b) general/sysmsg-prefix を使うようにした。
* doc-src/conf-main.tdoc, sample.conf:
- sysmsg-prefix を追加。
* sample.conf:
- Client::Eval と Client::Cache を追加。
* main/ChannelInfo.pm:
- mode_string method を追加。
* main/Configuration.pm:
- general/sysmsg-prefix のデフォルト値を追加。
* main/IRCMessage.pm:
- clone(deep => 1) を追加。
- s/unvalid/invalid/; fix typo.
- $this->[PARAMS] がそもそも未定義なときは、
n_params は中身なし配列の長さ(=0)を返すようにした。
* main/ModuleManager.pm:
- module の reload の時に、一時的に $this->{modules} の
該当箇所に undef を入れて実行されないようにした。
(main/RunLoop.pm の変更とセットです。)
* main/Multicast.pm: (b)
- シングルサーバモードで、どこのネットワークにも
繋がっていないときは、デフォルトネットワークに
$networks->default を使うようにした。
* main/NumericReply.pm:
- irc2.10.3p5+hemp2 に合わせた。
ISUPPORT は使用する設定。
- fetch_number(名前から番号), fetch_name(番号から名前)
のそれぞれを得る関数を追加した。
* main/PersonInChannel.pm:
- priv_symbol method (privilege symbol) を追加。
has_[ov] の状態によって、 @, +, 空文字列のどれかを返す。
* main/PersonalInfo.pm:
- AWAY を追加。できるだけ更新しますが、
性質上情報の正確さは保証できません。
* main/RunLoop.pm: (b)
- single-server-mode 時に、切断・接続のアナウンスの
送信先チャンネル名からネットワーク名をはずすようにした。
- サーバへの接続処理時に、 couldn't connect to 以外の
エラーメッセージ表示には notify_error を使うようにした。
- クライアントからの接続処理時は、エラーメッセージ表示に
notify_msg を使うようにした。
- apply_filters で、 modules_list の中に undef が出てきたら、
それを無視するようにした。
(main/ModuleManager.pm の変更も参照。)
* main/IrcIO/Client.pm: (a)(b)
- credit を RPL_YOURHOST でなく MOTD として表示するようにした。
- RPL_YOURHOST では、 Tiarra のバージョンを表示する。
* main/IrcIO/Server.pm: (a)
- _RPL_* の処理を NumericReply::fetch_name を使ってまとめた。
- _START_WHOIS_REPLY, _RPL_ENDOFWHOIS, _RPL_AWAY を追加。
- _RPL_WHOREPLY
+ 空白を含む realname に関するバグを修正。
+ away 情報を記憶するようにした。
+ server hop 情報を network の 'server-hops' remark に保存。
- _RPL_CHANNELMODEIS で、 switches と parameters の情報は
この reply で得られると決めつけて、クリア処理を行う。
* module/Channel/Freeze.pm: (b)
* module/Channel/Rejoin.pm: (a)
- ChannelInfo->mode_string を使用するようにした。
* module/Channel/Join/Connect.pm:
- コンマの直後にスペースがあった場合、削除する処理が、
最初の一つに対してしか実行されていなかったのを修正…(^^;;;
* module/Client/Cache.pm:
- 追加。いまのところ MODE キャッシュと、 WHO キャッシュを実装。
* module/Client/Eval.pm:
- 追加。クライアントからのコマンドしか受け付けないが、
その代わりすべてのコマンドを実行できる。
事実上 IRC パスワードがわかれば Tiarra が動いているホスト上で
動作しているアカウントの権限で何でもできる、
ということに注意すること。
* module/Log/Recent.pm: (b)
- network name が不正な場合は、 notify_warn で警告して、
エラーなしに抜けるようにした。
* module/System/Pong.pm:
- prefix がついているのは不自然だったので、削った。
* module/System/Raw.pm: (b)
* module/Tools/LinedDB.pm:
- ファイルが存在しない場合に、
更新チェック部分でエラーが発生していたのを修正。
2004-02-04 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/IrcIO.pm, main/IrcIO/*.pm, main/Module.pm:
notification_of_message_ioを削除。
* main/Module.pm (message_io_hook):
追加。これはnotification_of_message_ioの代わりに呼ばれる。
このメソッドはメッセージを改変する事が出来る。詳しくはコメントに。
* main/IrcIO.pm (send_message, receive):
各モジュールのmessage_io_hookを呼ぶ。
* main/RunLoop.pm (apply_filters):
追加。モジュールによるメッセージフィルタリングの一般形。
2004-01-27 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/NumericReply.pm: 追加
ニューメリックリプライをシンボルとして定義するクラス。
useで全シンボルをエクスポート。
* main/IrcIO.pm:
CRが無く、LFだけで終わっているメッセージも受け入れる。
2004-01-23 Topia <topia@clovery.jp>
* tiarra: $0 自体が symlink だったときに、@INC に symlink 先の
main/module を含めるようにした。
カレントディレクトリ・$0 のディレクトリは常に含むようにした。
(make_password): --make-password=password を可能にした。
2004-01-23 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra: 起動時オプション --make-password 追加。
make-passwordの機能をtiarra本体に移した。
* make-password: 削除
2004-01-20 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/Unicode/Japanese.pm:
同梱のUniJPを0.18から0.19に。JISの問題は解決。
2004-01-14 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/Mask.pm:
マスクから作った正規表現をqrでコンパイルする際、
iフラグを付け忘れて大文字小文字の区別が*されていた*ので修正。
* main/IRCMessage.pm (_parse):
空文字列については文字コード変換処理を明示的に省略する。
Unicode::JapaneseにはISO-2022-JP→UTF-8変換において空文字列を"\x00"にしてしまう問題あり。
2003-11-17 Topia <topia@clovery.jp>
* tiarra: enhancement.
パッケージ用にいくつかのバージョン変数を追加した。
* module/Log/Channel.pm: enhancement/need reload.
<http://www.clovery.jp/wiki/wiki?BugTrack%2F%2FTiarra%2F%2F1%2F%2F23%2F%2Fpatch-1>
デフォルトのログファイルパーミッションを 644 から 600 にした。
ディレクトリ作成時のパーミッションを指定できるようにした。(dir-mode)
デフォルトは 700 。
* tiarra: enhancement.
<http://www.clovery.jp/wiki/wiki?BugTrack%2F%2FTiarra%2F%2F1%2F%2F24%2F%2Fpatch-1>
--dumpversion を追加した。
パッケージ作成時にバージョン情報を得るため等に使う予定。
2003-11-09 Topia <topia@clovery.jp>
* module/System/Reload.pm (message_arrived): bugfix/need reload.
<http://www.clovery.jp/wiki/wiki?BugTrack%2F%2FTiarra%2F%2F1%2F%2F22%2F%2Fpatch-1>
Timer を使って遅延処理することによって、reload command での
自分自身のリロードを可能にした。
* main/RunLoop.pm (run): bugfix(single-server-mode)/need reboot.
<http://www.clovery.jp/wiki/wiki?BugTrack%2F%2FTiarra%2F%2F1%2F%2F21%2F%2Fpatch-1>
single-server-mode 時の、クライアントから送られて来た
PRIVMSG/NOTICE のブロードキャストで、 network-suffix 付きの
チャンネルに送信してしまっていた。
2003-11-09 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra (help):
メッセージ中のstdinとstderrの間違いを修正。
2003-11-08 Topia <topia@clovery.jp>
* make-password: enhancement.
<http://www.clovery.jp/wiki/wiki?BugTrack%2F%2FTiarra%2F%2F1%2F%2F20%2F%2Fpatch-1>
パスワードの入力に、 Term::ReadLine を使用するようにした。
* module/Log/Recent.pm (client_attached): bugfix(single-server-mode)/need reload.
<http://www.clovery.jp/wiki/wiki?BugTrack%2F%2FTiarra%2F%2F1%2F%2F18%2F%2Fpatch-2>
single-server-mode 時に、送信チャンネル名から network-suffix
をはずす。
* main/RunLoop.pm (run): bugfix(single-server-mode)/need reboot.
<http://www.clovery.jp/wiki/wiki?BugTrack%2F%2FTiarra%2F%2F1%2F%2F18%2F%2Fpatch-1>
single-server-mode 時に、クライアントから送られて来るメッセージに
network-suffix を付けるようにした。
2003-10-25 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/IRCMessage.pm (serialize):
最後のパラメータが空文字列だった場合、コロンを残さない為に
シリアライズ後のパラメタが減ってしまう問題を解決。
* main/IrcIO/Server.pm (_receive_while_logging_in):
サーバーがERRORを返した時、その内容でdieするように。
2003-10-24 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/Configuration/Block.pm:
$block->foo_bar('block') とした時、戻り値が常にブロックとなる。
未定義であれば空のブロックを、既定義かつ値がブロックであれば
そのブロックを、既定義かつ値がブロックでなければキーと値のペアを
一つだけ含むブロックを生成して返す。
2003-10-19 Topia <topia@clovery.jp>
* HACKING:
モジュール作成者向けのドキュメントを書いた。
まだ、Timer / Hook / Socket I/O 関連の記述がない。
* module/Skelton.pm:
新規モジュールのスケルトン。中身のほとんどは main/Module.pm と同一。
* module/Auto/Alias.pm (message_arrived):
返り値がおかしかったのを修正。
2003-10-19 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/IrcIO/Server.pm
(person_if_exists):
追加。指定されたnickを持つ人物が居れば、そのPersonalInfoを返す。
(_RPL_WHOREPLY):
サーバー名とnickの位置を間違えていたので修正。
2003-10-16 phonohawk <phonohawk@ps.sakura.ne.jp>
* module/System/Raw.pm:
追加。Tiarraに改変されない生のメッセージをサーバーに送るためのモジュール。
* main/RunLoop.pm (update_networks):
confからサーバー名を削除する事でサーバーから切断した時に、
そのサーバーで入っていた全てのチャンネルに対するPARTを全クライアントへ送る。
2003-10-14 Topia <topia@clovery.jp>
* main/Multicast.pm (distribute_to_servers):
hijack_forward_to_server を適用(nickで使う)
* main/RunLoop.pm (_multi_server_mode_changed):
nick 変更を追加。
* main/IrcIO/Server.pm (_receive_while_logging_in):
single-server-mode 時の NICK 処理を追加。
* main/IrcIO/Server.pm (_receive_after_logged_in):
single-server-mode 時の NICK 処理に RunLoop/set_current_nick を追加。
437 での if 条件であほなミスをしていたので修正。
2003-10-12 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/IRCMessage.pm (serialize):
最後のパラメータがコロンを含んでいる時に、間違った文字列化をする問題を解決。
2003-09-28 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra-conf.el:
mmm-modeがインストールされていて、(require 'mmm-mode)または
(require 'mmm-auto)されている場合に、tiarra-conf用の設定を
行った後、それを有効にする。
mmm-modeのサイトは次のURLに。
http://mmm-mode.sourceforge.net/
* main/PersonalInfo.pm (remark):
追加。
これを保存するためのhashは、必要になった時まで作られない。
2003-09-26 Topia <topia@clovery.jp>
* tiarra:
--debug 時に warn と die に長いスタックトレースを表示する。
* main/ChannelInfo.pm:
topic_who と topic_time を追加。
エラーメッセージのミスを修正。
* main/Multicast.pm:
RPL_TOPICWHOTIME の追加。
hijack_local_to_global 時のフォールバック条件を訂正。
* main/IrcIO/Client.pm:
431 No nickname given の実装。
multi-server-mode でないときには nick 関連の特殊処理をしないように。
RPL_TOPICWHOTIME の実装。
* main/IrcIO/Server.pm:
437 nick/channel is temporarily unavailable に対応。
multi-server-mode でないときには nick 関連の特殊処理をしないように。
RPL_TOPICWHOTIME の実装。
9文字以上のnickが来たときに、可能な限り必要以上短くしないように。
2003-09-25 Topia <topia@clovery.jp>
* tiarra:
--version と --debug の実装。
::debug_printmsg(...), ::debug_mode を使用できます。
::printmsg への autoflash 指定を追加。
* main/ModuleManager.pm:
(update_modules): $this->{modules} の再構成を、アンロード前に移動。
notification_of_message_io の呼び出しでエラーが発生するのを回避。
(_load): デバッグモード時に UNIVERSAL::isa が嘘を付いた場合、
標準出力に出力する。
(_unload):
no strict の場所を変更。
シンボルテーブル内に存在する関数のうち、
自分自身が定義した訳ではない関数は undef しないようにした。
デバッグモードなら、 undef したスカラ・配列・シンボルテーブル・関数、
undef しなかった関数、に付いてそれぞれ標準出力に出力する。
* module/Channel/Join/Connect.pm:
コンマの直後にあるスペースは削除するようにした。
TiarraDoc を追加。
* module/Tools/FileCache.pm:
destruct メソッドを実装。
RCSタグを標準のものにした。
* module/Tools/GroupDB.pm:
Module::Use が抜けていたので追加。
RCSタグを標準のものにした。
* sample.conf:
Channel::Join::Connect の ブロックを TiarraDoc から再生成。
指定項目の変化はありません。
2003-09-24 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/Multicast.pm (nick_p):
「|」を含むnickをnickと認識していなかったので修正。
* module/Log/Recent.pm:
configのcommandを小文字で書くとログが取られない問題を解決。
2003-09-23 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/ModuleManager.pm:
use Module::Useされたサブモジュールが破棄される時に、
そのパッケージの destruct メソッドを引数無しで呼ぶ。
* main/Mask.pm:
メモリを食い過ぎるので、コンパイル済み正規表現の
キャッシュ保存数を150個に減少。
* main/PersonalInfo.pm:
メソッドinfoに引数として真偽値を渡した時、
それが真であればnickとnameとhostの配列を返す。
wantarrayにすると互換性が失われるため。
* main/PersonalInfo.pm:
動作速度向上のため、AUTOLOADを廃止。
* module/Log/Channel.pm:
configのcommandを小文字で書くとログが取られない問題を解決。
2003-09-20 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/ChannelInfo.pm, main/IRCMessage.pm,
main/PersonInChannel.pm, main/PersonalInfo.pm,
main/Configuration/Block.pm:
これらのクラスはオブジェクトが大量に作られるので、
メモリの節約のためにインスタンス型を配列に変更。
* main/IrcIO.pm:
メソッド remarks を remark のエイリアスに。
$io->remark(foo => undef); のように明示的にundefを設定すると
その註釈を削除。
* IrcIO/Server.pm:
remarkをIrcIO.pmに移動したので、こちらは削除。
* main/L10N.pm:
* main/LocalChannelManager.pm:
未完成であり、まだ使われてもいないが、存在しても害は無い。
それぞれ多言語メッセージとTiarra内部チャンネルを扱う。
* main/Mask.pm:
マスク文字列から変換した正規表現のコンパイル結果をキャッシュとして保存するように。
大量のマスクを扱う条件下で動作が非常に重くなる問題を回避する。
ベンチマークの結果では、62.5%のマッチング速度の向上が見られた。
2003-08-18 Topia <topia@clovery.jp>
* main/Multicast.pm:
${server,client}_sent に ENDOFWHO を追加。
これで LimeChat などのクライアントで、
アドレスコピーなどの機能が使えない症状が無くなった。
$client_sent の numeric reply にコメントを補完。
2003-08-12 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/FunctionalVariable.pm:
追加。与えられた任意のハンドラを変数にtieする。
通常のtieとの違いは、ハンドラを変数毎に関数リファで指定する点。
* main/Hook.pm:
フックの一般的な定義。このファイルはクラスHookとクラスHookTargetを定義する。
* main/Configuration.pm:
リロードした時、フック`reloaded'を呼ぶ。
* main/Multicast.pm:
シングルサーバーモード対応。
forward_to_serverやlocal_to_globalを動的スコープのフラグで乗っ取る等、
最早スパゲティどころではない。ジャングル。
* main/RunLoop.pm:
シングルサーバーモード対応。
このモードでは、同時に接続出来るサーバーの数が一つに限定され、
チャンネル名等にネットワーク名が付加されなくなる。
* main/IrcIO/Client.pm:
_inform_joinning_channelsをプライベートメソッドでなくした。
新しいメソッド名はinform_joinning_channels。
2003-08-04 phonohawk <phonohawk@ps.sakura.ne.jp>
* makedoc:
追加。このスクリプトはdoc-src下のファイルとmodule下のモジュール、
main下のモジュールを読み、tdoc形式で書かれたドキュメントを認識し、
sample.confおよびdoc下のhtmlドキュメントを生成する。
tdocについてはdoc-src/READMEを参照。
尚、各モジュールへのtdocの記述が完了していない為、
完全なsample.confは生成出来ない。完了するまではsample.confでなく
sample.conf.tmpに書き出す。
* doc-src/README: 追加。tdocについての説明。
* doc-src/conf-main.tdoc: 追加。generalやnetworksのドキュメント。
* doc-src/contents.html: 追加。htmlドキュメントのテンプレート。
* doc-src/module-group.tdoc: 追加。モジュールの分類情報。
* doc-src/module-toc.html: 追加。モジュールの目次のhtmlテンプレート。
* doc-src/sample.conf.in: 追加。sample.confのテンプレート。
* main/Template.pm: 追加。テンプレートを扱うクラス。
* main/TiarraDoc.pm: 追加。tdocパーサ。
* module/System/PrivTranslator.pm
* module/User/Ignore.pm: tdoc追加。
2003-07-31 Topia <topia@clovery.jp>
* 全般:
・インデントの変更
・コメントの整備
・mask で使うチャンネル名をネットワーク付きに修正(a)
・不要な use のクリーンアップ(b)
・不要な変数のクリーンアップ(c)
* Auto/Oper.pm:
(a)
* Auto/Random.pm:
(a)(b)
* Auto/Reply.pm:
(a)(b)(c)
* Auto/MesMail.pm:
(b)(c)
* Auto/Alias.pm:
(c)
* Auto/Response.pm:
(a)(c)
* Auto/Utils.pm:
get_ch_name -> (get_raw_ch_name): ネットワーク名無しの(server 的に raw な)チャンネル名 or undef を得る。
(get_full_ch_name): ネットワーク名付きのチャンネル名 or undef を得る。
(generate_reply_closures): 返り値に $get_full_ch_name を追加。
中身としては、$msg->param(place) 以上の意味は無いが、値の指定場所は一ヶ所にした方が良い。
* Tools/DateConvert.pm:
use_posix を import/unimport を使って再実装した。
* Tools/FileCache/EachFile.pm:
(can_remove): 実装。
(AUTOLOAD): eval して関数コールするのではなく、その場でメソッドを定義して飛ぶようにした。
* Tools/FileCache.pm:
(main_loop): refcount を使ったチェックの代わりに、 can_remove を使ったチェックにした。
* Tools/HashDB.pm:
Module::Use を追加。
* Tools/HashTools.pm:
(get_array): 見付からなかった場合に () を返していたが、 undef を返すべきなので修正。
(replace_recursive): こっかの補完処理を修正
(_format): regexp の修正( %. -> %(.) )。バグでした。
* Tools/MailSend/EachServer.pm
::printmsg -> RunLoop->shared->notify_warn 。
LinedINETSocket を生成するときに $E_MAIL_EOL を使っていなかった。修正。
MessageID の作られ方をコメントとして記述。
* Tools/MailSend.pm
(b)
* Mask.pm:
s/exclude/include/ 。無意味な三項演算子を消した。
* sample.conf:
mask 関連を修正。
2003-07-28 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/IrcIO/Server.pm (person_list):
追加。覚えている全てのPersonalInfoのリストを返す。
2003-07-26 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra:
起動時に`-Dfoo'や`-Dfoo=bar'を指定すると、confに`@define foo'や
`@define foo bar'が書かれているものと見做す。
* module/Configuration/Preprocessor.pm
(initial_define):
@defineの初期設定の為の静的メソッド。
(_eval_at):
@ifdef文、@ifndef文を処理可能に。
2003-07-24 Topia <topia@clovery.jp>
* tiarra, make-password:
require 5.6.0 は古いバージョンだと解釈されないようなので require 5.006 に。
lib, module を tiarra からの相対パスで解釈するように。
* main/Multicast.pm:
352(WHOREPLY)のチャンネル名にネットワーク名をアタッチするようにした。
2003-07-23 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/InstantCapsule.pm:
SelfLoader使用中止。SelfLoaderでDESTROYが定義されると
カプセル内にDESTROYを定義出来なくなってしまう。
* module/User/Vanish.pm:
コマンド「/VANISHDEBUG 1」でメッセージの改変される様子が見えるように。
現在残っている妙な不具合の原因が解り次第削除。
2003-07-22 phonohawk <phonohawk@ps.sakura.ne.jp>
* module/Channel/Freeze.pm
(freeze):
カンマで区切られた複数のチャンネル名を認識。
(defrost):
凍結していないチャンネルをdefrostするとエラーが起こる問題を解決。
チャンネル名をマスクとして扱うように変更。
2003-07-20 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/IrcIO/Server.pm (_PART):
PART受信時、入っているどのチャンネルにも最早その人物が
居なくなった場合は、その人物についてのPersonalInfoを削除する。
2003-07-19 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/ChannelInfo.pm (remark):
remarks()のエイリアスとしてremark()を使用可能に。
* main/Timer.pm (interval):
明示的にundefを渡す事で、リピート終了可能に。
uninstallすれば一緒なので大した意味は無い。
* main/IrcIO/Server.pm (_TOPIC):
TOPICメッセージを受信した時、古いトピックを'old-topic'として註釈を付ける。
2003-07-17 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra-conf.el (tiarra-conf-jump-to-block):
ブロック名を入力し、その位置へジャンプするコマンド。
デフォルトでは C-c C-. 及び C-c . に割当てられている。
2003-07-16 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra-conf.el (tiarra-conf-next-token):
追加。カレントバッファの現在のカーソル位置の次にあるトークンを返す。
カーソルはそのトークンの終わりの位置へ移動する。
* tiarra-conf.el
(tiarra-conf-next-block),
(tiarra-conf-prev-block):
追加。それぞれ現在のカーソル位置の次や前にあるブロックへカーソルを飛ばす。
プリプロセッサ指令があると変な動作をするバグ有り。
nextは M-n に、prevは M-p に割当てた。
2003-07-10 phonohawk <phonohawk@ps.sakura.ne.jp>
* module/Channel/Freeze.pm:
追加。特定のチャンネルのNOTICEやPRIVMSGの中継を
一時的に中断するためのモジュール。
発言を見たくないがPARTはしたくない、といった場合に有効。
2003-07-03 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/Configuration/Block.pm (get):
$config->foo('random')のような呼出しを可能に。
複数の定義があればランダムに一つ選んで返す。
* main/IrcIO/Server.pm (new, reload_config, connect):
切断された後に再接続すると、以前のNICKが引継がれるように。
* module/Auto/Oper.pm:
複数の応答が定義されていれば、ランダムに一つ選んで発言する。省略も可能。
* module/Auto/Utils.pm
(sendto_channel_closure, generate_reply_closures):
作成されたクロージャに、発言内容としてundefを渡した場合、
何もせずに処理を終える。
2003-06-21 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra:
ActivePerlで起動時に出ていた警告を出ないように変更。
SIGHUPのハンドラをインストールする際の警告だった。
2003-06-19 phonohawk <phonohawk@ps.sakura.ne.jp>
* Multicast.pm (attach,detach) :
チャンネル/nickとネットワーク名の区切り文字として、二文字以上の文字列も使用可能に。
つまり、今後は区切り文字として「空白を含まない1文字以上の任意の文字列」を使う事が出来ます。
2003-06-06 phonohawk <phonohawk@ps.sakura.ne.jp>
* PersonInChannel.pm (remark) :
明示的に二番目の引数にundefを渡すと、その註釈が削除される。
* RunLoop.pm (update_networks) :
同一ホストへの複数の接続には、それぞれ時間差を設ける。
* RunLoop.pm (run) :
既に始動時刻が過ぎているタイマーが存在すると、タイムアウト無期限のselectを行なうバグを修正。
* Configuration/Block.pm (eval_code) :
%CODE{...}EDOC%ブロックを、パッケージConfiguration::Implanted内で実行する。
* Configuration/Preprocessor.pm (_eval_pre) :
%PRE{...}ERP%ブロックを、パッケージConfiguration::Implanted内で実行する。
* IrcIO/Server.pm (reload_config) :
general/nickを、それぞれのネットワーク設定ブロックのnickでオーバーライド可能に。
2003-06-04 Topia <topia@clovery.jp>
* RunLoop.pm (run) : can_read を先に処理する。少しでも send で切断された状況をなくすため。
意味があるのかは不明だが、実害は無いはず。
* IrcIO.pm (send) : 接続チェックの対象に $this->{sock}->connected も追加。
これが接続されてない状態で書き込もうとすると perl 自体がエラー落ちすることがあるらしい。
2003-06-04 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra (ipv6_enabled) : IPv6が有効かどうかを真偽値で返す。
* IrcIO.pm: 閉じられたソケットに対して書き込みを行なう可能性のある問題を(多分)解決。
* CTCP.pm, ControlPort.pm, Crypt.pm, ExternalSocket.pm,
InstantCapsule.pm, LinedINETSocket.pm: これらは一度も使われない可能性があるため、SelfLoaderを用いて遅延ロード。
* ChannelInfo.pm, PersonalInfo.pm: DESTROY時にエラーが起こる問題を解決。
2003-05-27 phonohawk <phonohawk@ps.sakura.ne.jp>
* RunLoop.pm:
(notify_warn): 追加。全クライアントとコンソールに警告文を出力する。
(run): 経過時間ゼロ秒のselectを連続で100回以上検出すると、10秒ごとに、CPU時間を食い潰している可能性を警告する。
* ControlPort.pm:
ソケットの作成に失敗した時に出たエラーが表示されなかったのを修正。
* ExternalSocket.pm:
WantToWriteが返した真偽値によらず、常に「書き込みが必要」として処理していた問題を解決。
2003-05-26 phonohawk <phonohawk@ps.sakura.ne.jp>
* Timer.pm (new):
AtとAfter(又はInterval)が、両方とも指定されていなければcroakする。
* Configuration/Preprocessor.pm:
elseifやelseの解釈が正しくなかったのを修正。
%PREの評価結果がundefになった時に警告が出ていたのを修正。
@if文や@elsif文の評価結果がエラーになった時、そのエラー内容を表示していなかったので修正。
2003-05-24 phonohawk <phonohawk@ps.sakura.ne.jp>
* IO/Socket/INET6.pm: 追加。
IO::Socket::INETをIPv6に移植。Socket6.pmが必要。
* RunLoop.pm, IrcIO/Server.pm: IPv6対応。
general/tiarra-ip-versionに'v6'を指定する事で、IPv6でのリスニングを行なう。
また、サーバーには最初にIPv6での接続を試みてからIPv4にフォールバックする。
詳細はsample.confに。
2003-05-23 Topia <topia@clovery.jp>
* sample.conf: Auto::Random の説明中の 確立 を 確率 に修正した。
* Auto/Reply.pm: 追加。
* Auto/Alias.pm (message_arrived/remove): #(count) を使用可能にした。
value が省略された場合はキーごと削除するようにした。
* Tools/HashDB.pm: 追加。
* Tools/HashTools.pm: Tools/GroupDB.pm, Tools/HashDB.pm の共通部分を取り出したモジュール。
* Tools/GroupDB.pm: キー名にコロンを使用可能にした。使用不能な半角スペースが来た場合は拒否する。
コメントを修正し、詳細にした。
無視する行を指定するクロージャを引数に取れるようになった。省略された場合は # で始まる行を無視する。(従来)
del_value は削除出来た値の数を返すようになった。また、 value が未指定ならキーごと削除する。
2003-05-21 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra-conf.l: 追加。
Noboruhiさんによるxyzzy用tiarra.conf編集モード。
インストール方法はtiarra-conf.l内に記述されています。
2003-05-17 Topia <topia@clovery.jp>
* Auto/Utils.pm: sendto_channel_closure 関数追加。
NOTICE/PRIVMSG の処理は面倒なので、これを自動的に処理する。
sendto_channel_closure, generate_reply_closures に使用方法のコメントを追加。
2003-05-15 phonohawk <phonohawk@ps.sakura.ne.jp>
* conf:
general/control-socket-nameを定義すると、外部プログラムからtiarraをコントロールする為の
UNIXドメインソケットを作成する。詳しくはsample.confに。
* ControlPort.pm: 追加。外部コントロール用。
* IRCMessage.pm: dieメッセージのtypoを修正。
* IrcIO.pm,LinedINETSocket.pm: sendの代わりにsyswriteを使う。
* Module.pm: メソッドcontrol_requested追加
* ModuleManager.pm: メソッドget追加
* RunLoop.pm: ControlPortを起動する為のコードを追加。
* Log/Channel.pm: "ID: synchronize"で外部からのログの同期を可能に。
2003-04-29 phonohawk <phonohawk@ps.sakura.ne.jp>
* IrcIO/Server.pm: ログイン時、サーバーから送られてきたニューメリックリプライ以外のメッセージを無視する。
ログイン前にNOTICEを送るようなサーバーに繋げられない問題を解決。
* RunLoop.pm: IrcIO->pop_queueがdieした時のメッセージを表示せずに捨てていたのを修正。
* Channel/Join/Kicked.pm: 追加。チャンネルから蹴られた時に、自動JOINするモジュール。
* IrcIO/Server.pm: 自分がチャンネルから蹴られた場合、そのチャンネル情報を消さずに
ChannelInfoに'kicked-out' => 1というremarkを付ける。
* RunLoop.pm: サーバーへの再接続時、+kされたチャンネルへの再JOINに失敗していたのを修正。
2003-04-25 phonohawk <phonohawk@ps.sakura.ne.jp>
* main/Configuration.pm: general/client-allowedが省略された場合、
間違った値をデフォルト値として設定していたので修正。
* main/Configuration.pm: channel-network-separatorが未定義だった場合に
正しくデフォルト値を設定しないミスがあったので修正。
* Configuration.pm: networksのnameで列挙されたネットワーク名に対応する
ブロックの定義が無かった場合、適切なエラーメッセージを出さずに処理を止めていたので修正。
2003-04-18 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra: SIGHUPを受信した時の動作を変更。
これまではシャットダウンしていたが、以後は設定をリロードする。
* ChannelInfo.pm (fullname): 追加
* RunLoop.pm: 各ネットワークの設定を変更した後リロードすると、
そのネットワークとの接続を一旦切ってから繋ぎ直す。
* IrcIO/Server.pm (config): 追加。
コンストラクタの引数をネットワーク名のみに変更。
* IrcIO.pm (server_p,client_p): 追加。
それぞれIrcIO::Serverであれば1を返すメソッドと
IrcIO::Clientであれば1を返すメソッド。
2003-04-13 phonohawk <phonohawk@ps.sakura.ne.jp>
* User/Vanish.pm: 追加
特定のチャンネルでの特定の人物の存在をクライアントに隠すモジュール。
JOINやPART、QUIT等を消去する。
* IrcIO/Server.pm (channels_list): 追加
* RunLoop.pm (networks_list,channel): 追加
* ChannelInfo.pm (AUTOLOAD): ハッシュマップの操作コマンドとして'keys'と'values'を追加。
2003-04-10 phonohawk <phonohawk@ps.sakura.ne.jp>
* RunLoop.pm: 切断に気付かない場合があるので、3分毎に各サーバーにPINGを発行する。
PING自動発行後にサーバーから来た最初のPONGは破棄される。
* IrcIO/Server.pm: メソッドremark追加。使い方は他のクラスのremarkと同じ。
* LinedINETSocket.pm: メソッドconnectの動作をconnectとattachの二つに分けた。
これにより予め開かれたIO::Socket::INETに対してLinedINETSocketの機能を適用可能。
2003-04-05 phonohawk <phonohawk@ps.sakura.ne.jp>
* Auto/Joined.pm: 追加。
特定のチャンネルに誰かがJOINする度に特定の発言を行なうモジュール。
チャンネル移転通知以外に使うのはやめた方が良い。
2003-03-28 Topia <topia@clovery.jp>
* sample.conf (Auto/Random.pm): mention mask property.
* Auto/Random.pm: use array_or_all on mask.
* Auto/Alias.pm: use array_or_all on modifier.
* Mask.pm: add array_or_(all|all_chan), (all|all_chan)_mask.
for not known maskmode, use Tiarra mode; and do warn.
2003-03-23 phonohawk <phonohawk@ps.sakura.ne.jp>
* IrcIO/Server.pm: general/bind-addrでサーバーへの接続時のローカルアドレスを指定可能に。
また、各ネットワーク設定でbind-addrはオーバーライドできる。
2003-03-23 Topia <topia@clovery.jp>
* tiarra: ソースの判別部分自体が展開されていた…ので修正。
* ChangeLog: Id/Author/Date/RevisionのRCSタグを末尾に追加した。
* tiarra: ChangeLogからDateとRevisionを読んでバージョン情報に付加するようにした。
2003-03-23 phonohawk <phonohawk@ps.sakura.ne.jp>
* User/Filter.pm: 追加。特定のユーザーの発言にフィルタをかけるモジュール。
2003-03-23 Topia <topia@clovery.jp>
* CTCP/Version.pm: add perl version information.
* CTCP/ClientInfo.pm: separate ' ' instead of '/'. (ref. TAGGED DATA)
* CTCP/{ClientInfo|Ping|Time|UserInfo|Version}.pm>: reply to channel CTCP.
* CTCP.pm: fix wrong-quote dequoting.
* sample.conf (Channel/Join/Invite.pm): add Channel/Join/Invite.pm sample configuration.
* NEWS: add. news for non-developer. please write major changes, and so on.
if developer, see ChangeLog and check NEWS, please :-)
* Channel/Join/Invite.pm: add.
* Auto/Utils.pm (get_ch_name): add.
(generate_reply_closures):
add param ch_place(6th). default:0.
place of channel name in msg->params.
$get_ch_name closure return static string.
* Auto/Response.pm: use register_extcallbacks.
generate_reply_closures's 3rd param(use_alias) to undef.(use default)
* Auto/AliasDB/CallbackUtils.pm: add register_extcallbacks.
(for register insecure callbacks)
2003-03-19 Topia <topia@clovery.jp>
* sample.conf: change sample configuration.
* Auto/Random.pm: can use multiple random datas.
2003-03-17 Topia <topia@clovery.jp>
* Tools/MailSend/EachServer.pm (clean): fix cleaning code.
(DESTROY): unnesessary; remove.
* sample.conf: mention Auto::Random/(mask|count-query|count-format), and format change.
mention Auto::Response's DB format.
* sample.conf (Auto/Alias.pm): s/#(message)/#(value)/ at sample config. sorry.
* Tools/FileCache.pm, Tools/FileCache/EachFile.pm: add. Tools::LinedDB based cached file i/o.
* Tools/LinedDB.pm: add. line based i/o framework.
* Tools/GroupDB.pm (add_group): add $this->synchronize.
* Log/DateTime.pm: this module is obsolete. remove.
* Log/Channel.pm, Log/Recent.pm: use Tools::DateConvert instead Log::DateTime.
* Auto/Response.pm: add callback: read_file/file_lines.
add mask check in database 'mask' entry.
* Auto/Random.pm: use Tools::FileCache.
add count query.
* Auto/AliasDB/CallbackUtils.pm: add #(read_file:fpath:mode:charset).
add #(file_lines:fpath:mode:charset).
(register_callback): $reg_callback accept scalar function name.
2003-03-15 phonohawk <phonohawk@ps.sakura.ne.jp>
* BulletinBoard.pm:
・AUTOLOAD経由で値を設定可能に。
・メソッドkeys()を追加。
* CTCP.pm: 追加。CTCPエンコード/デコードを行なうモジュール。
* IrcIO.pm: メソッドremark()追加。
* CTCP/ClientInfo.pm,
CTCP/Ping.pm,
CTCP/Time.pm,
CTCP/UserInfo.pm,
CTCP/Version.pm : 追加。
2003-03-10 phonohawk <phonohawk@ps.sakura.ne.jp>
* IrcIO/Server.pm: ネットワーク毎の設定でin-encoding,out-encodingを定義する事により
文字エンコーディングの設定をオーバーライド可能に。
2003-03-09 Topia <topia@clovery.jp>
* Auto/Response.pm: plum でのキー名が response だったのを勘違いして reply にしていた。
(りんりんさんバグレポートありがとうございます)
2003-03-09 phonohawk <phonohawk@ps.sakura.ne.jp>
* Configuration/Block.pm: %CODE{ }EDOC%の解釈でメモリリークを起こす不具合を回避。
2003-03-09 Topia <topia@clovery.jp>
* Auto/AliasDB/CallbackUtils.pm: register_RandomNickConvertでメッセージがIrcIO::Client
発信だった場合に登録しないようにした。 (りんりんさんバグレポートありがとうございます)
2003-03-08 phonohawk <phonohawk@ps.sakura.ne.jp>
* IrcIO/Server.pm: オプションnetworks/always-notify-new-nickが設定されていたら
nickを変更する度に、変更したサーバーの新しいグローバルnickをNOTICEで通知する。
* IrcIO/Client.pm: ログイン時に本名として渡された$key=value;key=value...$のオプションを
パースする部分を書き直し。$ key =value ;key = value$のような設定でも
期待された通りに解釈する。
また、メソッドoption追加。このようにして渡されたオプションを取得する。
* tiarra, Configuration.pm, Configuration/Preprocessor.pm:
起動時にオプション--configを省略された場合の動作を変更。
ターミナル上から起動した場合は従来のようにデフォルトのファイル名であるtiarra.confを読むが、
標準入力がターミナルに接続されていなかった場合、つまりパイプ経由でリダイレクトされている場合は
tiarra.confでなく標準入力から設定を読む。この場合は設定のリロードは不可能となる。
例: cat tiarra.conf | sed -e 's/Tiarra/arraiT/g' | ./tiarra --quiet
* Configuration/Block.pm:
%CODE{ ... }EDOC%で挟まれた部分を、値の取得時に毎回評価する。
2003-03-04 Topia <topia@clovery.jp>
* Tools/MailSend/EachServer.pm: RunLoop::Hookを使用するように変更。
ループをなるべく回すように変更。flushはclose時とDATA時に行うことにした。
フェイルセーフの為に5sec間隔のTimerも使うことにする。
* Tools/GroupDB.pm: fpathで指定されたファイルが存在しないときにエラーとなるのを修正。
* Auto/Alias.pm: 配列の参照を渡すべきところを配列を渡してしまっていた。修正。
* LinedINETSocket.pm: ExternalSocketのuninstall等も必要かも知れないので
DESTROYを復活させる。
2003-03-04 phonohawk <phonohawk@ps.sakura.ne.jp>
* ExternalSocket.pm: read/write/want_to_writeで、callerをチェックする位置を変更。
* Configuration/Block.pm: 文字コードの再解釈に失敗する不具合を解決。
* RunLoop.pm: クラスRunLoop::Hook追加。
RunLoopのループが一回実行される度に呼ばれるフック。
呼ばれるタイミングとしてはselect実行直前または直後。どちらかを選択可能。
詳しくはRunLoop::Hookの先頭のコメントを参照の事。
2003-03-04 Topia <topia@clovery.jp>
* Auto/MesMail.pm: Tools/MailSend.pmを使うように修正。
* Tools/MailSend/EachServer.pm: 新規追加。SMTPサーバ毎に具体的なメール送信を行う。
POP before SMTPの場合はexpireまで待って、そうでない場合はすぐにオブジェクトを破棄する。
* Tools/MailSend.pm: 新規追加。メール送信を行う。
複数のサーバと同時に通信するためにTools/MailSend/EachServer.pmを管理している。
* Auto/Response.pm: rateを使えるようにした。
2003-03-03 phonohawk <phonohawk@ps.sakura.ne.jp>
* Configuration/Block.pm: ブロック内ブロックを扱えるように。
* Configuration/LexicalAnalyzer.pm: 新規追加。confの字句解析器。
* Configuration/Parser.pm: 新規追加。confの構文解析器。
* Configuration.pm: パーサを書き直し。上記二つのクラス、及びプリプロセッサを使用。
2003-03-02 Topia <topia@clovery.jp>
* Auto/Response.pm: 新規追加。plumのauto/response.plmの動作をする。
* Auto/AliasDB/CallbackUtils.pm: 存在してはいけないuninstallがあったので削除。
* Auto/Utils.pm: コールバックを追加できる引数の追加。
* Tools/GroupDB.pm: regexpを利用できるようにする引数の追加。
find_groups/find_groups_with_primaryの追加。
* Channel/Mode/Oper/Grant.pm: Auto/Oper.pmとmask処理を統一した。
* sample.conf: maskの説明が変わってしまうので書き換えた。
* sample.conf: '-*- tiarra-conf -*-' を一行目に追加した。Auto/MesMailのエントリ追加。
* Auto/MesMail.pm: 新規追加。伝言をメールとして送信する。メール送信部分は分けられてTools下に
行く可能性もある。
* Auto/Utils.pm: AliasDBの変更に同期。'(nick|user|host).now'はAliasDB内部に移動している。
* Auto/Oper.pm: AliasDBの変更に同期。Mask::match_deep_chanを使用するように。
* Auto/Alias.pm: AliasDBはオートフラッシュなのでデストラクタを消した。
* Auto/AliasDB/CallbackUtils.pm: RandomAliasConvert, JoinedListConvertを追加。
MessageReplaceにmessage_replace_lastを追加。
* Auto/AliasDB.pm: GroupDBを使用するように変更。関数名を一部変更した。
confでprivateとreadonlyなキーの指定が出来る。readonlyはまだ対応モジュールが存在しない。
* Tools/GroupDB.pm: 新規追加。AliasDBから独立させた。
2003-03-02 phonohawk <phonohawk@ps.sakura.ne.jp>
* Configuration/Preprocessor.pm: 新規追加。
confファイルのプリプロセッサとして使用する。
2003-03-01 phonohawk <phonohawk@ps.sakura.ne.jp>
* ConfigBlock.pm: 削除。Configuration::Blockに移動。
* InstantCapsule.pm: 新規追加。
フィールドとメソッドを持つオブジェクトを一時的に生成するクラス。
サンプルコードはInstantCapsule.pm内にあります。
2003-02-27 Topia <topia@clovery.jp>
* Mask.pm: チャンネルとユーザのマスクをconfで切替え可能にした。
sample.confにも説明を追加している。
* Mask.pm: mask_chanで[+-]を使用可能にした。+channelは++channelまたは
-+channelと表記する必要がある。
_split_with_chanのsplit処理を_splitに委託した。
* Mask.pm: channelを含めたmaskを処理する関数を追加した。
mask_chan, mask_deep_chanはstrの次にchanが追加されているだけで仕様は同じ。
mask_array_chanはstr_masks, chan_masks, str, chanと言う引数になっている。
次にcommitされる予定のAuto::Oper辺りがサンプルコードになるはず。
2003-02-26 Topia <topia@clovery.jp>
* Multicast.pm: channel_pを追加した。
nick_pに文字数チェック(length != 0)とdetachの処理を追加した。
* LinedINETSocket.pm: デストラクタを実行するより前にsocketが開放されているようだ。
デストラクタをコメントアウトした。
* LinedINETSocket.pm: 新規追加。行単位のキューを使用した入出力を行う。
2003-02-26 phonohawk <phonohawk@ps.sakura.ne.jp>
* ExternalSocket.pm: 新規追加。
* RunLoop.pm: RunLoopが任意のソケットを監視出来るように。
ソケットの監視にはExternalSocketを用いる。使い方はExternalSocket.pmにある。
* Timer.pm: uninstallした時はrunloopにundefを代入する。
2003-02-20 phonohawk <phonohawk@ps.sakura.ne.jp>
* Module.pm (notification_of_message_io) : 新規追加。
サーバーやクライアントと実際に送受信したメッセージが通知されるメソッド。デバッグ用。
* IrcIO/(Client/Server).pm : notification_of_message_ioを呼ぶための修正。
* IrcIO/Client.pm : 複数のクライアントを接続している際、
NICKの変更が他のクライアントへ伝わっていなかったので修正。
2003-02-19 phonohawk <phonohawk@ps.sakura.ne.jp>
* tiarra-conf.el: 新規追加。confファイルのEmacs用モード。試作品。
このファイルが置かれている場所をload-pathに追加し、次のようなautoloadを実行すれば良い。
(autoload 'tiarra-conf-mode "tiarra-conf" "tiarra.conf editing mode" t)
2003-02-17 phonohawk <phonohawk@ps.sakura.ne.jp>
* Configuration.pm:
・@includeで他のファイルをインクルード可能に。
但し一つのファイルを複数回@includeする事は出来ない。
・ブロックの{}の位置をある程度自由に。
・ブロックの中身が空で良ければ{}を省略可能に。
sample.confに詳しい説明があります。
* IrcIO/Client.pm: $key=value;key=value;...$形式の本名でログインすると、
特定のクライアントの間においてのみconfで設定された項目をオーバーライドする。
現在有効なキーはencodingで、これはクライアントとの通信に用いる文字コードである。
例:
$encoding=euc$ この本名でログインした場合、EUC-JPで通信を行なう。
2003-02-17 Topia <topia@clovery.jp>
* System/RemoteControl.pm: 複数行のmaskを使えるようにした。
* Mask.pm: コメント中の例が間違っていたので修正。
* Mask.pm: 正規表現マッチと+-機能のオン/オフを可能にした。
comma-separeted mask arrayを渡せる関数を追加した。
単純にmask arrayを渡せる関数を追加した。
wild cardを正規表現にするmake_regexを別関数として独立させた。
* Auto/Utils.pm: $get_ch_nameでparam(0)が無い場合undefを返すようにした。
2003-02-15 phonohawk <phonohawk@ps.sakura.ne.jp>
* RunLoop.pm: Time::HiResがインストールされている環境では
Timerの精度がミリ秒に上がる。入っていなければ秒のまま。
* PersonInChannel.pm: メソッドremark,delete-remark追加。
註釈を付ける事が出来る。
* Multicast.pm: attach/detachでエラーチェックを行なう。
2003-02-13 Topia <topia@clovery.jp>
* Auto/AliasDB/CallbackUtils.pm: MessageReplace callback を追加しました。
#(message_replace:[split_regexp]:[place]) です。placeはzero originとなっています。
ex. test alias -> #(message_replace: :1) -> alias
また、この変更でregister_stdcallbacksの引数が$ch_name -> $msgとなり、
その変更をAuto/AliasDB.pm, Auto/Utils.pmに反映させています。
* Auto/Answer.pm: 返答に$reply_anywhereを使うようにした。
* Auto/Random.pm: オートリロードと追加/削除の返答を追加しています。
* Auto/Alias.pm: Auto/AliasDB.pmに追加と削除を移しています。
追加/削除出来た場合に返答できるようにしました。
* Auto/Utils.pm: 返り値に、$reply_anywhere
(場合によってチャンネルに返したりprivで返したりする)を追加しました。
$reply_as_privがextra_replacesを付けられるようにしました。
reply_with_stdcallbacksを使用するようにしました。
reply_with_stdcallbacksはrandomやdate、randomnick、randomselectなどのcallbackを
登録します。
user.now, host.now などのエイリアスを追加するようにしました。
* Auto/AliasDB.pm: Auto/Alias.pmから追加と削除機能を移しました。
オートリロードするようにしました。
渡されたエイリアスからキーを見つけ出せなかった場合、callbackを呼ぶようにしました。
#(name;%s さん) などの表記をサポートしました。
サブフォーマット中に対応する括弧を含めます。
#(namesuf;#(name)%s)のような表記ができます。
* Auto/AliasDB/CallbackUtils.pm: AliasDBのCallback機能を使った標準的な拡張です。
* Tools/DateConvert.pm: 新規追加。plumの&'dateに相当。
* System/Pong.pm: xchat対策に、pingの代わりにpongを消滅させるようにした。
2003-02-13 phonohawk <phonohawk@ps.sakura.ne.jp>
* Multicast.pm: nick_pでのnicklen制限をやめた。
2003-02-12 phonohawk <phonohawk@ps.sakura.ne.jp>
* RunLoop.pm: $(network)/userでgeneral/userをオーバーライド可能に。
* System/RemoteControl.pm: 新規追加
* これ以前のログは書いていません。
# Id: $Id: ChangeLog,v 1.158 2004/08/22 11:28:41 topia Exp $
# Author: $Author: topia $
# Date: $Date: 2004/08/22 11:28:41 $
# Revision: $Revision: 1.158 $
|