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 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512
|
2009-02-01 Gustaf Neumann <neumann@wu-wien.ac.at>
*** AOLserver 4.5.1 RELEASED ***
2009-02-01 Gustaf Neumann <neumann@wu-wien.ac.at>
* nsd/pools.c:
2009-02-01 tag aolserver_v45_r1
2009-01-29 Gustaf Neumann <neumann@wu-wien.ac.at>
* nsd/pools.c:
Fixed error message for 'ns_pools set' command
* nsd/tclcache.c: Fixed behavior such that 'return' in
'ns_cache eval' works like described in the documentation
and in the old nscache module. Example:
ns_cache eval mycache mykey { return [expr {1+1}] }
Before, 'return' raised a tcl error.
* doc/ns_cache.n: added documentation of optional 'pattern'
argument for 'ns_cache names'.
* Updated Changelog.
2009-01-29 Gustaf Neumann neumann@wu-wien.ac.at
* nsssl/ssltcl.c:
Remove direct access to interp->result
* Changelog: Completed Changelog entries from commits after
the 4.5.0 release.
2009-01-19 Gustaf Neumann neumann@wu-wien.ac.at
* tcl/fastpath.tcl,
* tcl/file.tcl:
* tcl/form.tcl:
* tcl/http.tcl:
* tcl/nsdb.tcl:
* tcl/packages.tcl:
* tcl/sendmail.tcl: Use Tcl 8.4 non-numeric comparison
operators where appropriate
2008-12-27 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/nsd.h:
* nsd/pools.c:
* nsd/queue.c:
* tcl/pools.tcl:
New configure parameter "spread" for ns_pools:
Background: Requests are distributed to idle threads via
CondSignal, which delivers subsequent signals to idle
threads in a circular manner (i.e. t1, t2, .. tn, then t1
again) determined by the scheduling policy of the operating
system. This round robin behavior has the disadvantage that
multiple threads terminate about at the same time, based on
the maxconnections (or maxconns) value. The idle timeout
will never be used on a sufficiently busy server.
The mass termination of threads is performance-wise bad,
especially when many connections threads are configured,
since it is likely that about the same amount of threads
will be recreated. The "spread" parameter introduces a
random factor into threadtimeout and maxconnections to avoid
these termination cycles. It adds +/- the specified
percentage to maxconnections and threadtimeout (e.g. a
spread of 20 means a random value between 0.80 to 1.20 of
the specified value of maxconnections and threadtimeout for
every connection thread).
2008-12-05 Gustaf Neumann neumann@wu-wien.ac.at
* include/ns.h:
* nsd/limits.c:
* nsd/pools.c:
* nsd/server.c:
* nsext/nsext.c:
- Provide names for all Ns_Mutex to report meaningful output
in aolserver statistics
- Set version number to 4.5.0p1 to differentiate from 4.5.0
unpatched release
2008-10-12 Gustaf Neumann neumann@wu-wien.ac.at
* tcl/stats.tcl: Fixed Tcl expressions such they can be
compiled into Tcl byte code
2008-09-24 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/queue.c: Fixed boundary condition for starting threads
(there was a problem at least with keepwait > 0 and
minthreads = 0)
2008-06-20 Gustaf Neumann neumann@wu-wien.ac.at
* nscp/nscp.c:
* nsd/tclloop.c:
* nsd/tclshare.c:
* nsproxy/nsproxylib.c:
Remove direct access to interp->result
* Initializing potentially uninitialized variables
in nsproxy/nsproxylib.c:
2008-05-13 Jeff Rogers <dvrsn@diphi.com>
* configure.in: Add -nostartfiles flag to link line when -shared
is already there. Without this, build fails against tcl8.5
* configure: Regenerated
2008-05-10 Daniel P. Stasinski mooooooo@users.sourceforge.net
* nsperm/nsperm.c:
Fixed bug with netmask parsing
2008-05-06 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/tclfile.c:
Adding missing variable declaration
2008-04-24 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/tclfile.c:
Fix ns_tmpnam for WIN32 environments to return a path in the
TMP directory.
2008-03-22 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/fd.c: Fix for Mac OS X Leopard: setrlimit with
RLIM_INFINITY fails and causes Ns_Log to crash (fix was
sketched by David Caruso on the aolserver mailing list on
Jan 10, 2008)
2008-01-24 Dossy Shiobara <dossy@panoptic.com>
* nscgi/nscgi.c: Added Tcl command "ns_register_cgi" which
effectively does the same as "ns_param map" at startup, as
it takes the same argument, the map string. Also,
REQUEST_URI is now properly set in the env. for CGI
executables.
* nscgi/nscgi.c: Backported nscgi.c rev 1.33 change to
aolserver_v40_bp branch.
* nscgi/nscgi.c: Backported nscgi.c rev 1.34 change to
aolserver_v40_bp branch.
* nscgi/nscgi.c: Oops, REQUEST_URI should have only been the
Request-URI, not including the query string.
* nscgi/nscgi.c:
Untabified source, no code changes.
2007-10-26 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/nsd.h:
* nsd/pools.c:
* nsd/queue.c: Keep track of connection thread state. Two new
variables are introduced:
- starting: keeps the number of currently
starting threads
- waiting: the number of threads in the cond waiting state
These variables help to get a more precise understanding and
allow for better knowledge for thread creation (especially
under heavy load)
2007-10-22 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/queue.c: Remove old code for allowing to run more than
maxconns requests in one thread (replaced by thread
creation); Maintain min-threads threads when threads are
exiting.
2007-10-21 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/queue.c:
Protect poolptr condition by mutex
2007-10-20 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/nsd.h:
* nsd/pools.c:
* nsd/queue.c:
Continuing work on BUG #1615787; instead of performing in
boundary situations in the worst case more than the
configured maxconns requests, a new connection thread is
created automatically after the exit of a thread coming to
the end of it work cycle, when jobs are pending and no other
thread is able to process these.
* tcl/util.tcl:
using Tcl 8.4 string comparison operators
2007-10-19 Tom Jackson rmadilo@users.sourceforge.net
* nsd/queue.c: Previous versions of AOLserver included the
threadpool name in the name of the thread. This commit
simply adds back that making it easier to figure out what
threadpool was used for a request.
2007-10-19 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/driver.c:
* nsd/queue.c:
Better fix for BUG #1615787 in aolserver 4.5. Although the
original fix apparently helped for www.openacs.org, it
appears to simply change the timing, but did not fix the
problem itself. The problem was that under limited resource
configurations (e.g. maxthreads 5, maxconnections 3) and
heavy traffic, incoming requests were queued but not
processed in new connection threads. The situation was
especially bad, when the number of queued requests was
larger than maxconnections, since after processing n
requests the server was idling with a high number of queued
requests. New requests were put to the end of the queue
while old (maybe already timed-out) requests are being
served. The server appeared to hang. The current fix cares
for queued requests even when maxconns is exceeded. A maybe
better approach is to limit the number of queued requests or
to restart automatically threads when a thread exists due to
maxconns exceeded.
2007-09-29 Gustaf Neumann neumann@wu-wien.ac.at
* nsd/conn.c:
Extend ns_conn by two commands:
- ns_conn channel: Return a Tcl channel from the current
connection. This channel can be used to talk via Tcl I/O
to the remote client afterwards. "ns_conn channel" was
originally written by Zoran.
- ns_conn contentsentlength ?number?: Query or set the
number of octets sent to the client. This command can be
used in connection with "ns_conn channel" to adjust the
length entry in a log file in cases, the file was sent via
Tcl I/O.
* tcl/charsets.tcl:
fix unbraced expressions and old style comparisons
2007-08-24 Michael Andrews michael_andrews@users.sourceforge.net
* tcl/packages.tcl:
Modified log message to better conform to AOLserver standards.
2007-08-17 Michael Andrews michael_andrews@users.sourceforge.net
* tcl/packages.tcl:
I changed the way this file works. It now reads the
following from the server config:
ns_section "ns/server/${serverName}/packages"
ns_param library /some/path/here
ns_param library /some/path/here
ns_param library /some/path/here
ns_param library /some/path/here
ns_param require packageNameHere
ns_param require packageNameHere
ns_param require packageNameHere
All "library" values are added to the ::auto_path All
"require" values are executed by "ns_ictl package require" The
"nsinit" and "nspostinit" procs are then run for each package.
This allows you to specify packages to load at start up.
2007-08-01 Michael Andrews michael_andrews@users.sourceforge.net
* tcl/packages.tcl:
- Added License info
- changed init commands to all lower case.
* tcl/pools.tcl:
Added pools.tcl file to set default pool params from server
config.
* tcl/pools.tcl:
Changed caps in debug notice.
* tcl/pools.tcl:
Changed debug to notice
* tcl/pools.tcl:
Changed maxconns to maxconnections as it was in old
AOLserver.
* examples/config/base.tcl:
Changed maxconns to maxconnections to be backward compatible
2007-06-13 Michael Andrews michael_andrews@users.sourceforge.net
* examples/config/base.tcl:
Added nscp to the base.tcl (We need to redo the filesystem
layout and configs for the out of the box install).
2007-05-11 Nathan Folkman <nathan.folkman@gmail.com>
* nsproxy/nsproxylib.c: Fixed crash bug that occurred when
trying to create more then one proxy pool. The proxy id now
takes the form of:
<pool>-proxy-<number>
2007-05-08 Michael Andrews michael_andrews@users.sourceforge.net
* tcl/init.tcl:
No longer adds $AOLSERVER/lib to the auto_path if it already
exists.
* tcl/packages.tcl:
Optimized the code.
* tcl/packages.tcl:
removed hard return used for testing.
2007-05-07 Michael Andrews michael_andrews@users.sourceforge.net
* tcl/packages.tcl:
Added packages.tcl:
1) Reads config to set lib paths.
2) Reads config to load packages using ns_ictl.
3) Runs nsInit procs.
4) Runs nsPostInit procs.
2007-03-12 Nathan Folkman <nathan.folkman@gmail.com>
* nsd/tclhttp.c: Preliminary support added for getting and
retrieving binary data.
2007-01-22 Tom Jackson rmadilo@users.sourceforge.net
* nsd/tclresp.c:
Bug where Tcl_SetBooleanObj accesses shared object, fixed
with copy of obj
2006-12-15 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c: [BUG #1615787] Fix deadlock bug when driver
thread stalls under specific conditions. Thanks to Jeff
Rogers and Gustaf Neumann.
2006-08-17 Bas Scheffers basscheffers@users.sourceforge.net
* nsd/tclfile.c: Changed file permissions of mkdir to 777 so
it works properly with the system's umask.
2006-08-08 Dossy Shiobara <dossy@panoptic.com>
* include/nsattributes.h: Provide default no-op defines for
gcc attributes correctly to enable builds on older gcc to
work. Previously, "may_alias" attribute resulted in gcc
older than 3.3 to no longer build. This minor change fixes
this.
2006-07-07 Jim Davidson <jgdavidson@ool.com>
* include/ns.h:
* nsd/return.c: Added Ns_RegisterRedirect as a replacement to
Ns_RegisterReturn which did not require a virtual server
argument as expected.
* nsd/server.c: Updated to call new Ns_RegisterRedirect,
fixing bug #1518426
* doc/Ns_ConnReturnStatus.3: Updated to document the new
Ns_RegisterRedirect, removing reference to
Ns_RegisterReturn.
2006-06-28 Nathan Folkman <nathan.folkman@gmail.com>
* nsd/adpeval.c: Fixed crash bug in NsAdpLogError() when a
NULL adp->framePtr is encountered.
2006-06-27 Dossy Shiobara <dossy@panoptic.com>
*** AOLserver 4.5.0 RELEASED ***
2006-06-27 tag aolserver_v45_r0
2006-06-27 Jim Davidson <jgdavidson@ool.com>
* Makefile:
* util/install.sh (new file): Restored pre-4.5 Unix install
script installed in bin/ directory again.
* include/ns.mak.in: Restored various pre-4.5 Unix install
variables.
* nsd/adpeval.c: Removed some dead code.
2006-06-25 Jim Davidson <jgdavidson@ool.com>
* RELEASE (new file): Release notes.
* include/ns.h: Update for version 4.5 final.
* nsd/adpcmds.c:
* nsd/tclcmds.c: Added ns_adp_compress command present in
version 4.0.x.
* nsd/compress.c: Added Ns_Compress and Ns_CompressGzip
routines present in version 4.0.x
* nsd/driver.c: Fixed bug with pre-HTTP/1.0 request parsing.
* tcl/sendmail.tcl: Updated with fixes in 4.0.x from
atp@piskorski.com.
* util/nsinstall.tcl: Updated to support installing from a
lndir-created symbolic-link tree build directory and fixed
bug logging file modes of installed files.
* nsproxy/ns_proxy.n:
* nsproxy/nsproxylib.c: Added the "send", "wait", and "recv"
options to the ns_proxy command to support async requests.
Also, updated the extended error response info.
* doc/man.macros (deleted)
* include/man.macros (new file): Moved man pages include
file to the include directory where it's installed for use
by extension man pages.
* doc/Ns_ConnReturnStatus.3: Added details on the
Ns_RegisterReturn(3) routine.
2006-06-22 Nathan Folkman <nathan.folkman@gmail.com>
* nsd/adprequest.c: Fixed bug preventing ns_adp_stream
from working correctly due to NsAdpReset() being called
when it should not have been.
2006-06-19 Jim Davidson <jgdavidson@aol.com>
* nsd/adprequest.c:
* nsd/adpeval.c:
* nsd/adpcmds.c: Fixes for bug #1389389 where calls to ADP
outside a normal ADP request (e.g., within an ns_register_proc
callback) caused the connection to close.
* nsd/adpparse.c: Based on a patch from Alastair Young,
restored the AOLserver 3.x ADP parsing order where registered
tags, <% ... %> scripts, and <script> ... </script> tags
all have the same precedence. Also, fixed the parser to
handle nested sequences, e.g.:
<% ns_adp_puts [ns_adp_eval {<% ... %>} %>
2006-06-02 Jim Davidson <jgdavidson@aol.com>
* configure:
* configure.in: Added check for Darwin (OS/X) to disable
detection of poll which appears broken. Result is select
is used instead.
* nsd/driver.c: Fixed spurious "recv failed" messages when
clients dropped which should only have shown up when the
"debug" flag was set for a comm driver.
* nsd/tclinit.c:
* nsd/tclloop.c: Minor edits to silence compiler warnings.
2006-05-01 Zoran Vasiljevic <zv@archiware.com>
* nsproxy/nsproxylib.c: CloseProxy() did not set "once" after
creating the cleanup thread, resulting in many cleanup threads
(needlessly) created.
2006-04-28 Jim Davidson <jgdavidson@aol.com>
* nsd/adpcmds.c:
* nsd/adprequest.c: Fixed crash bug with NsAdpAppend being
called without an active ADP execution frame.
* doc/Makefile:
* util/nsinstall-man.sh: Makefile now installs man.macros
into the AOLserver include/ directory. The install script
will search there and other common locations to support
installing man pages located outside the doc/ directory.
2006-04-19 Nathan Folkman <nathan.folkman@gmail.com>
* include/ns.mak.in: Fixed to better support building 64-bit
on Mac OS X. Assuming Tcl is built with 64-bit extensions
enabled, it is no longer necessary to explicitly set CC.
* nszlib/Makefile: Added optional ZLIB environment variable
to allow user to define location of libz. Default is /usr/lib.
2006-04-19 Jim Davidson <jgdavidson@aol.com>
* configure:
* configure.in: Removed check for zlib now loadable by
nszlib module.
* doc/Ns_Conn.3:
* doc/Ns_ConnClose.3 (new file):
* doc/Ns_ConnContent.3:
* doc/Ns_ConnCopy.3:
* doc/Ns_ConnDriver.3:
* doc/Ns_ConnFlush.3 (new file):
* doc/Ns_ConnHeaders.3 (removed):
* doc/Ns_ConnQuery.3:
* doc/Ns_ConnQueueHeaders.3 (new file):
* doc/Ns_ConnRead.3:
* doc/Ns_ConnRedirect.3 (new file):
* doc/Ns_ConnReturn.3:
* doc/Ns_ConnReturnData.3 (new file):
* doc/Ns_ConnReturnFile.3 (new file):
* doc/Ns_ConnReturnOpen.3 (new file):
* doc/Ns_ConnReturnStatus.3 (new file):
* doc/Ns_ConnSend.3:
* doc/Ns_ConnSetHeaders.3 (new file):
* doc/Ns_ConnStatus.3 (new file):
* doc/Ns_ConnType.3 (new file):
* doc/Ns_ConnWrite.3 (removed):
* doc/Ns_Gzip.3 (new file):
* doc/Ns_Info.3:
* doc/Ns_Pathname.3: Update various man pages.
* include/ns.h: Added Ns_Gzip, Ns_SetGzipProc, and Ns_BinPath.
* nsd/compress.c: Changed from Ns_Compress to Ns_Gzip and
moved code to new nszlib module.
* nsd/connio.c: Updated to call Ns_Gzip, added Ns_ConnFlushDirect,
and fixed bug reading final line in Ns_ConnReadLine.
* nsd/fastpath.c: Fixed bug with mapped content.
* nsd/modload.c: Removed legacy pre-10.4 OS/X module loading
code as dlopen, etc. is now supported.
* nsd/pathname.c: Added Ns_BinPath.
* nsd/return.c: Now uses Ns_ConnFlushDirect in ReturnData
and changed Ns_ConnReturnHtml to call Ns_ConnReturnCharData
to ensure text is encoded as needed.
* nproxy/Makefile (new file):
* nsproxy/nsproxy.c (new file):
* nsproxy/nsproxy.h (new file):
* nsproxy/nsproxylib.c (new file):
* nsproxy/nsproxymod.c (new file): New AOLserver/Tcl
pipe-based proxy support.
* nszlib/ChangeLog (new file):
* nszlib/Makefile (new file):
* nszlib/README (new file):
* nszlib/example.tcl (new file):
* nszlib/ns_zlib.n (new file):
* nszlib/nszlib.c (new file):
* nszlib/nszlib.h (new file): New zlib extension for
AOLserver 4.5. Provides both the "ns_zlib" command and
enables the Ns_Gzip routine. Based on work by Vlad Seryakov
<vlad@crystalballinc.com>.
2006-04-14 Nathan Folkman <nathan.folkman@gmail.com>
* nsthread/reentrant.c: Updated ns_inet_ntoa() to be 64-bit safe.
2006-04-13 Jim Davidson <jgdavidson@aol.com>
* include/Makefile.global:
* include/Makefile.module: Backwards compatible makefiles
which map variables and include the new ns.mak.
* Makefile: Added install-tcl, install-skel, install-util,
install-bins, and install-docs directives.
* configure:
* configure.in: Uses CC var on OS/X which can be set for
64bit build. Regenerated configure from configure.in
* nscgi/nscgi.c: Removed minor memory leak when no CGI
mappings are present.
* nsd/Makefile:
* nsd/tclloop.c: Added new ns_for, ns_foreach, ns_while,
and ns_loop_ctl commands to support monitored Tcl loop
structures.
* nsd/adpparse.c: Clarified difference between script, proc,
and adp registered tags.
* nsd/conn.c: Added optional arg to ns_conn status to set
result status if present.
* nsd/connio.c: Switch to memchr to avoid running off the
end of mmap'ed content.
* nsd/driver.c:
* nsd/queue.c: Moved free of various conn structures to
driver where they were allocated to avoid illusion of driver
constantly leaking memory freed in conn threads.
* nsd/init.tcl: Init and interp dup code now makes better
use of ns_ictl.
* nsd/nsd.h:
* nsd/server.c: Added support for ns_ictl package and once
in the NsInterp struct.
* nsd/nsmain.c: Added call to Tcl_Finalize on exit.
* nsd/sockcallback.c: Switched to NsPoll from direct poll.
* nsd/tclcmds.c: Added ns_adp_registerscript, ns_for,
ns_foreach, and ns_while commands and removed the dummy
ns_init and ns_cleanup commands.
* nsd/tclinit.c: Updated trace execution order to be FIFO
and LIFO for init and cleanup callbacks and moved more of
the interp dup code to the bootstrap script. Also, added
the ns_ictl package and once commands.
* nsd/tclobj.c: Removed panic when compiling on 64bit
machines and simplified int to time conversion code.
* doc/Ns_Alloc.3:
* doc/Ns_Exec.3:
* doc/ns_addr.n
* doc/ns_at.n
* doc/ns_cache.n
* doc/ns_chan.n
* doc/ns_init.n
* doc/ns_urlencode.n: Updated some man pages (much more to do).
* doc/ns_adp.n: Modified to be an ADP overview only with
commands in separate files.
* doc/ns_proc.n (removed): Moved to ns_register_proc.n.
* doc/ns_crash.n (removed): Not implemented.
* doc/Makefile: Uses new simple man page install independent
of section and added install of index.adp html browser.
* doc/index.adp (new file):
* doc/ns_adp_ctl.n (new file):
* doc/ns_adp_debug.n (new file):
* doc/ns_adp_exception.n (new file):
* doc/ns_adp_include.n (new file):
* doc/ns_adp_mimetype.n (new file):
* doc/ns_adp_puts.n (new file):
* doc/ns_adp_registertag.n (new file):
* doc/ns_adp_stats.n (new file):
* doc/ns_ictl.n (new file):
* doc/ns_lctl.n (new file):
* doc/ns_register_proc.n (new file): New man pages.
* include/ns.mak.in: Simplified man page install and added
support to convert man pages to html.
* util/nsinstall-man.sh: Added -h option to generate html
pages with groff instead of man pages and removed the -e,
-s, and -z options not used.
2005-10-25 Nathan Folkman <shmooved@aol.com>
* tcl/return.tcl (new file): Implements ns_returnmoved
command. More information can be found here:
http://panoptic.com/wiki/aolserver/Ns_returnmoved
2005-10-24 Daniel P. Stasinski <mooooooo@avenues.org>
* nsd/compress.c: Fixed gzip compression of ADP
files.
2005-10-09 Jim Davidson <jgdavidson@aol.com>
* nsd/init.c: Fixed bug with NsInitFd called before
NsInitLog.
* nsd/fd.c:
* nsd/nsmain.c: Moved code to increase open fd limit to
NsInitFd and
* nsd/sock.c: Added comments for NsPoll and renamed poll
emulation function to ns_poll.
* nsd/driver.c: Simplified code to reset a Conn after a
connection, simply zero'ing all fields except the I/O
buffers. This fixed a bug with recursionCount not being
reset.
* nsd/nsd.h: Fixed bug with large responses caused by
'sendwait' fields in Ns_Driver and Driver not being aligned
due to addition of 'fullname' field in Ns_Driver alone.
2005-10-06 Dossy Shiobara <dossy@panoptic.com>
* nsd/: op.c (1.15), return.c (1.48), tclcmds.c (1.54), tclresp.c
(1.20): Add ns_internalredirect Tcl command to make
Ns_ConnRedirect available from Tcl. Moved recursion detection
into Ns_ConnRunRequest. Closes SF RFE #1315460.
2005-09-26 Nathan Folkman <shmooved@aol.com>
* nsd/mimetypes.c: Updated with additional MIME types.
2005-08-24 Nathan Folkman <shmooved@aol.com>
* examples/config/README (new file):
* examples/config/base.tcl (new file):
* examples/config/nscp.tcl (new file):
* examples/config/stats.tcl (new file): Examples showing
various configuration options for the core AOLserver,
as well as other standard AOLserver modules.
* sample-config.tcl (removed): This file has been replaced
by examples/config/base.tcl.
* full-config.tcl (removed): This file is being replaced
by smaller, more specific, configuration example files.
* Makefile: Updated to install examples/config/base.tcl
as the default configuration example.
* README: Updated to reflect changes made to default
configuration file.
2005-08-23 Jim Davidson <jgdavidson@aol.com>
* include/ns.h:
* nsd/fastpath.c:
* nsd/nsd.h:
* nsd/server.c:
* nsd/tclcmds.c:
* nsd/tclrequest.c: Applied patch from Stephen Deasey for
new ns_register_fastpath command.
2005-08-23 Jim Davidson <jgdavidson@aol.com>
* include/ns.h:
* include/nsattributes.h (new file):
* include/nsthread.h:
* nsd/info.c:
* nsd/log.c:
* nsd/queue.c:
* nsd/tclfile.c:
* nsd/tclinit.c:
* nsd/tcljob.c:
* nsd/tclmisc.c:
* nsd/tclthread.c:
* nsd/tclvar.c:
* nsthread/thread.h: Applied patches from Stephen Deasey
for better compile time error checking.
* nsd/driver.c:
* nsd/exec.c: Fixed bugs found by new compile time checks.
* nsthread/error.c: Silence compiler warning from new
compile time checks.
2005-08-21 Jim Davidson <jgdavidson@aol.com>
Several updates to simplify maintenance of the build process.
Basically, the makefiles support both gmake on Unix and
nmake on Windows by including a platform-specific include/ns.mak
created by the nsconfig.tcl script. See comments README
for instructions.
README: Updated with new build instructions.
include/Makefile.global.in (removed):
include/Makefile.module.in (removed):
include/Makefile.build (removed):
include/ns.mak.in (new file):
include/ns-mak.inc (new file): Unix and Windows templates
for include/ns.mak, replacing the previous include/Makefile.*
files.
nsconfig.tcl (new file): Tcl configure script which calls
configure on Unix and creates include/ns.mak directly on
Windows.
util/nsinstall.sh (removed):
util/nsmakeall.tcl (new file):
util/nsinstall.tcl (new file):
util/nsremove.tcl (new file): Tcl shell utility scripts
called by include/ns.mak.
ini2tcl.tcl (removed):
tcl2ini.tcl (removed):
util/ini2tcl.tcl (new file):
util/tcl2ini.tcl (new file): Moved files from top level.
util/nsinstall-man.sh: Updated to create directories as
needed (Unix only).
Makefile:
aclocal.m4:
configure.in:
configure:
doc/Makefile:
nscgi/Makefile:
nscgi/Makefile:
nscp/Makefile:
nsd/Makefile:
nsdb/Makefile:
nslog/Makefile:
nsperm/Makefile:
nssock/Makefile:
nsthread/Makefile:
nstclsh/Makefile: Updated to build using include/ns.mak.
win32/ (removed): Removed previous Windows build enviornment.
sample-config.tcl: Updated to change module file extension
to .so on Windows to match Unix.
include/nsdb.h:
nsdb/db.h:
nsthread/thread.h: Updated to export public functions on
Windows.
2005-08-19 Nathan Folkman <shmooved@aol.com>
* full-config.tcl (new file): Currently just a copy
of the original sample-config.tcl. Over time this file
will contain all of the configurable options for
AOLserver along with detailed comments.
* sample-config.tcl: Stripped away as much as possible
in order to simplify the default configuration example.
Also update to enable the Web statistics interface by
default, as well as also enabling the control port.
You should be sure to update the default user names and
passwords for both the stats interface and control port
before installing in a production environment.
2005-08-11 Jim Davidson <jgdavidson@aol.com>
* include/ns.h:
* nsd/conn.c: Added Ns_ConnGet/SetGzipFlag API's.
* nsd/adpeval.c
* nsd/adprequest.c:
* nsd/nsd.h:
* nsd/server.c: Added autoabort config/flag to raise adp
abort exception when a flush fails.
* nsd/tclresp.c: Cleaned up error message on no conn.
* nstclsh/nstclsh.c: Added call to fully initialize Tcl
shell.
* include/nsmodinit.c:
* nsd/nswin32.c: Minor fixes for Win32.
2005-08-09 Jim Davidson <jgdavidson@aol.com>
* nsd/adpeval.c: Updated to suppress multiple error log
messages in stricterror mode
* nsd/driver.c:
* nsd/nsd.h:
* nsd/request.c:
* nsd/return.c: Updated to match response http version
with client version.
* nsd/init.tcl:
* nsd/tclcmds.c: Removed ns_adp_include proc now in
tclcmds.c.
2005-08-08 Jim Davidson <jgdavidson@aol.com>
* include/ns.h:
* nsd/conn.c:
* doc/Ns_ConnContent.3: Incorporated patch from Fred Cox
to add the Ns_ConnContentOnDisk API.
* include/nsmodinit.c (new file):
* include/nslibinit.c (new file):
* include/Makefile.global.in:
* include/Makefile.module.in: New stubs and makefile targets to
support building a library or module in a consistent way which
separates the library code installed as both a static archive and
dynamic lib from the library and/or module init calls.
* nscp/Makefile:
* nscp/nscp.c:
* nsdb/Makefile:
* nsdb/nsdb.c:
* nslog/Makefile:
* nslog/nslog.c
* nsperm/Makefile:
* nsperm/nsperm.c:
* nssock/Makefile:
* nssock/nssock.c: Updated to use init stubs described above.
* include/ns.h
* include/nsthread.h
* nsthread/Makefile:
* nsthread/thread.c:
* nsthread/pthread.c:
* nsthread/winthread.c:
* nsthread/nsthreadtest.c:
* nsd/Makefile:
* nsd/init.c:
* nsd/nsmain.c:
* nsd/tclinit.c: Added Ns_LibInit and NsThreads_LibInit which,
in addition to being called at dynamic library load time, are
now also called at the Ns_Main and Ns_TclInit entry points to
support initialization of static builds assuming code starts at
the two supported entry points.
* nscgi/Makefile
* nscgi/nscgi.c: Updated to use new mod init stub and new
Ns_DevNull and Ns_ContentFd API's.
* nstclsh/: New simple Tcl shell with AOLserver commands.
* examples/mynsd/: Example of building a custom static linked
nsd binary.
2005-08-04 Jim Davidson <jgdavidson@aol.com>
* doc/ns_adp.n: Updated docs, needs more work.
* nsd/nsd.h:
* nsd/adpeval.c:
* nsd/adpcmds.c:
* nsd/adprequest.c: Updated the init/re-init approach for
adp options so they can be set before the first include.
Also, fixed AdpRun so it detects parse/compile safe and/or
singlescript options may have changed.
2005-08-05 Nathan Folkman <shmooved@aol.com>
* nsd/log.c:
* nsd/nsconf.c:
* nsd/nsd.h: Fixed bug where NsLogConf() procedure was
not defined or being called during server initialization.
2005-08-03 Jim Davidson <jgdavidson@aol.com>
* adpeval.c: Moved frame management directly into AdpEval
with better comments to describe how Tcl errors and ADP
exceptions are treated. Also, further tweaked the error
message format.
* adpparse.c
* adpcmds.c:
* adprequest.c
* nsd.h:
* server.c: Moved remaining server-wide ADP flags to
interp-level which can be set/unset via ns_adp_ctl and added
"trimspace" option and config to trim leading whitespace
from output (helpful when generating xml).
2005-08-02 Jim Davidson <jgdavidson@aol.com>
Some updates to get code to compile on Win32. Unfortunately
there is still no simple way to export the build environment
so the project/workspace files in the win32/ directory will
still be a struggle to use.
* Makefile:
* install-sh: Updated to not overwrite existing index.adp.
* nsd/adpeval.c: Fixed bug checking result of Ns_CheckStack.
* nsd/nsd.h
* nsd/adpparse.c:
* nsd/adprequest.c:
* nsd/server.c: Separated adp server config and interp
option flags.
* nsd/connio.c: Ns_ConnSendFdEx disabled for Win32 (no
pread).
* nsd/queue.c:
* nsd/pools.c: Connection threads are now joined and don't
run detached.
* nsthread/thread.h:
* nsthread/thread.c:
* nsthreadd/winthread.c: Updates for Win32 including adding
NsGetStack (which, unfortunately does not actually get the
stack).
2005-08-01 Jim Davidson <jgdavidson@aol.com>
Work to enhance ADP error handling and reporting.
* nsd/adpcmds.c:
* nsd/nsd.h:
* nsd/server.c: Added strict, display, and detail error options
which can be set via server config and/or ns_adp_ctl.
Example (with defaults):
ns_section "ns/server/server1/adp"
ns_param stricterror false; # Stop execution on error.
ns_param detailerror true; # Include connection detail.
ns_param displayerror false; # Return error message in page.
* nsd/adpeval.c: Support for error options above plus inhibit
cacheing of failed execution results (more work required
here).
2005-08-01 Nathan Folkman <shmooved@aol.com>
* nsd/adpeval.c:
* nsd/nsd.h:
* nsd/server.c: Added new configurable option which allows
you to specify the max size (in characters) of the ADP
trace output.
Example (with defaults):
ns_section "ns/server/server1/adp"
ns_param trace false; # Enable text/script debug info.
ns_param tracesize 40; # Max chars of each chunk to log.
2005-08-01 Jim Davidson <jgdavidson@aol.com>
Quite a few changes, mostly to enable all commands to run
outside a virtual server as a step toward enabling more
effective unit testing of individual compontents. Also,
updated ADP to enable much more detailed error messages on
execeptions which includes line numbers, include file traces,
and connection details.
* nsd/Makefile: Added ctags target.
* nsd/adpeval.c:
* nsd/adprequest.c: New ADP frame management approach for
enhanced error messages (file trace and connection details)
and relocation of init/flush calls to top level frame.
* nsd/adpcmds.c: Added ns_adp_ctl "channel" option and updated
code for new ADP frame management.
* nsd/adpparse.c: Updated parser to save line number info
for possible error reporting.
* nsd/conn.c:
* nsd/tclresp.c: Standard usage of NsTclGetConn to verify
and active connection and cleanup of ns_startcontent command.
* nsd/auth.c:
* nsd/encoding.c:
* nsd/info.c:
* nsd/tclrequest.c:
* nsd/tclset.c: Use of NsTclGetServer call to verify when
a server is required for a command.
* nsd/config.c:
* nsd/dns.c:
* nsd/log.c:
* nsd/nsconf.c:
* nsd/nsconf.h:
* nsd/nsd.h:
* nsd/pidfile.c: Moved components of nsconf struct to
cooresponding private code and added NsParam functions to
simplify core parameter config.
* nsd/driver.c: Added debug config option which will enable
logging of unusual I/O or protocol errors.
* nsd/fastpath.c: Minor edits.
* nsd/fd.c:
* nsd/nsmain.c: Moved core fd init code from Ns_Main to
NsInitFd.
* nsd/init.c: Re-ordered inits to ensure fds and log are
initialized first.
* nsd/queue.c: Disabled ns_server "keepalive" option as the
cooresponding variable was no longer being maintained.
* nsd/return.c: Cleaned up and isolated the complex keep-alive
check and enabled configurable HTTP response version (default
1.1).
* nsd/server.c: Enabled a global, psuedo-server, to support
all Tcl commands outside the context of a virtual server.
* nsd/task.c:
* nsd/tclcache.c:
* nsd/tclfile.c:
* nsd/tclimg.c: Minor edits to silence the compiler.
* nsd/tclcmds.c: Made all commands available outside a
virtual server and moved ns_adp_include proc creation to
C.
* nsd/tclinit.c: Fixed async cancel support which is really
the ability to send a thread a signal to cancel Tcl script
eval in the currently active interp, if any. Also, updated
code to support running outside a virtual server.
* nsd/tcljob.c:
* nsd/tclshare.c:
* nsd/tclsock.c:
* nsd/tclthread.c: Updated to work outside a virtual server.
* nscgi/nscgi.c
* nsd/tclhttp.c: Switched to strtol fromm atoi which evidently
isnt always thread safe.
2005-07-22 Jim Davidson <jgdavidson@aol.com>
* doc/Makefile: Fix install target bugs.
2005-07-21 Nathan Folkman <shmooved@aol.com>
* Makefile:
* index.adp: Created new default index.adp page which displays
a number of AOLserver configuration settings. Updated the
Makefile to install in the default page root.
* nsd/dns.c: Fixed infinite recursion bug in GetAddr().
2005-07-20 Nathan Folkman <shmooved@aol.com>
* nsd/nsconf.c:
* nsd/nsconf.h: Added new logdebug parameter for consistency.
Supported parameters are: (debug or logdebug), logdev,
and lognotice. Updated dnscachemaxentries to use new
DNS_MAX_ENTRIES constant.
2005-07-19 Nathan Folkman <shmooved@aol.com>
* nsd/log.c: Fixed bug where log level "Dev" wasn't supported.
2005-07-18 Jim Davidson <jgdavidson@aol.com>
* Makefile:
* doc/Makefile:
* doc/mkLinks (removed):
* doc/install-doc (removed):
* doc/nsinstall-man-sh: New approach to installing man
pages.
* doc/Ns_ConnContent.3:
* doc/Ns_ConnQuery.3:
* doc/Ns_Conn.3: Broke out some Ns_Conn related man pages.
* doc/Ns_Config.3:
* doc/Ns_Exec.3: Cleaned out some trailing linefeeds.
* nsd/Makefile:
* nsd/tclcache.c:
* nsd/tclcmds.c:
* nsd/tclthread.c: New ns_cache command based on ideas from
nscache module and made ns_thread an object command.
* include/ns.h
* nsd/conn.c:
* nsd/connio.c:
* nsd/driver.c:
* nsd/fastpath.c
* nsd/fd.c
* nsd/form.c:
* nsd/nsd.h
* nsd/return.c: Finished up support for temp-file based
content, allowing access via Ns_ConnContent or Ns_ConnContentFd.
Also, added new Ns_ConnFile routines to access uploaded
files and Ns_ConnSendFdEx and Ns_ConnReturnOpenFdEx routines
to send open file descriptors using pread, allowing
multi-threaded use.
* nsd/queue.c: Moved code from Ns_ConnInit to the core as
Ns_ConnInit is now a no-op to avoid confusing folks on
whether it's required to call or not.
* nsd/quotehtml.c: Fix to support UTF-8.
* nsd/fd.c:
* nsd/init.c: Support for new Ns_DevNull API which was going
to be used by Ns_ConnContentFd.
* nsd/server.c:
* nsd/tclhttp.c: Removed old-style ns_http in favor of only
the new Ns_Task-based code.
* nsdb/nsdb.c: Fixed crash loading nsdb outside a virtual server.
* nsd/adpcmds.c:
* nsd/adpeval.c:
* nsd/binder.c:
* nsd/callbacks.c:
* nsd/compress.c:
* nsd/dns.c:
* nsd/listen.c:
* nsd/log.c:
* nsd/nswin32.c:
* nsd/rollfile.c:
* nsd/sock.c:
* nsd/sockcallback.c:
* nsd/task.c:
* nsd/tclinit.c:
* nsd/tcljob.c:
* nsd/tclsched.c:
* nsd/tclsock.c:
* nsd/tclvar.c:
* nsd/unix.c: Code cleanup to avoid duplicate routine and
struct names across files.
2005-06-21 Jim Davidson <jgdavidson@aol.com>
* nsd/connio.c: Fixed bad return code for Ns_ConnReadLine.
* nsd/task.c: Fixed to handle a return of POLLHUP from poll.
2005-03-27 Jim Davidson <jgdavidson@aol.com>
* nsdb/dbtcl.c: Updated ns_db to be an object command.
* nsd/driver.c:
* nsd/limits.c:
* nsd/pools.c:
* nsd/tcljob.c:
* nsd/tclrequest.c: Fixed usage of Tcl_GetIndexFromObj.
* nsd/exec.c: Sets errno from child in parent for better
error messaging.
2005-03-24 Jim Davidson <jgdavidson@aol.com>
Several changes to cleanup and clarify Tcl resource management,
add support for large content overflow to temp file (minimal
testing, likley more work to be done), and simplify encoding
management. Also, updated the version to 4.5 given the
scope of changes since 4.0
* include/ns.h: Added Ns_FindCharset and Ns_GetCharsetEncodingEx.
and bumped version to 4.5.
* nsd/nsd.h: Simplified connection encoding config, renamed
NsGetInterp to more clear NsGetInterpData.
* nsd/tclshare.c:
* nsd/tclset.c:
* nsd/tclthread.c: Changed NsGetInterp to NsGetInterpData.
* nsd/adprequest.c: Removed some connection setup code now
part of Ns_GetConnInterp.
* nsd/connio.c: Simplified Ns_WriteCharConn and added code
to set the input encoding in Ns_ConnInit.
* nsd/driver.c:
* nsd/conn.c: Added support for large content
requests spooled to a temp file. In these cases, the
NS_CONN_FILECONTENT flag is set and the content can be
accessed via the the new Ns_ConnContentFd routine or ns_conn
contentchannel option (limited test, feedback appreciated).
* nsd/form.c: Updated to use Ns_ConnGetUrlEncoding.
* nsd/nsconf.c: Removed call to NsUpdateUrlEncode no longer
required.
* nsd/queue.c: Call to new private NsFreeConnInterp instead
of Ns_FreeConnInterp which is now a no-op.
* nsd/encoding.c:
* nsd/urlencode.c:
* nsd/request.c:
* nsd/server.c: Simplified charset/encoding config for
process-wide url decoding and per-virtual server defaults
for dyanmic Tcl requests.
* nsd/tclcmds.c: Made ns_atclose an object command.
* nsthread/tls.c:
* nsd/Makefile:
* nsd/tclatclose.c:
* nsd/tclinit.c: Restructured to be more clear and added
detailed comments to help describe the Tcl management
complexity. Also, incorporated code from tclatclose.c and
moved call to Tcl_FinalizeThread directly into the nsthread
library.
* nsthread/pthread.c: Fixed comments.
* nsd/tclrequest.c:
* nsd/return.c: Some minor cleanup.
2005-03-04 Nathan Folkman <shmooved@aol.com>
* nsd/limits.c: Fixed bug where limitsPtr->name was
incorrectly being set to NULL. Updated FindLimits() to
initialize all values in Limits structure. Renamed keys
returned by LimitsResult() to distinguish between items
which are counts (ntimeout, ndropped, noverflow, etc.)
and items which are configuration parameters (maxwait,
timeout, maxrun, etc.)
2005-01-18 Nathan Folkman <shmooved@aol.com>
* nsd/tcljob.c: Minor clean up to "cannot wait on job" error
message which wasn't correctly implemented.
2005-01-17 Jim Davidson <jgdavidson@aol.com>
Some work fixing up the new thread pools and limits code.
Quick background:
Pools are designed to allow certain requests to be handled
by specific collections of threads. This could, for example,
ensure multiple long running requests don't block other
short running requests. Pools are selected based on
method/url pairs using url-specific data. By default, all
requests are handled by a single unlimited "default" pool.
There is also an "error" pool described below. You can
create and configure additional pools with the ns_pools
command.
Limits are designed to manage resources before the connection
is ready to run. They are also keyed on the method/url
pair and include such items as max concurrent connections,
max file upload size, and timeouts for I/O and run wait.
When limits are exceeded, the driver thread will dispatch
the connection to the "error" pool to generate a quick
response. By default all requests share the same default
limits. You can create and configure additional limits
with the ns_limits command.
* nsd/nsd.h:
* nsd/driver.c: Renamed NsGetLimits and NsGetPool to
NsGetRequestLimits and NsGetConnPool for a bit of clarity.
* nsd/queue.c: Re-enabled ns_server command, now with
optional thread arg to specify the thread pool to query
(default is "default").
* nsd/pools.c:
* nsd/limits.c: Cleaned up code and added comments.
* nsd/encoding.c: Bug fix.
2005-01-17 Jim Davidson <jgdavidson@aol.com>
* include/ns.h:
* nsd/connio.c:
* nsd/conn.c: Added new Ns_ConnSetStatus and Ns_ConnGetStatus
routines to set/get HTTP response status code to be sent
in reponses by Ns_ConnFlush.
* doc/mkLinks:
* doc/Ns_ConnHeaders.3: Added placeholders for new
Ns_ConnGetStatus and Ns_ConnSetStatus routines.
* nsd/nsd.h:
* nsd/encoding.c: Removed previous private type/encoding
code now integrated into new public Ns_ConnSetType.
* nsd/return.c: Updated ReturnCharData to use new Ns_ConnFlush.
* nsd/server.c: Removed some config code to set encodings
now determine when needed based on charsets.
* nsd/form.c: New NsCheckQuery private routine to verify
query form was decoded with current encoding.
* nsd/queue.c: Fixed possible race in NsConnArgProc.
* nsd/adprequest.c:
* nsd/driver.c: Minor cleanup.
2005-01-15 Jim Davidson <jgdavidson@aol.com>
Among some general code cleanup, several changes to factor
out previous ADP-only code for encoding, compressing, and/or
chunking output via a more general Ns_ConnFlush routine.
ADP output semantics should now be closer to those of stdio
including a specific "ns_adp_flush" mechanism to force a
valid streamed response (likely in HTTP/1.1 "chunked" format)
during execution as well as a buffer high-water mark which
will force flushing on overflow (default 1meg). These
changes should both be more flexible to use and allow ADP's
which generate very large results to avoid consuming memory
waiting to send a single, large response. Ordinary ADP's
which generate a normal, relatively small responses, will
behave as before.
* include/ns.h: Added Ns_ConnFlush, Ns_ConnSend, Ns_ConnSetType,
and Ns_ConnGetType along with some new NS_CONN constaints.
* nsd/connio.c: Added Ns_ConnFlush which provides a general
encoding, compressing, chunking response capbility which
was mostly previous ADP-only code.
* nsd/conn.c: Added Ns_ConnSetType and Ns_ConnGetType routines.
* nsd/form.c: Added checks to better catch a change in URL
encoding.
* nsd/tclcmds.c:
* nsd/adpcmds.c: Added ns_adp_ctl, ns_adp_flush, and
ns_adp_close commands and simplified code with new NsAdpGetBuf
routine. Also, use of new Ns_ConnSetType and Ns_ConnGetType
to factor out previous ADP-only code.
* nsd/nsd.h: Combined AdpParse and AdpCode structs, several
new ADP_ and SERV_ flag bits, and several new ADP internal
routines.
* nsd/adpeval.c:
* nsd/adpparse.c: Simplified code by combining AdpParse and
AdpCode structs and added new AdpTrace facility to monitor
ADP internals.
* nsd/adprequest.c: Added NsAdpGetBuf API and factored out
flush/close code to use new more general Ns_ConnFlush API.
* nsd/driver.c: Now truncates instead of freeing I/O dstring
bufs to avoid repeated realloc calls between connections
(potential source of additional memory growth).
* nsd/request.c: Added comment for for NsAppendRequest.
* nsd/return.c:
* nsd/server.c: Use of new flag bits instead of specific
bool's and several new config options. Also, added
* doc/ns_adp.n:
* doc/mkLinks:
* doc/Ns_ConnHeaders.3:
* doc/Ns_ConnRead.3:
* doc/Ns_ConnWrite.3: Added placeholders for new ns_adp_close,
ns_adp_ctl, and ns_adp_flush commands and Ns_ConnFlush,
Ns_ConnGetType and Ns_ConnSetType routines (unfortunately
no actual documentation yet).
* nsd/compress.c:
* nsd/fastpath.c:
* nsd/fd.c:
* nsd/limits.c: nsd/nsmain.c nsd/quotehtml.c: Minor casts
to silence compiler.
2005-01-03 Zoran Vasiljevic <zv@archiware.com>
* nsd/tclfile.c: Certain command sequence with [ns_chan] may cause
server to crash (see SF BUG #1094480). Fixed now.
Also, fixed channel tables cleanup and channel-closing which also
cored the server due to better Tcl library checking.
2004-12-06 Dossy Shiobara <dossy@panoptic.com>
* include/ns.h (1.73), nsd/dns.c (1.12), nsd/tclsock.c (1.21),
tests/new/ns_addrbyhost.test (1.2): Implement
Ns_GetAllAddrByHost() and [ns_addrbyhost -all]. Closes SF RFE
#999452.
2004-12-01 Dossy Shiobara <dossy@panoptic.com>
* include/ns.h (1.72): Provide NS_VERSION_NUM definition to make
conditionalized testing of AOLserver version at build time easy.
2004-11-20 Dossy Shiobara <dossy@panoptic.com>
* nsd/tclsched.c (1.6): Option parsing needed to be more careful,
leading to segfaults when a bad command like [ns_schedule_proc
-thread -only] is executed. Closes SF Bug #1068836.
2004-11-19 Dossy Shiobara <dossy@panoptic.com>
* configure (1.24), configure.in (1.19): autoconf now detects if
libgcc is built shared, in which case LIBS needs -lgcc_s.
Without it, the nsd binary will fail to link because of
unresolved symbols __umoddi3 and __udivdi3 in nsd/dsprintf.c.
2004-11-19 Dossy Shiobara <dossy@panoptic.com>
* nsd/Makefile (1.43): Adding -lz to LIBS is now redundant.
2004-11-19 Dossy Shiobara <dossy@panoptic.com>
* include/nsthread.h (1.28): Need to include <inttypes.h> on some
platforms (OS X, Solaris 10) to get C99 "uint32_t" and other
types.
2004-11-19 Dossy Shiobara <dossy@panoptic.com>
* configure (1.23), configure.in (1.18), include/Makefile.global.in
(1.17), nsd/compress.c (1.2): Add --with-zlib configure option
(on by default) and add ifdef's to nsd/compress.c.
2004-11-19 Dossy Shiobara <dossy@panoptic.com>
* nsd/Makefile (1.42), nsd/compress.c (1.1), include/ns.h (1.71):
Add new Ns_Compress() function to gzip data using Zlib.
2004-11-17 Dossy Shiobara <dossy@panoptic.com>
* nsd/adprequest.c (1.18): Don't send Content-Length if streaming
is on.
2004-11-15 Dossy Shiobara <dossy@panoptic.com>
* nsd/nsmain.c (1.60): AOLserver will now allow setting the fd
limit (via "ulimit -Hn", etc.) and only log a warning if it
exceeds FD_SETSIZE. Do this at your own risk, as things which
still use select(), i.e., Tcl, are likely to break.
2004-11-05 Dossy Shiobara <dossy@panoptic.com>
* nsd/sockcallback.c (1.15): Dereferencing cbPtr->nextPtr is
dangerous since cbPtr could have been freed.
2004-10-27 Jim Davidson <jgdavidson@aol.com>
* include/nsd.h:
* nsd/adpcmds.c:
* nsd/adpeval.c: Updates to new ADP cache capability, changing
ns_adp_include -ttl option to -cache and adding -nocache option.
2004-10-26 Jim Davidson <jgdavidson@aol.com>
* ns.h:
* nsd/adpcmds.c:
* nsd/adpeval.c:
* nsd/adprequest.c:
* nsd/nsd.h:
* nsd/server.c: Added new ADP caching capabilities enabled via
configuration and/or ns_adp_include -ttl (work in progress).
* nsd/queue.c:
* nsd/driver.c:
* nsd/request.c: Fixes to avoid thread race conditions when
when using ns_info threads.
2004-10-06 Jim Davidson <jgdavidson@aol.com>
* include/ns.h:
* nsd/task.c:
* nsd/server.c:
* nsd/tclcmds.c
* nsd/tclnhttp.c: Added new I/O task API and a new implementation
of ns_http which uses and has more flexible argument processing.
A tcl/oldhttp server config option (default on) bypasses the
new ns_http for the previous implementation based on the sock
callback API.
* nsd/nswin32.c:
* nsd/unix.c:
* nsd/sock.c: Moved duplicate poll() emulation code to sock.c and
added the NsPoll() wrapper used in driver.c and task.c.
* nsd/log.c:
* nsd/nsmain.c: Ns_Fatal now calls abort() on Ns_Fatal when running
in debugger mode (i.e., with the -d command line option).
* nsd/nsd.h: Various updates to support the above additions.
2004-09-30 Dossy Shiobara <dossy@panoptic.com>
* include/ns.h (1.68), nsd/tclhttp.c (1.21), nsd/sockcallback.c
(1.14): Implement Ns_SockCancelCallbackEx() in order to correctly
cancel actions in the SockCallbackThread. Fix for SF Bug
#1037196.
2004-09-29 Dossy Shiobara <dossy@panoptic.com>
* include/ns.h (1.67), nsd/tclhttp.c (1.20), nsd/sockcallback.c
(1.13): Fix a thread hang issue when ns_http fails but
HttpCancel() never executes because poll() returns revent ==
POLLPRI. Closes SF Bug #1037196.
2004-09-24 Dossy Shiobara <dossy@panoptic.com>
* include/nsthread.h (1.27): Win32 supports the
get{addr,name}info() API, so use it.
2004-09-24 Dossy Shiobara <dossy@panoptic.com>
* nsd/dns.c (1.11): Small memory leak introduced on platforms w/
getaddrinfo. Closes SF Bug #1033575.
2004-09-22 Dossy Shiobara <dossy@panoptic.com>
* configure (1.22), configure.in (1.17): get{addr,name}info on
Solaris 9 is in -lsocket.
2004-09-21 Dossy Shiobara <dossy@panoptic.com>
* configure (1.21), configure.in (1.16): Ensure we use the compiler
from the Tcl build during AOLserver configure process, unless
it's explicitly overrided during the AOLserver build.
2004-09-21 Dossy Shiobara <dossy@panoptic.com>
* aclocal.m4 (1.4): Make detection of gethostby{addr,name}_r more
robust. Closes SF Bug #1032231.
2004-09-20 Dossy Shiobara <dossy@panoptic.com>
* nsd/: nsmain.c (1.58), nsd.h (1.91), unix.c (1.18): Need to set
the dumpable flag on Linux in order to get a core file after
uid/gid is changed. Closes SF Bug #1031599.
2004-09-17 Dossy Shiobara <dossy@panoptic.com>
* nsd/connio.c (1.16): Ns_ConnSend() now bubbles up the error from
NsSockSend() on first send, which is what the C API documentation
says. Closes SF Bug #1029512.
2004-09-08 Dossy Shiobara <dossy@panoptic.com>
* nslog/nslog.html (1.2): Updated nslog module documentation.
Closes SF Bug #466236.
2004-09-08 Dossy Shiobara <dossy@panoptic.com>
* nscgi/nscgi.html (1.3): Add datatype for config options to doc.
2004-09-07 Dossy Shiobara <dossy@panoptic.com>
* tests/new/all.tcl (1.3): Fix test runner script to work when
LD_LIBRARY_PATH isn't set.
2004-09-07 Dossy Shiobara <dossy@panoptic.com>
* Makefile (1.52), tests/new/harness.tcl (1.3),
tests/new/ns_addrbyhost.test (1.1), tests/new/ns_hostbyaddr.test
(1.1), tests/new/test-ns_addrbyhost.adp (1.2),
tests/new/test-ns_hostbyaddr.adp (1.2),
tests/new/test-ns_hrefs.adp (1.2): Rework tests and harness to
run in tclsh.
2004-09-03 Dossy Shiobara <dossy@panoptic.com>
* nscgi/nscgi.html (1.2): Updated nscgi module documentation for
4.0. Closes SF Bug #465907.
2004-09-01 Dossy Shiobara <dossy@panoptic.com>
* nsd/: info.c (1.17), nsd.h (1.90), nsmain.c (1.57): Expose "-s"
cmdline arg to config interp via [ns_info server]. Fixes SF Bug
#421740.
2004-08-27 Jim Davidson <jgdavidson@aol.com>
* nsd/nsd.h
* nsd/driver.c
* nsd/tclrequest.c: Removed (the undocumented) Ns_RegisterPreQue in favor or
a new NS_FILTER_PRE_QUEUE flag for Ns_RegisterFilter.
* nsd/limits.c: Set more reasonable default limits.
2004-08-25 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.37): In the event of a SockRead() error, the
connection is no longer eligible for HTTP Keep-Alive. Explicitly
set the SOCK_CLOSEWAIT state.
2004-08-25 Dossy Shiobara <dossy@panoptic.com>
* Makefile (1.51): Add install command to copy over the automated
test config.
2004-08-21 Dossy Shiobara <dossy@panoptic.com>
* tests/new/all.tcl (1.2): Non-threaded tclsh doesn't even set
::tcl_platform(threaded) at all.
2004-08-20 Jim Davidson <jgdavidson@aol.com>
* nsd/op.c: Handled error case requests based on overflow flag instead
of response status.
* nsd/limits.c: Added some more info returned with the get option.
* nsd/pools.c: Added "error" pool to handle overflows.
* nsd/nsd.h:
* nsd/queue.c:
* nsd/tclcmds.c:
* nsd/driver.c: Fixed shutdown bugs and further simplified code.
Also, added a query mechanism to peek into the state of a driver
via the new ns_driver command.
2004-08-20 Dossy Shiobara <dossy@panoptic.com>
* Makefile (1.50), tests/new/all.tcl (1.1), tests/new/harness.tcl
(1.2), tests/new/ns_hrefs.test (1.1): Implement automated tests
that can be run from a stand-alone tclsh. New Makefile target
added called "test" which runs the tests.
2004-08-17 Dossy Shiobara <dossy@panoptic.com>
* tcl/fastpath.tcl (1.10): If _ns_dirlist gets an URL without a
trailing slash, issue a 302 redirect back to the same url WITH
the trailing slash. Fixes SF Bug #935907.
2004-08-17 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.35): Fix stupid crash bug on Win32 -- put the
ns_free() in the wrong place.
2004-08-17 Dossy Shiobara <dossy@panoptic.com>
* win32/build.tcl (1.6): Parse command line args at start. Attempt
to build "debug" and "release" binaries. Still needs work.
2004-08-17 Dossy Shiobara <dossy@panoptic.com>
* nsd/fastpath.c (1.21): Minor change to eliminate Win32
compile-time warning. Closes SF Bug #696806.
2004-08-16 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.34): Win32 platform doesn't support mmap().
Maybe should define HAVE_MMAP instead in the future.
2004-08-16 Dossy Shiobara <dossy@panoptic.com>
* win32/build.tcl (1.5): Add new limits.c and pools.c to nsd.dll
target.
2004-08-16 Dossy Shiobara <dossy@panoptic.com>
* nsd/tclcmds.c (1.41): Alphabetize list of Tcl ObjCmd procs.
2004-08-14 Jim Davidson <jgdavidson@aol.com>
* nsd/nsd.h
* nsd/server.c
* nsd/adpeval.c
* nsd/adpparse.c: Updated ADP parser to allow post-processing
text/script blocks into a single script block to allow incomplete
scripts to span multiple blocks (e.g., <% if $cond %> ... <%
} %>). The "singlescript" ADP config option enables this on a
per-virtual server basis. Also, a "safeeval" config was added
as well to enable safe evaluation of ADP files as is possible
with ad-hoc ADP (safe Tcl ignores <% ... %> blocks, allowing
only pre-configured ADP tags to execute).
2004-08-14 Dossy Shiobara <dossy@panoptic.com>
* aclocal.m4 (1.3), configure (1.19), nsd/dns.c (1.10): Solaris 7
uses gethostbyaddr_r(), and the autoconf and GetHost() versions
didn't work. Fixed now.
2004-08-13 Dossy Shiobara <dossy@panoptic.com>
* configure (1.18), configure.in (1.15), aclocal.m4 (1.2),
nsd/dns.c (1.9): gethostbyaddr() and gethostbyname() are not
thread-safe. Use the new getaddrinfo() and getnameinfo() API
where available, otherwise use gethostbyaddr_r() and
gethostbyname_r() if available. Otherwise, continue to use the
non-safe versions but emit a warning at configure time. Fixes SF
Bug #1008721.
2004-08-13 Dossy Shiobara <dossy@panoptic.com>
* Makefile (1.49): The CVS/ directory was getting included in
install-tests-new target, oops.
2004-08-13 Dossy Shiobara <dossy@panoptic.com>
* win32/: nscgi/nscgi.dsp (1.6), nscp/nscp.dsp (1.6), nsd/nsd.dsp
(1.15), nsdb/nsdb.dsp (1.2), nslog/nslog.dsp (1.6),
nsperm/nsperm.dsp (1.6), nssock/nssock.dsp (1.9),
nsthread/nsthread.dsp (1.8), threadtest/threadtest.dsp (1.6):
Change Win32 .dsp files to reflect change in Tcl from
"tcl84td.lib" to "tcl84tg.lib". Fixes SF Bug #996342.
2004-08-13 Dossy Shiobara <dossy@panoptic.com>
* nsd/tclmisc.c (1.31), tests/new/test-ns_hrefs.adp (1.1): ns_hrefs
is now more robust. Fixes SF Bug #995078.
2004-08-13 Dossy Shiobara <dossy@panoptic.com>
* Makefile (1.48): New "install-tests-new" target to install new
automated tests.
2004-08-13 Dossy Shiobara <dossy@panoptic.com>
* tests/new/harness.tcl (1.1): Really basic test harness for
automating tests.
2004-08-11 Dossy Shiobara <dossy@panoptic.com>
* nsd/nsconf.c (1.34): Inability to resolve nsconf.hostname to set
nsconf.address is no longer fatal, and instead defaults to
"0.0.0.0". Fixes SF Bug #994072.
2004-08-11 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.31): Ensure defMapPtr is initialized.
2004-08-11 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.30): Fixed crash bug when virtual servers are
configured, but the "hostname" parameter didn't match any of the
virtual servers. Fixed by introducing new "defaultserver"
parameter in the comm. config that must refer to one of the
virtual servers being defined.
2004-08-11 Dossy Shiobara <dossy@panoptic.com>
* sample-config.tcl (1.14): Add "defaultserver" parameter in sample
config.
2004-08-10 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.29): Crash due to FreeConn() happening twice,
once from DriverThread() and once from SockClose(). Commented
out call from SockClose() for now. Don't decrement
limitPtr->nrunning if the connPtr->flags indicated overflow or
timeout, since we didn't increment nrunning. Set responseStatus
to 503 so requests actually overflow or timeout again.
2004-08-10 Jim Davidson <JGDavidson@aol.com>
* nsd/driver.c (1.28): Restructured code (again) to better support
overload and timeout conditions (work in progress).
2004-08-10 Jim Davidson <JGDavidson@aol.com>
* nsd/: nsd.h (1.86), pools.c (1.4), queue.c (1.27): Moved pool
selection to pools.c from queue.c and added timeout pool config
option.
2004-08-10 Jim Davidson <JGDavidson@aol.com>
* include/ns.h (1.65): Added conn flags to track overflow and
timeout conditions.
2004-08-05 Rob Crittenden <rcrittenden0569@aol.com>
* nsd/tclhttp.c: Add new option to ns_http wait, -servicetime, so
you can capture how long the HTTP request took. Backported from
aolserver_v40_bp.
2004-07-30 Dossy Shiobara <dossy@panoptic.com>
* nsd/: limits.c (1.3), pools.c (1.3): Fixed mistake adding
"default" pool to pools hashtable. Change ns_pools set options
to include leading "-" just like ns_limits.
2004-07-30 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.27): Fixes nslog logging incorrect number of
bytes sent in access.log.
2004-07-30 Dossy Shiobara <dossy@panoptic.com>
* include/ns.h (1.64), nsd/driver.c (1.26), nsd/limits.c (1.2),
nsd/nsd.h (1.85), nsd/op.c (1.13), nsd/pools.c (1.2), nsd/queue.c
(1.26), nsd/return.c (1.41): Implement the "maxwait" limit. Use
connPtr->responseStatus to short circuit request processing, for
returning HTTP 400 and 503 status responses indirectly from the
driver thread.
2004-07-29 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.25): Missed incrementing connPtr->roff when
applying Jim's changes. Oops.
2004-07-29 Dossy Shiobara <dossy@panoptic.com>
* include/ns.h (1.63), nsd/Makefile (1.40), nsd/connio.c (1.15),
nsd/driver.c (1.24), nsd/fastpath.c (1.20), nsd/init.c (1.9),
nsd/limits.c (1.1), nsd/nsd.h (1.84), nsd/nsmain.c (1.56),
nsd/pools.c (1.1), nsd/queue.c (1.25), nsd/server.c (1.29),
nsd/tclcmds.c (1.40): (These changes are actually Jim Davidson's,
I just merged them and am checking them in on his behalf.)
This commit completes (yet another) rewrite of the driver thread
mechanism, along with implementing connection classes
("ns_limits") and request processing pools ("ns_pools").
The code compiles, but does NOT work yet. I will be correcting
the few remaining issues, soon.
2004-07-29 Dossy Shiobara <dossy@panoptic.com>
* doc/Ns_TclInit.3 (1.7): Change version number in doc header.
2004-07-29 Dossy Shiobara <dossy@panoptic.com>
* nsd/return.c (1.40): Remove unused local variable.
2004-07-29 Dossy Shiobara <dossy@panoptic.com>
* nsd/tcljob.c (1.26): Change mutex name to conform to naming
standard.
2004-07-28 Dossy Shiobara <dossy@panoptic.com>
* doc/Ns_TclInit.3 (1.6): Better documentation on Tcl interp init C
API.
2004-07-28 Dossy Shiobara <dossy@panoptic.com>
* configure (1.17): Forgot to re-run autoconf2.13 after the very
last change to configure.in.
2004-07-28 Dossy Shiobara <dossy@panoptic.com>
* include/ns.h (1.62): BUMP: 4.1.0a
2004-07-28 Dossy Shiobara <dossy@panoptic.com>
* configure.in (1.14), configure (1.16): Clean up configure.in,
regenerate configure with autoconf2.13, and clear CCRPATH/LDRPATH
if CCRFLAGS/LDRFLAGS are empty. Closes SF Bug #640754.
2004-07-28 Dossy Shiobara <dossy@panoptic.com>
* win32/build.tcl (1.4): DEBUG=2 now yields a really noisy build.
2004-07-26 Dossy Shiobara <dossy@panoptic.com>
* win32/build.tcl (1.3): Now some build variables can be overrided
from the command line.
2004-07-22 Dossy Shiobara <dossy@panoptic.com>
* sample-config.tcl (1.13): Use [info sharedlibextension] so that
we don't have to name DLLs under Win32 with a .so extension.
2004-07-22 Dossy Shiobara <dossy@panoptic.com>
* win32/build.tcl (1.2): Ensure we're using the version of Tcl we
built against by having the "install" target place it into the
AOLserver install dirs.
2004-07-22 Dossy Shiobara <dossy@panoptic.com>
* win32/build.tcl (1.1): Simple Tcl script to produce the Win32
build of AOLserver.
2004-07-19 tag aolserver_v40_r7
2004-07-19 Dossy Shiobara <dossy@panoptic.com>
* nsd/init.c (1.8): While harmless, don't call NsInitInfo() twice.
Oops.
2004-07-18 Dossy Shiobara <dossy@panoptic.com>
* nsd/: nsd.h (1.83), nsconf.c (1.33), init.c (1.7):
Ns_GetAddrByHost() reports errors via Ns_Log(), so calls to it
should be done after Ns_Log has been initialized, otherwise very
unhelpful error messages are produced. In particular, this
happens when the server is started and the hostname as returned
by gethostname() cannot be resolved, because the network
interface is down AND no entry exists in /etc/hosts. Closes SF
Bug #868362.
2004-07-16 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.23): Setting request->method to static storage,
which later gets ns_free()'d in Ns_FreeRequest(), caused server
to crash.
2004-07-16 tag aolserver_v40_r6
2004-07-13 Dossy Shiobara <dossy@panoptic.com>
* nsd/: driver.c (1.22), op.c (1.12): Needed a more graceful way of
taking a pre-queue socket and send it a 400 Bad Request. Still a
hack, but I think it's safer this way.
2004-07-13 Dossy Shiobara <dossy@panoptic.com>
* nsd/driver.c (1.21): Change to make HTTP request "Host:" header
mandatory for HTTP/1.1 connections by returning 400 Bad Request
response. Closes SF Bug #787728. Also, changed virtual server
code to use the "hostname" param from the "ns/module/nssock"
section to map the default virtual server based on the value
(hostname) from the "ns/module/nssock/servers" section, when the
"Host:" header is either not specified (HTTP/1.0) or is not found
in the virtual server table. Closes SF Bug #812036.
2004-07-13 Dossy Shiobara <dossy@panoptic.com>
* nslog/nslog.c (1.15): conn->headers can be NULL causing segfault.
Closes SF Bug #990439.
2004-07-13 Dossy Shiobara <dossy@panoptic.com>
* include/nsthread.h (1.26): OpenBSD 3.5 doesn't define ENOTSUP, so
we'll define it ourselves. Closes SF Bug #985076.
2004-07-06 Dossy Shiobara <dossy@panoptic.com>
* nsd/return.c (1.39): Fix bug where internal redirect for 401
omitted including the HTTP auth. "WWW-Authenticate:" header.
Fixes bug #674033.
2004-07-02 Dossy Shiobara <dossy@panoptic.com>
* nsd/mimetypes.c (1.12): Ns_GetMimeType() was returning
defaultType instead of noextType if the path contained a
directory with a "." but the filename component had no extension.
Fixes bug #739049.
2004-07-02 Dossy Shiobara <dossy@panoptic.com>
* nsd/: fastpath.c (1.19), return.c (1.38): Enable ADP/Tcl code to
override Last-Modified: header from ns_respond when -headers AND
-file are specified. Closes bug #879076.
2004-07-02 Dossy Shiobara <dossy@panoptic.com>
* nsd/tclresp.c (1.17): lots of refactoring of ns_respond code to
remove duplication
2004-07-02 Dossy Shiobara <dossy@panoptic.com>
* nsd/init.tcl (1.31): ns_eval of script containing comments (i.e.,
lines starting with #) cause an error because is a list, which
gets evaluated differently than a plain string script. Fixes bug
#833940.
2004-07-01 Dossy Shiobara <dossy@panoptic.com>
* nsd/: nsd.h (1.82), nsmain.c (1.55): Ensure that supplementary
groups from /etc/group are set if -u username is specified, or
dropped if a uid is specified so that the nsd doesn't run with
root's supplementary groups. Closes bug #425401.
2004-07-01 Dossy Shiobara <dossy@panoptic.com>
* nsd/: nsd.h (1.81), nsd.h (1.77.2.4): trivial - eliminate
compiler warning for nsd/nsmain.c
2004-07-01 Dossy Shiobara <dossy@panoptic.com>
* nsthread/tls.c (1.3): Make the Tcl_Panic() message from
Ns_TlsGet() and Ns_TlsSet() include the full function name to aid
in debugging.
2004-06-30 17:03 Dossy Shiobara <dossy@panoptic.com>
* nsd/unix.c: Ensure synchronous signals are handled correctly
under LinuxThreads. Possible fix for Bug #982955.
2004-06-30 01:16 Dossy Shiobara <dossy@panoptic.com>
* include/ns.h: Fix build on alpha arch, removing extra INT64
typedef. Closes bug #896962.
2004-06-23 Zoran Vasiljevic <zv@archiware.com>
* nsd/tclxkeylist.c: fixed improper handling of objects
returned by reference in Tcl_GetKeyedListField wrapper.
Also, fixed typo in the ckstrdup macro.
Also, using correct size_t types in various places.
2004-06-23 Rob Crittenden <rcrittenden0569@aol.com>
* nsd/log.c: ns_log now logs to a custom logger as well.
2004-06-22 Zoran Vasiljevic <zv@archiware.com>
* nsd/tclxkeylist.c: added compatiblity layer for the following
functions, since it broke some older code:
Tcl_GetKeyedListKeys
Tcl_GetKeyedListField
Tcl_SetKeyedListField
Tcl_DeleteKeyedListField
The compatiblity layer for the string-based Tcl-API is not done.
I will add this if requested.
2004-06-20 Zoran Vasiljevic <zv@archiware.com>
* include/ns.h:
* nsd/nsd.h:
* nsd/tclcmds.c:
* nsd/tclinit.c:
* nsd/tclxkeylist.c: added objectified version of TclX
keyed-list implementation (Patch #812522).
2004-06-19 Zoran Vasiljevic <zv@archiware.com>
* nsd/tclsock.c: Improved NsTclSockOpenObjCmd() to accept
two optional parameters: -localhost and -localport as
per patch #815889 from Vlad Seryakov. The patch itself
was used as a starting point but the implementation is
different i.e. the command-option parsing is rewritten
to be much more tight than in the patch and also in the
previous implementation.
2004-06-14 20:28 Dossy Shiobara <dossy@panoptic.com>
* nsd/connio.c: If nsend == 0, we would never call Ns_WriteConn to
flush the queued headers. This could happen when we're sending
zero bytes of data as a response. This fixes bug #971016 in the
case where fastpath.cache=false and fastpath.mmap=false and a
zero byte file is requested.
2004-06-14 20:25 Dossy Shiobara <dossy@panoptic.com>
* nsd/return.c: unnecessary test for data != NULL actually caused
part of bug #971016 when fastpath.cache=false and
fastpath.mmap=true and the file requested is zero bytes, mmap()
returns 0 which gets passed along as data == NULL, causing
ReturnCharData() to not flush the queued headers. removing the
if is safe as Ns_WriteConn will simply flush any queued data
2004-06-08 Rob Crittenden <rcrittenden0569@aol.com>
* Makefile: remove Makefile.module on distclean.
* include/ns.h, nsd/log.c: Allow users to override logging functions.
* nsd/str.c: Fix crash bug in Ns_Trim* when trimming NULL strings.
2004-06-08 Rob Crittenden <rcrittenden0569@aol.com>
* TAG aolserver_v40_r5
2004-03-09 13:35 Rob Crittenden <rcrittenden0569@aol.com>
* nsd/tclhttp.c: The last header was being missed because the pointer
was being advanced past the \r\n.
2004-02-26 14:37 Dossy Shiobara <dossy@panoptic.com>
* nsd/unix.c: uid_t is supposed to be unsigned, but apparently
isn't on OSX, apparently.
2004-02-25 19:56 Dossy Shiobara <dossy@panoptic.com>
* nscgi/nscgi.c: Ns_ConnSetRequiredHeaders now requires length < 0
if you don't want a Content-Length header
2004-02-25 19:55 Dossy Shiobara <dossy@panoptic.com>
* nsd/return.c: fix so that it's still possible to formulate a
response with no Content-Length header (such as for nscgi, or
HTTP streaming) where you don't know the Content-Length header in
advance
2004-02-24 07:15 Dossy Shiobara <dossy@panoptic.com>
* nsd/: nsmain.c, nsd.h, driver.c: fix race condition where
DriverThreads are spawned but before they can Ns_SockListenEx,
the main thread does its NsClosePreBound and closes the prebound
sockets, making them unavailable to the DriverThreads if they
require root priv to listen on
2004-02-18 01:30 Dossy Shiobara <dossy@panoptic.com>
* nsperm/nsperm.c: fixed bug #899364, restoring old nsperm
functionality as it was in 3.x.
2004-02-15 Jim Davidson <jgdavidson@aol.com>
* nsd/conn.c:
* include/ns.h:
* nsd/return.c: Added new Ns_ConnGet/SetKeepAliveFlag APIs to
allow custom request procedures to enable keep-alive directly.
* nsd/driver.c: Minor updates to separate conn & driver structs.
2004-01-01 Scott S. Goodwin <scott@scottg.net>
* nsd/adpparse.c: fixed bug #868600, where tag attribute values
encapsulated within single quotes weren't being parsed properly.
2003-12-27 Scott S. Goodwin <scott@scottg.net>
* nsd/urlopen.c: fixed bug #844809.
* sample-config.tcl: fixed bug #805761.
2003-12-24 Scott S. Goodwin <scott@scottg.net>
* include/nsthread.h: Bumped up NS_THREAD_NAMESIZE from 32 to 64.
Mutex names were being truncated, making it impossible to distinguish
mutexes with longer names when looking at stats.
* nscgi/nscgi.c: Changed HTTPS env variable to be set to "on" or "off"
instead of "1" or "0". There doesn't appear to be any standard for
this, but Apache uses the on/off string in the environment.
2003-12-16 Scott S. Goodwin <scott@scottg.net>
* nscgi/nscgi.c: Fixed issue with HTTPS environment variable not being
set, and port not being set to 443 if connection is SSL'd. Manually
applied these changes from a patch supplied by Vinod Kurup.
2003-11-16 Jim Davidson <jgdavidson@aol.com>
* include/ns.h: Update version ids, added NS_SOCK_DROP and
NS_TCL_TRACE constants and pre-queue function definitions.
* nsd/nsd.h: Added new "times" struct to Conn for more
fine-grained timing. Need to provide options to enable
these time stamps plus ways to get the data.
* nsd/driver.c: Restructured in a few ways:
1. Each loaded driver now has it's own thread. This should
allow some more concurrency (if necessary) and generally
made the code more manageable.
2. New pre-queue I/O callback API. The API will be documented
with an example HTTP module later.
3. Conn allocation is handled by the driver threads and
request buffers have been moved to the Conn from the Sock.
4. Reads for synchrounous drivers (i.e., SSL) are handled
by a pool of reader threads instead of by the conn threads.
The number of threads is set with a "maxreaders" config
option. This change should enable both Host: header based
virtual servers and pre-queue callbacks for SSL connections.
5. New "maxsocks" config for drivers is now used to manage
the concurrency limit of the server. Conn's are now queued
without limit into the connection pools and the previous
"maxconns" virtual-server config is ignored.
* nsd/queue.c: Cleaned up "connsperthread" code and updated
NsQueueConn to support new driver code.
* nsd/conn.c:
* nsd/connio.c:
* nsd/form.c:
* nsd/nsd.h:
* nsd/queue.c:
* nsd/return.c: Moved connection request buffers from Sock
to Conn structure.
* nsd/server.c: Removed startup Conn pre-allocation as Conns
are now allocated dynamically by the driver. Also, removed
the "maxconns" parameter which is no longer used.
* nssock/nssock.c: Added new "async" option (default on)
mostly to test new reader thread capabilities of the core
driver code.
* nsd/tclinit.c: Added a new generalized Tcl interp tracing
facility and cleaned up some previous init code. This
should make it easier to support standard Tcl extensions
and will be documented with an example module later.
* nsd/nsmain.c: Fixed order of driver shutdown wait.
* nsd/init.c: Fixed order of init calls.
* nsd/binder.c:
* nsd/dns.c: Named unnamed mutexes.
* nsd/tclset.c:
* nsd/tclsock.c: Removed unused functions.
2003-11-03 pkhincha <pkhincha@aol.com>
* nsd/urlspace.c: removed initing of mutex
* nsd/nsmain.c: calling NsWaitDriversShutdown
2003-11-01 Zoran Vasiljevic <zv@archiware.com>
* tcl/file.tcl: fixed broken argument convention for the
unused argument of ns_sourceproc.
2003-10-28 Zoran Vasiljevic <zv@archiware.com>
* nsd/tclatclose.c: fixed typo in command usage text
2003-10-09 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_20
* doc/ns_job.n:
* tests/api/ns_job.adp:
* nsd/tcljob.c: Change timeout specification to be ns_time
based.
2003-10-21 Elizabeth Thomas <eathomas93@aol.com>
* nsd/init.tcl: Removing lazyproc code from 4.0 to enable it
to be declared GM. Solution is being refined and may be added
in later release or add-on module.
2003-10-14 Paul Moosman <pwmoosman@aol.com>
* nsd/tcljob.c: Fix to ns_job, where it was attempting to access
a deleted queue.
2003-10-09 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_18
2003-10-09 Elizabeth Thomas <eathomas93@aol.com>
* nsd/init.tcl: Fix syntax error in check for null proc.
2003-10-08 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_17
* nsd/init.tcl (ns_eval): Minor change to track change to ns_job.
2003-10-08 Paul Moosman <pwmoosman@aol.com>
* nsd/tcljob.c: Minor change to ns_job joblist return to be
consistent with similar aolserver api's.
2003-10-07 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_16
* nsd/init.tcl (ns_eval): The early 4.0 ns_eval had been
waiting for the completion of integrating script changes into the
server's init script. This change adds the ability to return
without waiting for the init script integration completion (as the
default). A new switch modifies this behavior to force it to wait
for the completion of init script integration. Added another
switch to request a report of ns_eval backlog.
* nsd/adpeval.c (LogError): Limit the amount of script text added
into the errorInfo string, to keep from flowing adp script texts
of unlimited length into the server log.
2003-10-06 Paul Moosman <pwmoosman@aol.com>
* nsd/tcljob.c: Replaced ctime_r with ns_ctime to fix a win32
compile problem. This change should fix bug #811802.
Fixed a potential deadlock case.
Fixed a problem where the maxthreads option was getting ignored.
2003-10-01 Elizabeth Thomas <eathomas93@aol.com>
* nsd/init.tcl: Fix to _ns_lzproc_load to handle subtle behavior with
respect to namespaces and the test to see if the proc will be successfully
recognized. Also, fix to protect against infinite loop on unknown processing
if null command is executed.
2003-09-22 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_15
2003-09-22 Paul Moosman <pwmoosman@aol.com>
* nsd/tcljob.c: Add options to ns_job Api, for waitany, delete(queue),
listjobs, etc.
2003-09-19 Mark Page <mpagenva@aol.com>
* nsd/adprequest.c:
nsd/adpeval.c: Fix error where
xxx.adp --> ns_adp_parse --> ns_adp_include --> ns_adp_puts results in
the puts text going directly into the final result buffer, rather then
to the intermediate buffer to be returned by ns_adp_parse to the xxx.adp
page code.
2003-09-12 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_14
2003-09-11 Elizabeth Thomas <eathomas93@aol.com>
* nsd/init.tcl: Add 'lazyproc' functionality. Controlled by
ns/parameters config parm 'lazyprocdef' (defaults to 'false')
When 'true', we do not put proc definitions in the interp
init script, but instead wrap the tcl 'unknown' command and
evaluate them on the first reference. Also wraps the tcl 'info'
command to intercept queries about procs not yet in the interpreter.
2003-09-03 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_13
* nsd/tclinit.c (NsTclICtlObjCmd): Fix intermittant core dumps
occurring during oncleanup processing. The error is in the Tcl_Obj
for the script passed into ns_ictl on* callbacks was being saved
and passed to the callbacks (this Tcl_Obj was then being shared
amoung Interps, which is not allowed).
Now, extract a copy of the script string, and pass that to the callbacks.
2003-08-27 Elizabeth Thomas <eathomas93@aol.com>
* nsd/adprequest.c: Complete 8/12 fix of not
logging error for ns_adp_break
2003-08-26 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_12
2003-08-26 Elizabeth Thomas <eathomas93@aol.com>
* nsd/tclinit.c: Fix the 'oncleanup' option of ns_ictl.
Modify behavior of Ns_RegisterAtDelete so callbacks are
run before the interp is destroyed. Expose with new 'ondelete'
option to ns_ictl.
2003-08-25 Mark Page <mpagenva@aol.com>
* nsd/adprequest.c (): Suppress production of the result data for
requests with SKIPBODY set.
* nsd/return.c (ReturnCharData): Allow headers to be returned for
requests with SKIPBODY; e.g., HEAD requests.
2003-08-21 Zoran Vasiljevic <zoran@archiware.com>
* nsd/tclfile.c: properly detach and attach the Tcl channel
out and in the current interpreter.
2003-08-19 Rahul Bhargava <rahul032213@aol.com>
* nsd/return.c: Updated to support HTTP/1.1 Transfer Chunk Encoding
Headers only.
2003-08-19 Nathan Folkman <shmooved@aol.com>
* nsd/return.c: Updated to include status code from:
RFC 2616 (Hypertext Transfer Protocol -- HTTP/1.1) and
RFC 2518 (HTTP Extensions for Distributed Authoring -- WEBDAV).
2003-08-12 Elizabeth Thomas <eathomas93@aol.com>
* nsd/adprequest.c: Don't log ns_adp_abort or ns_adp_break as errors.
2003-08-08 Elizabeth Thomas <eathomas93@aol.com>
* nsd/mimetypes.c:
* sample_config.tcl: Add support for xhtml mime type. (RFE #563417)
* TAG aolserver_v4_r0_beta_11
2003-08-06 Elizabeth Thomas <eathomas93@aol.com>
* nsd/tclset.c: Fix ns_set split argument checking. (#757849)
2003-08-05 Elizabeth Thomas <eathomas93@aol.com>
* nsd/conn.c:
* nslog/nslog.c:
* include/ns.h:
* sample-config.tcl: Merge in feature from 3.5 branch (with simpler
implementation) for logging of request execution time in access log.
To turn on feature add:
ns_section "ns/server/${servername}/module/nslog"
ns_param logreqtime true
By default the option is disabled. If enabled the connection's
request time will be appended to the access log before the
extended headers (if configured).
2003-07-18 Elizabeth Thomas <eathomas93@aol.com>
* nsd/tclinit.c: Add optional mutex to serialize interp initialization.
With large init scripts and many threads, there is severe malloc
lock contention while tcl evaluates the init script (and populates
its memory pool). Serializing the initialization reduces the thrashing and
results in faster startup.
* nsd/nsconf.c, nsconf.h, nsd.h: Add config variable 'tclinitlock'
which activates the above. Defaults to false if not specified.
* TAG aolserver_v4_r0_beta_10
2003-07-18 Mark Page <mpagenva@aol.com>
* nsd/adpeval.c (AdpEval): Check adp.outputPtr validity before
use. It can get reset within this adp evaluation loop from
commands like ns_respond (when it does an internal redirect for
the file not found case). In this case, it's appropriate that
further text from this page code is not appended to the result, as
other code had determined that the result was complete.
2003-07-12 Zoran Vasiljevic <zoran@archiware.com>
* nslog/nslog.c: the "X-Forwarded-For" header existence is examined
when logging the remote user. This allows for logging the real
remote user wnen it commes from some proxy and/or load balancer.
Thanks for Gustaf Neumann of XOTcl for the patch. This implements
the RFE #770054.
2003-07-10 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_9
2003-07-01 Mark Page <mpagenva@aol.com>
* nsd/init.tcl (ns_eval): Protect against nested ns_eval calls,
which would otherwise lead to deadlocks.
2003-06-26 Mark Page <mpagenva@aol.com>
* nsd/adpeval.c: Fix problem where ns_adp_include was not propogating
errors.
2003-06-25 Mark Page <mpagenva@aol.com>
* nsd/init.tcl: (ns_eval) Fix thread-safety issue with ns_eval,
where multiple simultanous usages can clobber a change.
(_ns_getscript) suppress saving the Tcl global variable 'env' into
the init script. Tcl's init takes care of 'env', and including it
into the init script would cause SetEnvs at interp create that are
unneeded and undesired.
2003-06-18 Mark Page <mpagenva@aol.com>
* nsthread/thread.c (Ns_ThreadCreate): Fix typo in Ns_ThreadCreate
that was causing it to ignore the stacksize parameter.
* nsd/init.tcl (_ns_eval): Fix ns_eval to prevent it's bleeding of
unintended Tcl environment change to the global interp state.
2003-06-06 Zoran Vasiljevic <zoran@archiware.com>
* nsd/queue.c: fixed "connsperthread" config parameter
as reported in bug item #749801. Default is set to
"0" i.e. thread will perform unlimited number of
connections (never exit) unless it's idle timer
(if configured) expires.
2003-05-31 Zoran Vasiljevic <zoran@archiware.com>
* nsd/config.c: uses Ns_TclDestroyInterp instead of the
Tcl_DeleteInterp.
* nsthread/nsthreadtest.c:
* nsd/info.c:
* nsd/nsmain.c:
* include/Makefile.module.in:
* configure:
* configure.in: added --disable-shared so we can now build the
nsd image statically.
2003-05-31 Zoran Vasiljevic <zoran@archiware.com>
* nsd/cache.c:
* include/ns.h:
* doc/Ns_Cache.3: added C-API for Ns_CacheTryLock as in RFE #725704
2003-05-30 Mark Page <mpagenva@aol.com>
* nsd/tclthread.c: fix problem in ns_thread begindetached api.
This code was failing to create the new thread as detached.
Also corrected for the Ns_TclDetachedThread C api. As a
result of this change, non-detached threads will return their
TclEval result to Ns_ThreadExit, making it available to a
thread join.
2003-05-28 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_8
2003-05-28 Mark Page <mpagenva@aol.com>
* nsd/tclimg.c: Use binary channel to read img (Thanks to Dossy).
Eliminate double error string; Corrrect compiler warning on Seek.
* tcl/form.c: Fix to ns_querygetall to suppress null sublists. Also,
make the defaulting semantics work as described.
2003-05-24 Zoran Vasiljevic <zoran@archiware.com>
* nsd/info.c: added workaround for Tcl_GetMemoryInfo() which
is not defined in Tcl if somebody undefines USE_THREAD_ALLOC.
Generally, this call should be avoided altogether.
* nsd/tclinit.c: added call to Tcl_FinalizeThread() in the
DeleteInterps() to properly finalize Tcl data on thread exit,
thus closing the re-appearing memory leak from V3.3 nsd.
2003-05-20 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_7
2003-05-20 Mark Page <mpagenva@aol.com>
* nsd/tclimg.c: Addition error checks in gif size read.
* nsd/adpcmds.c: Error check calls to ns_adp funcs.
* nsd/tclinit.c: Error check calls to Ns_TclGetConn and Ns_TclServerInterp.
2003-05-19 Mark Page <mpagenva@aol.com>
* nsd/tclinit.c: suppress byte-compile for interp init scripts
* nsd/tclthread.c: fix fmr.
2003-05-16 Zoran Vasiljevic <zoran@archiware.com>
* nsdb/dbinit.c: fixed hash table initialization in IncrCount
to TCL_ONE_WORD_KEYS instead of TCL_STRING_KEYS. Credits to
Jean-Fabrice RABAUTE for the bug report.
2003-05-14 Zoran Vasiljevic <zoran@archiware.com>
* nsd/tclthread.c: fixed NsTclCondObjCmd to be compatible
to the 3.x pendant in way it threats the optional timeout
argument. The 3.x reverted to indefinite (i.e. non-timewait)
condvar waits when the optional "timeout" argument was given
as zero.
The 4.x version just exited with NS_TIMEOUT (= 0) in such
cases breaking Tcl scripts written for 3.x.
The corrective measure is to check the passed timeout value
and if == 0, revert to non-timewait condition waits as the
3.x does (did).
2003-05-13 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_6
2003-05-12 Mark Page <mpagenva@aol.com>
* nsd/urlencode.c : (bug fix) urlencode was passing through too
many characters unencoded. In particular, the '+' was getting
passed through, which causes unsymmetric encode/decode since
'+' in encoded string translates to ' '(space).
2003-04-25 Mark Page <mpagenva@aol.com>
* nsd/tclvar.c (NsTclNsvArrayObjCmd): (bug fix) nsv_array exists
must return true if an nsv exists, regardless of the number of
array elements in the nsv.
2003-04-24 Mark Page <mpagenva@aol.com>
* nsd/queue.c (ConnRun): Ensure that a Internal Error status is
returned to the client if an error status is returned from a
pre-auth filter. Previously, the connection was simply closed,
causing difficult to diagnose problems to the client. Also
allow traces to run in this situation, so that access logging can
occur.
2003-04-23 Mark Page <mpagenva@aol.com>
* nsd/log.c (NsTclLogObjCmd): (bug fix) Tweeked previous fix to
suppress trailing space on output.
2003-04-22 Nathan Folkman <shmooved@aol.com>
* nsd/log.c: (bug fix) Fixed bug causing first two string
args of "ns_log" to be improperly concatendated.
2003-04-16 Mark Page <mpagenva@aol.com>
* nsd/modload.c (NsLoadModules): (bug) Failed parsing the explicit
initialization specification properly.
2003-04-10 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_5
2003-04-07 Mark Page <mpagenva@aol.com>
* nsd/tclthread.c (NsTclThread): ensure that the server has
completed it's initializtion prior to initiating TclEval.
* nsd/nsmain.c (Ns_WaitForStartup): add dirty-read of the
conf.started flag.
2003-04-04 Mark Page <mpagenva@aol.com>
* nsd/tclinit.c:
* nsd/tclcmds.c: Moved interp tracing functionality into ns_ictl
api as one of it's subfunctions, removing the
ns_register_interptrace api previously created.
2003-04-03 Mark Page <mpagenva@aol.com>
* nsd/tclinit.c:
* nsd/tclcmds.c: Provide tcl api that exposes Ns_TclInitInterps
and Ns_TclRegisterTrace. ns_register_interptrace.
2003-03-30 Scott S. Goodwin <scott@scottg.net>
* include/ns.h:
nsd/driver.c:
nssock/nssock.c:
nsssl/nsssl.c: Modified Ns_DriverInit. Instead of passing all args
as parameters to Ns_DriverInit, a comm module must now create an
Ns_DriverInitData structure and populate it with appropriate values
(see include/ns.h) and pass that in the call to Ns_DriverInit. The
Ns_DriverInitData structure is versioned so that we can extend it
later without affecting other modules.
2003-03-28 Mark Page <mpagenva@aol.com>
* nsd/tclhttp.c: (bug) Fix uninitialized hdrs var, was causing segfault.
2003-03-21 Mark Page <mpagenva@aol.com>
* TAG aolserver_v4_r0_beta_4
2003-03-19 Mark Page <mpagenva@aol.com>
* nsd/tclhttp.c: Added method argument to ns_http queue api to
allow sending POSTs as well as GETs.
2003-03-19 Mark Page <mpagenva@aol.com>
* nsext/nsext.c: Change back to using ns_socketpair for local
proxies, to retain PEEK functionality.
2003-03-19 Zoran Vasiljevic <zoran@archiware.com>
* nsd/modload.c: added fallback for loading regular
shared libraries in addition to bundles on Darwin.
* include/tcl.h: added set of version macros
* nsd/config.c: added Ns_GetVersion API call.
2003-03-10 Scott S. Goodwin <scott@scottg.net>
* nscgi/nscgi.c: (bug) SERVER_NAME is now set correctly.
2003-03-10 Mark Page <mpagenva@aol.com>
* nsd/sched.c: (bug) Fix problem with shutting down event threads
(these service detachted thread processing) on a server shutdown.
2003-03-07 Nathan Folkman <shmooved@aol.com>
* TAG aolserver_v4_r0_beta_3
2003-03-07 Zoran Vasiljevic <zoran@archiware.com>
* include/ns.h:
* nscgi/nscgi.c:
* nscp/nscp.c:
* nsd/adpeval.c:
* nsd/adpparse.c:
* nsd/binder.c:
* nsd/config.c:
* nsd/conn.c:
* nsd/connio.c:
* nsd/dns.c:
* nsd/driver.c:
* nsd/dstring.c:
* nsd/encoding.c:
* nsd/fastpath.c:
* nsd/index.c:
* nsd/info.c:
* nsd/lisp.c:
* nsd/listen.c:
* nsd/log.c:
* nsd/modload.c:
* nsd/nsmain.c:
* nsd/pidfile.c:
* nsd/queue.c:
* nsd/request.c:
* nsd/rollfile.c:
* nsd/sched.c:
* nsd/sockcallback.c:
* nsd/tclatclose.c:
* nsd/tclfile.c:
* nsd/tclhttp.c:
* nsd/tclimg.c:
* nsd/tclinit.c:
* nsd/tcljob.c:
* nsd/tclmisc.c:
* nsd/tclshare.c:
* nsd/tclsock.c:
* nsd/tclvar.c:
* nsd/tclxkeylist.c:
* nsd/urlencode.c:
* nsd/urlspace.c:
* nsdb/dbinit.c:
* nsdb/dbtcl.c:
* nsext/nsext.c:
* nslog/nslog.c:
* nspd/log.c:
* nspd/main.c:
* nsperm/nsperm.c:
* nsthread/mutex.c:
* nsthread/nsthreadtest.c:
* nsthread/pthread.c:
o. removed unused variables
o. fixed warnings about non-initialized vars
o. CONST-ified according to Tcl 8.4+ rules
* bin/init.tcl: _ns_getscript forces import of
namespaced commands
* tcl/init.tcl: sets auto_path to start with
our private library first
* include/Makefile.global.in: allows for building
with Solaris 2.6 and later
2003-03-06 Mark Page <mpagenva@aol.com>
* nsd/adpeval.c: Change defn of objs field of InterpPage to size
1, since some compilers don't like 0 sized arrays.
* nsd/urlencode.c:
* nsd/queue.c:
* nsd/server.c:
* nsd/urlencode.c:
* nsd/encoding.c:
* nsd/nsd.h:
* nsd/form.c:
* nsd/conn.c:
* include/ns.h:
* tcl/form.tcl:
* tcl/charsets.tcl(new): Added Tcl I18N support functions from
OACS, with some changes to work within 4.0.
2003-03-05 Zoran Vasiljevic <zoran@archiware.com>
* nsd/init.tcl: added handling of commands imported from
other namespaces in _ns_getscript procedure.
2003-03-05 Mark Page <mpagenva@aol.com>
* nsd/adpeval.c: (fix) Fixed handling of Tcl errors from script.
2003-03-05 Mark Page <mpagenva@aol.com>
* nsd/adpeval.c:
* nsd/adpcmds.c:
* nsd/nsd.h: (patch) Added optional switches to ns_adp_parse;
-cwd <path>, -savedresult <varname>
-savedresult supports usages which require the adp script's result
separate from the output buffer (which is the func result)
-cwd supports prespecifying the initial cwd for which the script
will be executed.
2003-03-03 Nathan Folkman <shmooved@aol.com>
* nscgi/nscgi.c: (bug fix) Applied patch to set SCRIPT_NAME
which is passed as an environment variable to the CGI script.
SF bug 230479.
2003-02-25 Nathan Folkman <shmooved@aol.com>
* nsd/init.tcl: (patch) Added logging of errorInfo
and errorCode globals to _ns_sourcefile command.
SF patch 690025.
* sample-config.tcl:
* tcl/fastpath.c: (bug fix) Added fast path configuration
example. Fixed bug that was adding an extra slash to
directory listings in _ns_dirlist. SF bug 682077.
* nsd/tclimg.c: (bug fix) Fixed ns_jpegsize command for
images which contained a DHT. Removed AppendDims command
which has been replaced with AppendObjDims. SF bug 685055.
2003-02-07 Elizabeth Thomas <eathomas93@aol.com>
* TAG aolserver_v4_r0_beta_2
* tcl/sendmail.tcl: (bug fix) SF bugs 669217/669844
Fix handling of addressees so we don't lose friendly address name
* configure: fix additional defaults from cc to gcc
2003-02-06 Mark Page <mpagenva@aol.com>
* nsd/return.c: (bug fix) SF bug 674033.
(bug fix) Correct the status code for BadRequest returns.
2003-02-06 Jamie Rasmussen <jrasmuss@mle.ie>
* nsthread/winthread.c: (bug fix) SF bug 675033.
(bug fix) Fixed crash on second DLL_THREAD_DETACH.
2003-02-05 Elizabeth Thomas <eathomas93@aol.com>
* nsext.c: Fix LocalProxy function to call Ns_CloseOnExec
after the file descriptors have been opened instead of before
2003-02-04 Jamie Rasmussen <jrasmuss@mle.ie>
* include/nsthread.h:
* include/ns.h:
* nscgi/nscgi.c:
* nscp/nscp.c:
* nsd/adpeval.c:
* nsd/driver.c:
* nsd/encoding.c:
* nsd/exec.c:
* nsd/fastpath.c:
* nsd/fd.c:
* nsd/info.c:
* nsd/init.c:
* nsd/listen.c:
* nsd/modload.c:
* nsd/nsd.h:
* nsd/nsmain.c:
* nsd/pathname.c:
* nsd/request.c:
* nsd/server.c:
* nsd/sock.c:
* nsd/sockcallback.c:
* nsd/tclenv.c:
* nsd/tclfile.c:
* nsd/tclhttp.c:
* nsd/tclimg.c:
* nsd/tclsock.c:
* nsd/tclxkeylist.c:
* nsd/urlencode.c:
* nsd/urlopen.c:
* nsd/getopt.c:
* nsd/getopt.h:
* nsd/nswin32.c:
* nssock/nssock.c:
* win32: Added Win32 support and build files
2003-02-04 Nathan Folkman <shmooved@aol.com>
* nsd/tclmisc.c: (bug fix) Fixed arg checking bug in
NsTclStrftimeObjCmd (ns_fmttime) API.
2003-02-03 Jamie Rasmussen <jrasmuss@mle.ie>
* tcl/sendmail.tcl: (bug fix) SF bug 632265.
* Fixed minor spelling errors in comments.
2003-02-01 Nathan Folkman <shmooved@aol.com>
* tcl/stats.tcl: Consolidated web based stats interface into
a single Tcl file.
* sample-config.tcl: Added web stats configuration.
2003-01-31 Mark Page <mpagenva@aol.com>
* nsd/conn.c:
* nsd/connio.c:
* nsd/encoding.c:
* nsd/form.c:
* nsd/nsconf.c:
* nsd/nsd.h:
* nsd/queue.c:
* nsd/return.c:
* nsd/tclcmds.c:
* nsd/tclresp.c:
* nsd/urlencode.c:
* include/ns.h: added in I18N capabilities derived from the OACS
I18N design. This set of changes is just those which are
supported within the nsd C-code.
* sample-config.tcl: Add text for I18N specific config.
2003-01-28 Nathan Folkman <shmooved@aol.com>
* nsd/server.c:
* tcl/fastpath.tcl: (bug fix) Tcl code was updated to reflect a
a change made earlier to server.c, in which all fast path related
configuration was moved from ns/server/<server> to
ns/server/<server>/fastpath. This change will require you to
update your configuration file to reflect the new configuration
path for any fast path options.
*** INCOMPATIBILITY ***
2003-01-28 Nathan Folkman <shmooved@aol.com>
* nsd/init.tcl: (bug fix) Updated ns_eval command to mark Tcl interp for
deletion in the case of a TCL_ERROR only. Updated ns_eval to properly
handle an arbitrarly long number of args. SF bug 675506.
2003-01-24 Elizabeth Thomas <eathomas93@aol.com>
* include/Makefile.global.in:
* README: Added $(PURIFY) variable back from 3.4 to facilitate
easy purify compile.
* configure: Made gcc the default value for $CC instead of cc.
2003-01-23 Elizabeth Thomas <eathomas93@aol.com>
* Tagged first 4.0 beta: aolserver_v4_r0_beta_1
2003-01-19 Nathan Folkman <shmooved@aol.com>
* nscp/nscp.c: Cleaned up log messages to be more consistent
with other server messages. Moved user name from thread name into
log notice. Control port logging now disabled by default. Added
more detailed configuration instructions to sample-config.tcl.
2003-01-18 Jim Davidson <jgdavidson@aol.com>
* nsd/auth.c:
* nsd/conn.c:
* nsd/form.c:
* nsd/httptime.c:
* nsd/info.c:
* nsd/log.c:
* nsd/mimetypes.c:
* nsd/nsconf.c:
* nsd/nsd.h:
* nsd/nsmain.c:
* nsd/pathname.c:
* nsd/random.c:
* nsd/tclcmds.c:
* nsd/tclfile.c:
* nsd/tclhttp.c:
* nsd/tclimg.c:
* nsd/tclinit.c:
* nsd/tclmisc.c:
* nsd/tclrequest.c:
* nsd/tclresp.c:
* nsd/tclset.c:
* nsd/tclsock.c:
* nsd/tclthread.c:
* nsd/urlencode.c:
* nsd/urlopen.c: Removed old string commands.
* nsd/conn.c:
* nsd/connio.c:
* nsd/driver.c:
* nsd/init.c:
* nsd/nsd.h:
* nsd/queue.c:
* nsd/return.c:
* nsd/server.c:
* nsd/tclinit.c: Moved Host header mapping code from
queue.c to driver.c to catch cases of unmapped Host's.
Also, updated the Conn and Sock structures to maintain the
servPtr and location correctly Host header based connections.
* nsthread/Makefile:
* nsthread/cond.c (removed):
* nsthread/error.c:
* nsthread/memory.c:
* nsthread/mutex.c:
* nsthread/nsthreadtest.c:
* nsthread/pthread.c (added):
* nsthread/reentrant.c:
* nsthread/thread.c:
* nsthread/thread.h:
* nsthread/time.c:
* nsthread/tls.c:
* nsthread/winthread.c (added):
* include/nsthread.h: Brought forward nsthread library
from 3.5 which includes support for Win32.
2003-01-18 Zoran Vasiljevic <zoran@archiware.com>
* nsd/init.tcl: Summary of changes:
o. added _ns_getpackages to enable "package require".
o. fixed various issues in ns_getscript proc related to
loading Tcl modules which define namespaced versions
of standard Tcl commands.
o. fixed ns_eval to return value/error and made compatible
with standard Tcl "eval" and AOLserver "ns_eval" from 3.x
o. made the entire file little bit more readable.
2003-01-17 Mark Page <mpagenva@aol.com>
* nsd/driver.c: Change to SockRead; if request has a
content-length, null-terminate the content at the specified
length. This fixes a problem when some browsers add extra CRLF
characters beyond the specified content-length on a POST (see this
by using IE to POST data).
2003-01-16 Elizabeth Thomas <eathomas93@aol.com>
* nsd/tclmisc.c: Fix WordEndsInSemi so that ns_striphtml correctly
* handles ampersands that are not followed by a space or semicolon
2002-11-06 Jeremy Collins <jcollins@phpsource.net>
* nsd/adpparse.c: Changed ParseAtts to make it compatible with
how parsing works in 3.x.
* nsd/init.tcl: Fixed namespace bug.
2002-11-05 Jeremy Collins <jcollins@phpsource.net>
* nsd/adpparse.c: Fixed a bug in Parse. It was not parsing
registered tags inside of html tags (ex. <td bgcolor='<tag n='v'>'> )
* nsd/tclset.c: Fixed a bug with ns_set tcl commands.
ns_set idelkey|delkey would not actually delete the key.
2002-11-02 Jim Davidson <jgdavidson@aol.com>
* nsd/fastpath.c: Fixed bug with non-server specific cache names.
2002-11-01 Jeremy Collins <jcollins@phpsource.net>
* nsd/adpparse.c: Fixed a small bug in ParseAtts. It failed
to properly parse attribute values with spaces in them.
2002-10-29 Jim Davidson <jgdavidson@aol.com>
* sample-config.tcl: Updated with examples for connection
thread pools and Host header virtual servers.
* Makefile: Uses /bin/sh to invoke install-doc.
* doc/install-doc: Uses /bin/sh to invoke mkLinks.
* nsd/form.c:
* nsd/conn.c:
* tcl/form.tcl: Changed "ns_conn files" command to just
return names of file upload widgets, moving access to other
meta data to new fileoffset, filelength, and fileheaders
subcommands. Also, removed the ns_conn string command
instead of updating.
* nsd/nsd.h:
* nsd/driver.c:
* nsd/nsmain.c:
* nsd/server.c:
* nsd/queue.c: Implemented multiple named thread pools
for virtual servers and Host header based virtual server
selection. See sample-config.tcl for config example.
* nsd/info.c: Fixed crash bug with NULL server.
* nsd/tclcmds.c: Removed NsTclConnCmd and NsTclServerCmd
string commands.
2002-10-14 Jim Davidson <jgdavidson@aol.com>
* doc/install-doc (new): New script to install and cross
link the man pages.
* Makefile:
* include/Makefile.module: Added .PHONY targets and man
page install target.
* nsd/conn.c: Made "ns_conn copy" use Tcl_Write instead
of Tcl_WriteChars to fix binary file upload bug.
* nsd/form.c: Fixed bug where Ns_ConnGetQuery (i.e.,
ns_conn form) could not handle binary data in multpart file
uploads. Also, "ns_conn files" now returns file type.
* nsd/log.c: Thread ids are now formatted as unsigned
long.
* include/ns.h:
* nsd/config.c:
* nsd/tclinit.c:
* nsd/tclcmd.c:
* nsd/tclsock.c:
* nsd/main.c: Added support for libnsd.so to be loaded
into a standard (thread enabled) tclsh or linked into a
custom tclsh. Calling Ns_TclInit from a custom tclsh or
loading libnsd.so via the load command will add many
non-server AOLserver commands (e.g., adds ns_set but not
ns_adp_puts).
* nsd/server.c:
* nsd/tcljob.c: Changed ns_job command to create and queue
jobs to named queues instead of per-server queues.
* nsd/tclthread.c: Added a special Tcl address object type
to speed access to the object id's.
* nsd/sched.c: Threaded events now use a thread pool
instead of create/delete each time.
* tcl/form.tcl: Fixed bug accessing uploaded binary files
with the ns_getform proc and added ns_getformfile proc to
address the ".tmpfile" security issue.
2002-09-28 Jim Davidson <jgdavidson@aol.com>
* nsd/adpparse.c:
* nsd/auth.c:
* nsd/conn.c:
* nsd/connio.c:
* nsd/driver.c:
* nsd/dstring.c:
* nsd/filter.c:
* nsd/init.c:
* nsd/log.c:
* nsd/main.c:
* nsd/modload.c:
* nsd/nsd.h:
* nsd/nsmain.c:
* nsd/queue.c:
* nsd/return.c:
* nsd/server.c:
* nsd/tclenv.c:
* nsd/tclinit.c:
* nsd/tclthread.c:
* include/ns.h: Added missing AOLserver 3.x API's including
static module support, Ns_TclRegisterAt traces, connection
I/O functions, loadable comm driver stubs, and more.
* configure:
* configure.in:
* nsd/exec.c: Removed weird USE_PROCTHREAD code.
* nsd/init.tcl: Uses "ns_ictl modules" for module list.
* nscgi/nscgi.c: Uses Ns_CopyEnviron, renamed from
Ns_GetEnvironment.
* Makefile: Fixed install bug for install-sh.
* README: Updated to match AOLserver 3.5. Various outdated
docs removed.
2002-09-10 Jim Davidson <jgdavidson@aol.com>
* Makefile:
* INSTALL (new):
* aclocal.m4 (new):
* configure (new):
* configure.in (new):
* include/Makefile.global (removed):
* include/Mkaefile.global.in (new):
* include/Makefile.module: New autoconf-based configuration
and build.
* nsd/log.c:
* nsd/tclenv.c: Updated to used new autoconf-based compile
info.
2002-08-24 Jim Davidson <jgdavidson@aol.com>
* nsd/filter.c:
* nsd/server.c:
* nsd/tclatclose.c:
* nsd/tclvar.c:
* nsd/tclinit.c:
* nsd/tcljob.c:
* nsd/nsd.h: Moved private struct definitions out of nsd.h
back to files which depend on them, e.g., struct Filter.
* nsd/tclatclose.c:
* nsd/tclinit.c: Moved Ns_TclRegisterDeferred to tclinit.c.
* nsd/adpeval.c:
* nsd/tclsock.c:
* nsd/tclinitc: Eliminated NsTclEval in favor of Tcl_EvalEx.
* nsd/log.c:
* nsd/nsconf.h:
* nsd/nsconf.c: Removed complicated and dubious log
buffering option. The new ns_logctl feature can be used
to batch noisy requests.
* nsd/tclinit.c:
* nsd/tclcmds.c:
* nsd/init.tcl: Added new ns_init command to replace the
nsv-based namespace copy/update mechanism. The init.tcl
is now called only at startup.
* conn.c:
* driver.c:
* queue.c:
* nsd.h: Connection times and timeouts now maintained with
Ns_Time-based microsecond resolution.
2002-07-14 Jim Davidson <jgdavidson@aol.com>
* nsd/log.c:
* nsd/tclcmds.c: Added the ns_logctl command with options
to hold, release, flush, etc. the log messages in a thread.
* nsd/adpcmds.c:
* nsd/urlopen.c: Switched to more object-correct
Tcl_ObjSetVar2.
2002-07-08 Jim Davidson <jgdavidson@aol.com>
* nsd/tclthread.c: Cleaned up the object-based commands
by collecting common argument and new object allocation
code into single GetArgs function.
2002-07-07 Jim Davidson <jgdavidson@aol.com>
* nsd/tclvar.c: Removed string commands because it was
messy maintaining both.
* nsd/info.c:
* nsd/queue.c:
* nsd/tclcmds.c:
* nsd/tclset.c: Added object commands.
* nsd/tclobj.c:
* nsd/tclmisc.c: Updated Ns_Time type code to handle simple
single-integer times without microsecond resolution.
* include/ns.h:
* include/Makefile.global:
* Makefile: Updated for AOLserver beta4 release to coincide
with Tcl beta1 release.
Otherwise, minor edits to new object commands in several
places.
2002-07-05 Jim Davidson <jgdavidson@aol.com>
* nsd/nsd.h:
* nsd/adpcmds.c:
* nsd/adpeval.c:
* nsd/adprequest.c:
* nsd/tclcmds.c: Updated remaining ADP commands to be
object-based. Because the NsInterp->adp struct now uses
Tcl_Obj's for call frame args, the string commands were
just dumped.
2002-06-25 Scott S. Goodwin <scott@scottg.net>
* nsd/tclvar.c:
* nsd/tclcmds.c: Reimplemented nsv commands as object commands.
2002-06-19 Jim Davidson <jgdavidson@aol.com>
* include/ns.h:
* nsd/tclinit.c: Added new Ns_TclCreateInterp() which
creates and initializes interps for server and non-server
interps (e.g., the config interp). Interps are now
initialized with a call to Tcl_Init() which enables the
standard Tcl library procedures (e.g., unknown, http::,
etc.).
* nsd/tclthread.c:
* nsd/tclcmds.c: Thread and cache related commands no
longer require a server, exposing them in any interp created
with Ns_TclCreateInterp.
* nsd/server.c: NsGetServer handles NULL server.
In general, the changes above are steps towards making the
AOLserver API's more useful outside the context of a server.
The idea is to enable use of libnsd for other applications,
e.g., shells interps.
2002-06-12 Jeremy Collins <jeremy.collins@phpsource.net>
* nsd/conn.c:
* nsd/tclcmds.c: Reimplemented "ns_conn" as an obj based
command. In the process I also modified NsTclConnObjCmd to use
Tcl_GetIndexFromObj. This should improve performance as well as
the readability of the code.
* nsd/auth.c:
* nsd/form.c:
* nsd/httptime.c:
* nsd/log.c:
* nsd/mimetypes.c:
* nsd/nsmain.c:
* nsd/pathname.c:
* nsd/random.c:
* nsd/tclatclose.c:
* nsd/tclfile.c:
* nsd/tclhttp.c:
* nsd/tclimg.c:
* nsd/tclinit.c:
* nsd/tclmisc.c:
* nsd/tclrequest.c:
* nsd/tclresp.c:
* nsd/tclsock.c:
* nsd/tclthread.c:
* nsd/urlencode.c:
* nsd/urlopen.c: Cleaned up the way we were setting the result
on tcl errors.
2002-06-12 Jim Davidson <jgdavidson@aol.com>
* include/nsthread.h:
* nsthread/mutex.c:
* nsthread/thread.c:
* nsd/info.c: Rename Ns_MutexEnum and Ns_ThreadEnum to
Ns_MutexList and Ns_ThreadList to not conflict with pre-4.0
definitions of removed functions.
* nsthread/Makefile
* nsthread/nshtreadtest.c (new file): Added simple program
to test thread interface.
* nsthread/thread.h:
* nsthread/cslock.c:
* nsthread/rwlock.c: Added new NsMutexInitNext function
to consistantly name mutexes in internal objects.
* nsthread/sema.c: Restored AOLserver 3.x implementation
using Ns_Mutex and Ns_Cond objects. The API's in <semaphore.h>
were not implemented on OS/X.
2002-06-10 Jim Davidson <jgdavidson@aol.com>
* include/Makefile.global:
* include/Makefile.module: Added support for dynamic
library init procs set via the LIBINIT make variable.
* Makefile:
* nsthread/compat.c:
* nsthread/cond.c:
* nsthread/cslock.c
* nsthread/error.c:
* nsthread/fork.c:
* nsthread/master.c:
* nsthread/memory.c:
* nsthread/mutex.c:
* nsthread/osxcompat.c:
* nsthread/osxcompat.h:
* nsthread/reentrant.c:
* nsthread/rwlock.c:
* nsthread/sema.c:
* nsthread/signal.c:
* nsthread/thread.c:
* nsthread/thread.h (new file):
* nsthread/time.c:
* nsthread/tls.c: Moved from nsd as separate nsthread
library.
* include/ns.h:
* include/nsthread.h: Include of tcl.h moved to nsthread.h
from ns.h.
* nsd/Makefile
* nsd/init.c (new file):
* nsd/binder.c:
* nsd/cache.c:
* nsd/config.c:
* nsd/encoding.c:
* nsd/exec.c:
* nsd/info.c:
* nsd/listen.c:
* nsd/log.c:
* nsd/mimetypes.c:
* nsd/modload.c:
* nsd/nsd.h:
* nsd/nsmain.c:
* nsd/nsconf.c:
* nsd/proc.c:
* nsd/sched.c:
* nsd/server.c:
* nsd/tclinit.c:
* nsd/urlspace.c: Various runtime initializations collected
into dynamic library load time init via NsdInit in init.c.
2002-06-08 Jim Davidson <jgdavidson@aol.com>
* include/Makefile.global
* include/Makefile.module: Support for building programs
along with dynamic libraries and modules. Also, fixed bug
setting -install_name on OS/X.
* nsd/Makefile: Use of updated Makefile.module and include
osxcompat.o on OS/X.
* nsd/nsd.h:
* nsd/osxcompat.h:
* nsd/osxcompat.c: Compat functions moved from ../nsosx.
* nsosx/README (removed):
* nsosx/Makefile (removed):
* nsosx/nsosx.c (removed): Tcl no longer requires any
compat functions, remainder moved into nsd.
Otherwise, minor tweaks throughout to silence compiler
warnings.
2002-06-05 Jim Davidson <jgdavidson@aol.com>
* Makefile:
* include/Makefile.global: Added tclmemdbg flag to compile
Tcl and AOLserver with TCL_MEM_DEBUG option.
* nsd/unix.o:
* nsosx/README (new file):
* nsosx/Makefile (new file):
* nsosx/nsosx.o (new file): Hacks for Apple OS/X removed
from nsd/unix.o and moved to nsosx.o as a Tcl compat object.
See README for instructions.
* nsd/nsd.h:
* nsd/server.c:
* nsd/adpparse.c:
* nsd/adpcmds.c:
* nsd/adpeval.c: Added support for new ns_adp_safeeval
and ns_adp_registerproc commands. Also, registered tags
can now be modified after startup.
* include/Makefile.module: Updated to allow building of
dynamic library of public routines to go with dynamic
module, e.g., libnsdb.so with nsdb.so.
* nsext/Makefile:
* nspd/Makefile:
* nspd/msg.c (removed):
* nsext/msg.c (moved from nspd): Moved Ns_Ext API from
libnspd.a static library to libnsext.so dynamic library as
it's used by both nsext.so and proxy drivers.
* nsdb/Makefile:
* nsdb/nsext.c (new file): Moved public API for nsdb out
of nsdb.so module and into libnsdb.so dynamic library.
2002-05-15 Jim Davidson <jgdavidson@aol.com>
* Makefile:
* include/Makefile.global:
* tcl8.3.4 (removed): As of Tcl version 8.4., no modifications
to the Tcl sources are required for AOLserver. Therefore,
the hacked 8.3.4 sources have been removed. Going forward
you'll need to checkout the Tcl source from Sourceforge
into the directory specified in include/Makefile.global
(currently ../tcl8.4). The top level Makefile includes
the "tcl-checkout" and "tcl-update" targets which should
help.
* include/ns.h:
* nsd/server.c:
* nsd/nsd.h:
* nsd/tclcmds.c:
* nsd/tclinit.c:
* nsd/init.tcl:
* nsd/dbdrv.c (removed):
* nsd/dbinit.c (removed):
* nsd/dbtcl.c (removed):
* nsd/dbutil.c (removed):
* nsdb/dbinit.c (new):
* nsdb/dbdrv.c (new):
* nsdb/dbtcl.c (new):
* nsdb/dbutil.c (new):
* include/nsdb.h (new): Moved the NsDb interface from core
to new nsdb module. Simply loading nsdb.so should work as
before. Goal is to enable full replacement of NsDb in the
future.
* nsd/cache.c:
* nsd/callbacks.c:
* nsd/listen.c:
* nsd/nsconf.c:
* nsd/op.c:
* nsd/sched.c:
* nsd/server.c:
* nsd/sockcallback.c:
* nsd/urlspace.c:
* nsext/nsext.c:
* nslog/nslog.c:
* nslog/nslog.c: Simple mutex name updates.
* nscgi/nscgi.c: Minor bug fixes
* nsd/adpeval.c: Fixed read of freed data.
* nsd/tclinit.c: Fixed crash bug of null interp delete.
* nsd/exec.c:
* include/Makefile.global: Support for process manager
thread enabled with -DUSE_PROCTHREAD to route all process
create/wait through a single thread for Linux threads.
2002-02-24 Jim Davidson <jgdavidson@aol.com>
* nsd/nsd.h
* nsd/unix.c:
* tcl8.3.4/unix/tclLoadDyld.c: Hacks for routines missing
from OS/X. The implementation of sigwait() is not strictly
correct but appears good enough for AOLserver's use.
* Makefile:
* nsd/Makefile:
* nsmain/Makefile:
* include/Makefile.global:
* include/Makefile.module:
* include/Makefile.library (removed): Updates for linking
modules against the nsd shared library and for library
filenames which don't end in .so.
* nsext/Makefile
* nspd/Makefile: Moved proxy message code from nsext to
nspd, now a static library.
* nsd/main.c:
* nsd/init.c:
* nsd/Makefile:
* nsmain/*:
* sample-config.tcl:
* tcl2ini.tcl:
* ini2tcl.tcl:
* Makefile: Moved build and install of nsd and init.tcl
into nsd directory and install of sample config to top
level Makefile. Added tcl2ini.tcl and ini2tcl.tcl config
file utilities.
2002-02-07 Jeff Hobbs <jeffh@ActiveState.com>
* nsmain/init.tcl:
* nsmain/sample-config.tcl:
* nsssl/keygen.tcl:
* tcl/debug.tcl:
* tcl/fastpath.tcl:
* tcl/file.tcl:
* tcl/form.tcl:
* tcl/http.tcl:
* tcl/nsdb.tcl:
* tcl/sendmail.tcl:
* tcl/util.tcl: code cleanup to brace exprs and fix indentation
2001-12-05 Jim Davidson <jgdavidson@aol.com>
* nsd/tclthread: Tcl threads now return their string result
via ns_thread wait.
2001-12-20 Scott S. Goodwin <scott@scottg.net>
* include/Makefile.library: Changed RFLAG to RPATH, and took out
$(AOLSERVER)/lib:
$(LDSO) -o $(LIB) $(OBJS) $(LIBS) $(RFLAG) $(AOLSERVER)/lib
now reads:
$(LDSO) -o $(LIB) $(OBJS) $(LIBS) $(RPATH)
which is what I think was intended. Still have the problem
that $(AOLSERVER)/lib must already exist.
2001-11-05 Jim Davidson <jgdavidson@aol.com>
* Removed support for Win32, removing both the build/test
environment and updating the code to be standard Unix style.
Among other style changes such as changing SOCKET's to
simple Unix style int's, the short lived Ns_Buf structure
was also eliminated in favor of the Unix standard struct
iovec.
* Removed support for older non-pthread Unix platforms such
as HP/10 and SGI native.
* Updated Tcl to version to Tcl 8.3.4, replacing tclAlloc.c
with a modified version of what was libnsthread's fast pool
allocator including support for fast direct Tcl_Obj
allocation. Also added a few functions to tclUnixThrd.c
for thread safety (e.g., readdir_r and localtime_r support)
and fixed up tcl.m4 for better FreeBSD 4.4 and Solaris
thread builds.
* ns_malloc, Ns_ThreadMalloc, and Ns_PoolAlloc all now
simply call Tcl_Alloc which is always enabled. The previous
-z (enable) and -p (disable) command line flags are ignored.
* Integrated remainder of libnsthread, now standard pthreads
and compatible with Tcl pthread code, into libnsd.so.
* Updated libnsd.so to use poll() instead of select() where
possible.
* Removed the code which would attempt to determine when
the sock callbacks and scheduler were idle before completing
startup. The code was overly complex and not strictly
correct.
* Removed the -k and -K shutdown/restart options which was
not entirely safe.
* Removed the child-process privleged port Ns_SockListen
code in nsd/binder.c. Binding privleged ports (e.g., port
80) now requires the -b or -B command line methods introduced
in 3.4, e.g., "nsd -ft nsd.tcl -b myhost:80". The binder
code, while clever, was a potential security risk.
* Cleaned up some lingering sloppy uses of Ns_ConfigGet
and other older macros. Old macro and function definitions
can be disabled by defining NS_NOCOMPAT as is done when
compiling the core server and modules.
* Incremented version to 4.0b2.
2001-08-29 Scott S. Goodwin <scott@scottg.net>
* https.tcl: made fixes to ns_httppost per Rick Lansky at
bom.com. He also suggested I allow the Content-type to be
passed in as a parameter, so I've added that too.
2001-08-27 Scott S. Goodwin <scott@scottg.net>
* https.tcl: added ns_httppost, that is called with url,
rqset, qsset and timeout. The qsset is an ns_set with
key/values that will be turned into user=scottg&pass=1234,
for example, and passed as content in the POST.
2001-08-17 Scott S. Goodwin <scott@scottg.net>
* tcl/http.tcl: moved rqset to be the last arg passed to
ns_httpget so it wouldn't break existing code. I should
have done it that way in the first place.
2001-08-15 Scott S. Goodwin <scott@scottg.net>
* tcl/http.tcl: add the rqset param as the second argument to
ns_httpget, which in turn calls ns_httpsopen and passes the rqset
to it. The change is for consistency so that you can use cookies
with ns_httpget as well.
2001-07-16 Scott S. Goodwin <scott@scottg.net>
* tcl/http.tcl: you can now do ns_httpopen GET /index.html;
the script will automatically prepend http://hostname:port/
to the url.
2001-06-30 Dossy Shiobara <scott@scottg.net>
* nsd/conn.c, tests/api/ns_conn.adp: fixed ns_conn
outputheaders as per bug #433676 submitted by Yon Derek
(yond).
2001-05-22 Scott S. Goodwin <scott@scottg.net>
* nsd/conn.c: changed Ns_ConnDriverContext in 4.x to return
the actual conn-specific, module-specific context back,
which is how it works in 3.x. For some reason this API call
was changed to always return NULL, but nsopenssl and
potentially other comm drivers need to get their conn-specific
info back.
2001-04-25 Dossy Shiobara <dossy@panoptic.com>
* Implemented [ns_localtime ?tz?] as per "[ #418890 ]
ns_localtime should accept timezone".
2001-03-15 Dossy Shiobara <dossy@panoptic.com>
* include/Makefile.win32 win32/*/Makefile: initial attempts
at Makefiles suitable for NMAKE for building on Win32
* include/ns.h: define typedef __int64 INT64 for Win32
2001-03-12 Scott S. Goodwin <scott@scottg.net>
* nsmain.c: Segmentation fault when using -g <group> flag:
line 294 should read Ns_GetGid(garg) instead of Ns_GetGid(optarg).
2001-03-12 Jim Davidson
Initial checkin of AOLserver 4.0 (beta), now supporting
vitual servers and (finally) removing supporting for Tcl
7.6.
2001-03-08 Kris Rehberg
*** AOLserver 3.3 RELEASED ***
2001-03-08 Jim Davidson
* Added NsTclFinalizeThread() at end of Tcl TLS cleanup to
finalize Tcl 8.x thread data. This fix was the last hurdle
for finalizing nsd8x.
2001-01-31 Kris Rehberg
* Makefile (MODULES): nsunix, nsvhr, and nsodbc moved to
the Module Collection.
2001-01-16 Jim Davidson
* Cleaned up sloppy use of the nsServer global wherever
it's used.
2001-01-04 Kris Rehberg
* nsd/tclmisc.c: Ticket 13090. ns_striphtml crashing-bug
in nsd8x fixed.
2000-12-14 Kris Rehberg
* tcl/http.tcl: Corrected typo _ns_ns_http_readable.
* nsd/dstring.c (Ns_DStringPrintf): Ticket 12765.
Ns_DStringPrintf uses vsnprintf instead of vsprintf with
specified buffer size. Thanks to "??".
* nsd/return.c (Ns_ConnConstructHeaders): Ticket 12764.
If-Modified-Since (304) works with keepalive now. Thanks
to Jim "??".
2000-12-13 Kris Rehberg
* include/Makefile.global: Builds with architecture-specific
optimization options. Auto-detects architecture for most
platforms. Auto-select compiler and Purify usage from
command line, e.g.:
gmake nativeme=1 (all non-free Unix)
gmake gccme=1 (some non-free Unix) gmake
PURIFY=/path/to/purify/executable (Solaris and Irix only)
* nssock/Makefile*: now installs The Right Things in The
Right Places.
* nsd/Makefile: nsd8x is the default AOLserver now (nsd
symlinks to nsd8x).
* nsd/sample-config.tcl: Added some tuning parameters for
easy reference.
2000-12-12 Kris Rehberg
* nsvhr/nsvhr.c (UDSProxy): More type changes.
* nslog/nslog.c (Ns_ModuleInit): pointer-to-function casted.
* nscp/nscp.c (GetLine): buf changed to char *; casted
AcceptProc.
2000-12-12 Jim Davidson
* nssock/sock.cpp: Fixed multiple-load problems, added
sndbuf, rcvbuf, sendwait, and recvwait options. Added
configurable backlog via Ns_SockListenEx. Fixed compile
bugs for ssl. Restructured the socket module to wait in
server busy situations instead of sending the server busy
message. Also, moved the graceful close burden to the
SockThread from the connection thread.
* thread/win32.cpp: Moved WinThread allocation to DllMain,
eliminating GetWinThread function. Also, disabled thread
cleanup for final thread to avoid any TLS cleanup callbacks
attempting to invoke code in unloaded libraries like Tcl.
Removed call to NsInitThread no longer needed. Switched to
rolling condition broadcast wakeup as in the sproc code.
More fixes for new Thread context model.
* thread/tls.c: Changed NsLock API's to return 1/0 instead
of NS_OK/NS_TIMEOUT and more use of Ns_MasterLock to keep
things simple.
* thread/thread.c: Changed thread enum to return Ns_Thread,
not Ns_Thread pointer which didn't make much sense. Updated
"ns_info pools" command to reflect change. Fixed bugs with
Ns_ThreadEnum and pool counters. Update of the Ns_Pool API
to support more stats gathering available via new Ns_PoolStats
API. Remove Thread->etime and NsPool API's. Moved sprintf
of default thread name from NsThreadMain to NsInitThread
under protection of threads lock. Added comment for
NsInitThread. More fixes for new Thread context model.
Updated sproc.cpp code for new Thread management and removed
the wait for thread startup which shouldn't be needed.
* thread/test.c: Cleaned up code a bit to quiet compiler.
Better test for PTHREAD_TEST. Fixed undefined var bug for
sproc. Added some comments, a native pthread test, and a
recursive stack checker.
* thread/tcl8x.c: Added Tcl_JoinThread for benefit of
Tcl8.4.
* thread/sproc.cpp: Changed NsLock API's to return 1/0
instead of NS_OK/NS_TIMEOUT and more use of Ns_MasterLock
to keep things simple. Fixed some comment bugs, update
thrPtr->tid after fork. Added call the NsInitThread. Updated
sproc.cpp code for new Thread management and removed the
wait for thread startup which shouldn't be needed.
* thread/pthread.cpp: Changed NsLock API's to return 1/0
instead of NS_OK/NS_TIMEOUT and more use of Ns_MasterLock
to keep things simple. Fixed bug of not setting the tid
correctly. Added call the NsInitThread.
* thread/pool.c: Added Ns_PoolEnum to get at pool stats as
with mutexes and threads, removing the old Ns_PoolStats
API's and updating the "ns_info pools" command. Fixed bugs
with Ns_ThreadEnum and pool counters. Update of the Ns_Pool
API to support more stats gathering available via new
Ns_PoolStats API. Removed <mutex.h> for sgi which shouldn't
have been there. Removed the sbrk() code for now, was
crashing SGI (probably not thread safe). Use sbrk() on Unix
instead of malloc to avoid any malloc overhead or contention.
Reduced the zippy allocator page size to 16k from 64k.
* thread/pool.c, thread.c, sproc.cpp: Re-structured management
of the Thread context to better support threads created
without Ns_ThreadCreate (e.g., Java VM threads).
* thread/mutex.c: Changed NsLock API's to return 1/0 instead
of NS_OK/NS_TIMEOUT and more use of Ns_MasterLock to keep
things simple.
* thread/cs.c, memory.c, mutex.c, pool.c, pthread.cpp,
reentrant.c, rwlock.c, sema.c, sproc.cpp, tcl8x.c, test.c,
thread.c, win32.cpp: Restructured the thread interfaces,
moving the master lock to the platform interface code,
integrating the zippy allocator with Ns_Pool/Ns_ThreadAlloc
and use of a new simple direct allocator for all thread
objects.
* win32/nsthread/nsthread.dsp: Removed master.c and
oldpools.c.
* nsd/unix.c: Made ns_eval command disabled by default to
avoid using SIGUSR2.
* nsd/tclthread.c: Changed SETOBJ macro to SetObj function
which no longer sprintf's directly into interp->result.
* nsd/tclmisc.c: Added Ns_PoolEnum to get at pool stats as
with mutexes and threads, removing the old Ns_PoolStats
API's and updating the "ns_info pools" command. Changed
thread enum to return Ns_Thread, not Ns_Thread pointer
which didn't make much sense. Updated "ns_info pools"
command to reflect change. Added more info for "ns_info
pools". Added "ns_info pools" command to dump memory pool
stats.
* nsd/tclinit.c: Added nsconf.quiet and nsconf.startuptimeout.
Made ns_eval command disabled by default to avoid using
SIGUSR2. Added nsConfQuiet flag to quiet down the startup
messages with the -q flag.
* nsd/sock.c: Added Ns_SockListenEx.
* nsd/serv.c: Ensured the conn thread name was set first.
Added Ns_RegisterAtReady callbacks for indicating server
no longer busy.
* nsd/sched.c, nsmain.c, serv.c, sockcallback.c: Added code
to wait for conn thread, sock callback, and sched idle at
startup to help alleviate code start problems.
* nsd/nsmain.c: Shuffled initialization to ensure command
line args are read before calling any Ns API's, ensuring
zippy malloc can be set if needed.
* nsd/nsconf.c: Added nsconf.quiet and nsconf.startuptimeout.
Made ns_eval command disabled by default to avoid using
SIGUSR2.
* nsd/dstring.c: Remove unused vars. Uses ns_realloc to
grow strings and maintains dstring stack in the staticSpace
instead of the *addr pointer for compatibility with Tcl
dstrings.
* nsd/callbacks.c: Added Ns_RegisterAtReady callbacks for
indicating server no longer busy.
* nsd/binder.c: Added Ns_SockListenEx.
2000-12-12 Kris Rehberg
* nsvhr/nsvhr.c (VHRProc): Matches hostnames regardless of
case.
* nssock: Supports Rainbow CryptoSwift SSL accelerators
(compile-time option; requires the Swift SDK from
http://www.rainbow.com/).
* nsd/nsmain.c (Ns_Main): Changed order of some config
default initialization. Config options cleaned up a lot.
Usage message very less glib. SUNWspro dumped core on
usage message due to nsconf.argv0 quigglyness.
2000-10-20 Kris Rehberg
*** AOLserver 3.2 RELEASED ***
2000-10-20 Jim Davidson
* win/tclWinSock.c: Fixed deadlock in sockets init code.
* nsd/nswin32.c: Fixed service install code to allow long
pathnames with spaces. Added/use ns_pipe which set's
close-on-exec like ns_sockpair.
2000-10-17 Kris Rehberg
* nssock/sock.cpp: extra padding on Server Busy message to
defeat MSIE friendly error messages.
* nsd/nsconf.h: All configuration option defaults have been
moved to nsconf.h as #defines.
* Makefile (install): Tcl library for nsd8x is now installed
into $(PREFIX)/lib/tcl8.3.
* tcl/http.tcl (ns_httpopen): Host:port is now sent to
remote host if != 80. Suggested by Jerry Asher.
* tcl/fastpath.tcl (_ns_dirlist): All kinds of Win32
pathnames should now be working. Thanks to Eric Klein.
* nsd/return.c (Ns_ConnReturnNotice): New options
"errorminsize", to pad error messages to defeat MSIE friendly
errors (fix suggested by ArsDigita) and "noticedetail" to
return more detailed information on notice pages.
* nslog/nslog.c: suppressquery option added to suppress
logging of query data.
* nslog/nslog.c: LogExtendedHEaders option added. Contributed
by ArsDigita.
* nsd/tclfile.c: Input string to mktemp is copied, because
mktemp edits the string in-place and that's generally a
bad thing to do with argv's. Contributed by ArsDigita.
* nsd/tclnsshare.cpp (ShareTraceProc): Patch to tclnsshare.cpp
to avoid race conditions if the shared value is a list.
Contributed by ArsDigita.
* tcl/http.tcl (ns_httpopen): CRLF now returned in ns_httpopen.
Contributed by ArsDigita.
* tcl8.3.2/generic/tclCmdIL.c: Nonsense case of lsorting
a list with length <= 0 caused a memory leak. Fixed.
Contributed by ArsDigita.
* nsd/adpfancy.c: We now use the Arsdigita version of
adpfancy. Contributed by ArsDigita.
* nsd/adp.c: Sundry ArsDigita changes.
2000-10-16 Kris Rehberg
* tcl/init.tcl: Initialize errorCode and errorInfo like
tclsh does. From ArsDigita.
* nsd/nsd.h, nsd/tclcmds.c, nsd/tclvar.c: nsv_names Tcl
command lists names of nsv's in memory.
* tcl8.3.2: The complete Tcl 8.x distributions are now
included. They aren't installed with AOLserver's "gmake
install", but you can install them manually if you want to
use them for the i18n encodings and stuff like that. It
will install into the "lib/tcl8.3" directory of the binary
distribution with AOLserver 3.3 and later.
* nsd/nsmain.c (Ns_Main): Had to move Ns_ThreadSetName
below the stdin/stdout/stderr reassignment to fix a fd
problem with running nsd on Irix in "installed" or "daemon"
mode that would prevent the server from starting up. Sigh.
(Ns_Main): Took out little note about -k|-K being deprecated.
2000-10-13 Kris Rehberg
* nsd/nsmain.c (Ns_Main): gid of the specified user is set even if
it's not specified.
(UsageError): -K and -k give a "deprecated" warning.
(Ns_Main): -f gives a "deprecated" warning.
* nsd/binder.c (PreBind): Didn't really tell us if it was
successful at pre-binding. Helpful to know if you're
wondering what happened to that port you wanted to pre-bind.
(Binder): backlog variables (2) initialized to nsconf.backlog.
* nssock/sock.cpp, nsd/return.c: Made an attempt at
standardizing the error codes and error page content.
2000-10-13 Jim Davidson
* sproc.cpp: Fixed Wakeup() error message and update child's
sproc pid after fork.
* nsd/random.c: Put back log message when generating seeds.
* nsd/nsconf.c: Fixed memory overwrite bug in stats and
increased the default buffer value.
* nsd/keepalive.c: Fixed array overwrite with maxkeep=0
bug. Contributed by ArsDigita.
* nsd/tclkeylist.c: A more modern version added that's
compatible with Tcl 8.3.2 (nsd8x).
* nsd/stamp.c: Forces the build date reported by AOLserver
to be absolutely the last possible moment before the link
step happens, not just the last time nsmain.c was built.
* nsd/binder.c: New option "-b" to prebind ports as root
(but not listen on them). This allows AOLserver to start
up on MacOS X on ports 80 and 443 like this: "nsd ..blah..
-b 10.0.0.1:80".
* nssock/: Building nsssl is much less of a debacle and
doesn't rebuild itself three times anymore.
* various: fork() calls in all kinds of code were changed
to use ns_fork. ns_fork now lives in the thread library
(thread/ directory).
* tcl8.3.2/generic/tclIO.c: Fixed memory leak that leaks
around 112 bytes each time a file descriptor is closed.
Thanks to Rob Mayoff for finding this and proposing a
solution.
2000-10-09 Kris Rehberg
* sample-config.tcl: nsd.tcl is now sample-config.tcl so
that existing users can look at the new reference configuration.
* nsd/nsmain.c (Ns_InfoNameOfExecutable): new function just
returns nsconf.nsd which is determined elsewhere.
* nscp/nscp.c (Login): Tells you lots of harmless info
about the machine once you log in. Also, nscp does not
run unless configuration is explicitly set
* nsd/nsmain.c: Some typo or other.
* General: Files were re-arranged and some were renamed.
The sample SSL key/cert files are sample-certfile,
sample-keyfile. The nsd.tcl is now called sample-config.tcl
(so that existing installations always have a current
reference copy of the configuration). Other minor changes.
* tests/: Moved from its hiding place in scripts/test.
Install them with "gmake install-tests".
* nsd/tclxkeylist.c, nsd/tclcmds.c, nsd/Makefile: Re-added
TclX keyl* commands that were in AOLserver 2.x. These are
inferior to ns_set which is why they were left out in the
first place.
2000-10-04 Jim Davidson
* binder.c: Set close-on-exec on received fd from binder.
* sock.c: Removed cthread errno API's, Mac OS X now has
thread-safe errno.
* nsd/nsmain.c, include/Makefile.global, nsd/nsthread.h,
nspd/main.c, nsunix/nsunix.c, nsvhr/nsvhr.c, thread/Makefile,
thread/osthread, thread/reentrant.c, thread/signal.c:
Updates for Mac OS X. Use MACOSX instead of APPLE; use
HAVE_BSDSETPGRP, HAVE_CMMSG, use pthreads instead of
cthreads.
* nssock/sock.c: Removed setting bufsize to uninitialized
value on ssl.
* include/ns.h: Removed Ns_CacheTimedGetValue which was an
odd interface not used anywhere.
* nsd/nsd.h: Update to version 3.11.
* tcl/namespace.tcl: Added namespace export to init script.
* thread/pthread.cpp: Stopped using pthread_once as it
appears to require a lock.
2000-10-04 Kris Rehberg
* win32/nsssl/nsssl.dsp: nsssl project for win32.
* win32/aolserver.dsw: main installation keeps DLL's as
DLL's now.
* scripts/nsd.tcl: shared library extension is now
platform-dependent
* nssock/ssltcl.c: Changed name of ReadFile adn WriteFile
to avoid Win32 naming conflicts.
2000-09-28 Kris Rehberg
* scripts/tests/nstelemetry.adp: added "Expires: now" header
to ensure it gets run each time it's visitted.
* nsd/serv.c (NsConnArgProc): Race condition when threads
exit while [ns_info threads] is run; arg can be NULL. Seen
mostly by people who regularly visit nstelemetry.adp.
(AppendConn): same thing but with connPtr. This may be a
losing battle. It appears to work on a busy Irix server,
so I'm declaring victory for now.
2000-09-28 Jim Davidson
* nssock/sock.c: Fixed bufferred read code in SockRead,
resulting in a big performance boost and system load
reduction. Special thanks to Zachary Girouard.
2000-09-05 Kris Rehberg
*** AOLserver 3.1 Released ***
2000-09-05 (various: Jerry Asher, Jim Davidson, "Dossy," Curtis Galloway,
Scott S. Goodwin, Rob Mayoff, Kris Rehberg)
* thread/win32.cpp: Sets thread stack size as on other
platforms.
* thread/thread.c: NULL out thread arg at exit to avoid
Ns_ThreadEnum checking arg info for possibly deallocated
context as seen in ns_info threads. Also, moved read of
firstPtr in Ns_ThreadEnum inside lock. Added Ns_ThreadCreate2
in thread.c needed for upgrade to Tcl 8.3.1 in tcl8x.c
* thread/pthread.cpp: ETIME bug work around not causes
wakeup in Ns_CondWait and Ns_CondTimeWait instead of waiting
again. This is more conservative and should avoid problems
some have had with threads missing wakeup.
* thread/pool.c: Added a simple 1-byte range check to -z
allocator.
* thread/Makefile: Added dependency for osthread.o to
Makefile.
* tcl/namespace.tcl: Added namespace export to init script.
* nsvhr/nsvhr.c: Switched to Ns_WriteConn in TimedSockDump
to ensure all data was sent.
* nssock(nsssl): SSL module includes a fake 40-bit/512-bit
export-grade SSL keyfile.pem and certfile.pem for immediate
use on installation. Adjusted for use with BSAFE 4 and 5.
* nspd: Library now installed to binary distribution.
* nsd/tclsock.c: Fixed crash bug in error message in
ns_socknread.
* nsd/tclcmds.c: Added ns_adp_registertag command as
documented.
* nsd/serv.c: Added missing break for unauthorized case in
ConnRun.
* nsd/random.c: Fixed deadlock between Ns_DRand/Ns_GenSeeds.
* nsd/nsmain.c: Fixed some message formatting problems.
* nsd/mimetypes.c: Added .png type, "image/png".
* nsd/dbtcl.c: Removed unused variables in GetCsvCmd. Use
a dstring to create the column list instead of incrementally
setting the output variable with Tcl_SetVar. This was
necessary to avoid conflicting definitions of the needed
TCL_ flags between 7.6 and 8.x.
* nsd/dbinit.c: MOdified current per-thread handle count
to use a single TLS slot instead of a slot per pool.
* nsd/tclinit.c,adp.c,conn.c: The use of thread-local
storage (Tls) is now self-initializing in the conn, ADP,
Tcl, etc. This allows ns_conn commands to be used outside
a connection thread as well as other uses of Tls where it
may not be ready for use.
* nscp/nscp.c: Password non-echo code confuses Win32 and
some free Unix telnet clients so it has been disabled by
default for now, though it can be enabled by setting
"echopassword" in the nscp module section of nsd.tcl.
2000-08-21 Kris Rehberg
* nscp/nscp.c: Makes some attempt to recognize and handle
telnet IAC codes like CTRL-C and CTRL-D to force a logout.
This implementation of the telnet protocol is dirt-cheap,
so only standard Unix telnet is supported. On Win32, IAC
handling is completely disabled because the client is too
chatty with its IAC codes.
2000-08-20 Kris Rehberg
* nsftp, nspostgres, nssolid, nssybpd moved to $TOP level.
2000-08-17 Jim Davidson
* nsd/dbtcl: Removed unused variables in GetCsvCmd.
* nsd/adp.c: Fixed bug of not truncating output buffer when
an error was thrown during an ns_adp_parse. Fix suggested
by Rob Mayoff.
* tcl7.6 and tcl8.2.3: Switched to blocking Tcl_WaitPid to
avoid zombies as suggested by Rob Mayoff.
* thread: NULL out thread arg at exit to avoid Ns_ThreadEnum
checking arg info for possibly deallocated context as seen
in ns_info threads. Also, moved read of firstPtr in
Ns_ThreadEnum inside lock.
2000-08-17 Kris Rehberg
* nssock/sock.c (SockThread): warning sent to log when
Server Busy is returned.
* All the Makefiles should be in line with each other.
Typing "gmake", "gmake install" and "gmake clean" should
work in any directory. NSHOME is paid attention to by all
Makefiles.
* nsd: Ns_Log and Ns_Fatal statements are hopefully more
standardized and more useful to admins and developers.
* Irix now builds as -o32 using the native compiler by
default. See Makefile.global on how to change.
2000-08-15 Kris Rehberg
* include/Makefile.global (INSTLOG): should have pointed
to $(INST)/lib, not $(INST)/modules/lib.
* Makefile: nsunix resurrected. All modules are built.
If a module is missing a library, it is not built, but it
won't stop the AOLserver build process (no error is thrown).
The build will continue with the next module.
* nsftp: guesses if you have TCP_WRAPPERS available.
* nsext: Ten guesses why $(NSHOME)/include/nsextmsg.h was
duplicated here.
* nssybpd: Hopefully, the log statements will be easier to
understand by both admins and developers. It's still messy
since it uses syslog. Makefile redone to use standard
AOLserver rules. RPATH is used a little more intelligently.
Removed files that had no business living there.
* include/Makefile.global: Took stab at RPATH support on
Solaris to perhaps remove the need for LD_LIBRARY_PATH on
an intelligenly-administered system. New rule for libnspd.a.
2000-08-14 Kris Rehberg
* Makefile: nsvhr has been resurrected and enjoys our full
support.
* nsexample/Makefile: The include at the bottom wasn't using
$(NSHOME).
2000-08-14 Jim Davidson
* Tcl 8.x library upgraded to tcl8.3.2.
* thread/pool.c: A spiffy range-checker added to the Zippy
(-z) memory allocator.
2000-08-11 Kris Rehberg
* nsvhr/nsvhr.c: Always add "Connection: close" to the
request line to satisfy HTTP 1.1 RFC -- this would break
MSIE in HTTP 1.1 mode. HTTP_EOL of "\r\n" used on all
request lines for stupid web servers on the other end.
Protocol "tcp" added as synonym of "http" for old-time Unix
heads. Lots of folks lended a hand on this one -- Satyam
Priyadarshy, Jerry Asher, Kriston Rehberg, and special
thanks to Wanda G. at AOL for adding a CNAME in DNS so
quickly.
2000-08-09 Kris Rehberg
* nsd/serv.c: A whole lot less chatty about conns starting
and exiting. If you want to see them, turn on the Debug
flag.
* doc/*: lots of updates. Title page extremely simplified.
SSL docs updated. Release notes updated. NSV docs corrected
(thanks to Todd Levy.
2000-08-09 Jim Davidson
* tcl7.6/generic/tclFHandle.c: Removed needed fileTable
which could result in crashes when fd's where reused quickly
[fixes a rare multiple-exec crashing bug in nsd76 --kris].
* thread/tcl8x.c: Added a wrapper startup for Tcl_CreateThread
for the benefit of Win32.
* nsd/log.c: Removed severityRank array.
* nsd/tclmisc.c: Fixed bug with ns_info pid. [I can't code --kris]
* nsd: keepalive.c,nsmain.c,sched.c,serv.c: Re-ordered
shutdowns to ensure connection threads are stopped before
other shutdowns begin (e.g., sched, sockcallback).
* tcl8.3.1 replaces tcl8.3.0. README.AOLSERVER added to
tcl8.3.1 directory. Original copies of changed are named
*.orig.
* include/Makefile.global: Build environment now uses gcc
-shared -nostartfiles as the default LDSO.
* nsthread/thread.c: Added Ns_ThreadCreate2 with extra
flags argument used by Tcl_CreateThread to create a detached
thread.
2000-08-06 Scott S. Goodwin
* nsd/log.c: Segmentation fault was occuring when writing
to the log file because file pointer was being assigned to
incorrectly - it wasn't NULL and it wasn't a valid address
within processes memory. Fixed.
2000-08-06 Scott S. Goodwin
* nssock: You can now compile with BSAFE versions 4 and 5.
You'll need to specify the path to your BSAFE libaries and
the BSAFE version in the nssock/Makefile before compiling.
If you don't have BSAFE and want to compile without SSL at
all, edit the toplevel Makefile and take out all the "SSL=1"
text. The files changed were nssock/Makefile and
nssock/t_stdlib.c.
2000-08-02 Kris Rehberg
* Build process is a little more rule-oriented. The cleaning
rules "distclean" and "clobber" were removed. The Tcl
libraries are always distcleaned when "gmake clean" is
invoked. Rules that can be used as dependencies were made
for libnsthread and the Tcl libraries -- their names are
"libnsthread," "libtcl76," and "libtcl8x," respectively.
PREFIX is now used as the installation directory (along
with INST), so the more familiar "gmake install
PREFIX=/usr/local/aolserver" will work. Additionally,
gmaking in a subdirectory with dependencies now works.
* nsd/log.c: The sourge of modlog has been removed. All
code included with AOLserver that used Ns_ModLog now doesn't.
Many log statements are now hopefully more standardized.
This will be a continuing improvement over the next several
updates. I would like to use gcc's __FUNCTION__ macro but
it doesn't work on native compilers, but we may start using
__LINE__ and __FILE__ instead or replace Ns_Log with a
smart macro that takes care of all this stuff for us.
* nsd/tclmisc.c (NsTclInfoCmd): ns_info pid added to return
the process id.
2000-08-01 Kris Rehberg
* nsd/adp.c (Ns_AdpRequest): The enableexpire option was
putting an Expires header even if it already existed.
* nsd/return.c (Ns_ConnReturnNotice): Yikes, /face should
have been /font. No more fonts, colors, etc, on default
notice pages.
* nsd/tclsock.c (NsTclSockOpenCmd): Removed spurious Ns_Log
Notice from ns_sockopen.
* tcl/form.tcl (ns_getform): MSIE presents the wrong stuff
to the server when a multipart/formdata POST is redirected.
Workaround contributed by Joseph Bank.
* tcl/fastpath.tcl (_ns_dirlist): base href removed --
links are now fully-qualified.
* Makefile (install): include and lib dirs are now included
in binary distribution.
* tcl/http.tcl (_ns_http_gets): \n replaced by \r in all
but _ns_http_gets so that arbitrary headers get set correctly.
* tcl7.6/generic/tclPosixStr.c (Tcl_SignalMsg): Patch to
Tcl 7.6 for Red Hat on SPARC architectures. Contributed
by Mike Chan.
2000-07-13 Kris Rehberg
* scripts/nsd.tcl: nssslmodule names the nsssl/nsssle
binary's filename. nscp_port tells nscp what port to
listen.
* nssock: nssock.c renamed sock.c, SSL support has been
merged back with nssock so that both nsssl and nssock use
identical socket code.
* nsssl2: directory removed; nsssl is in the nssock directory
now.
2000-05-09 Kris Rehberg
* Re-added doc directory which has had the online docs
removed.
2000-05-02 Kris Rehberg
* Makefile, include/Makefile.global, include/Makefile.module,
nsexample/Makefile: Now uses NSHOME variable to locate
AOLserver. NSHOME is automatically figured out in the
top-level Makefile and all the lower Makefiles still use
relative directory paths. The intention of NSHOME is for
modules that do NOT live in the AOLserver source directory
tree. The nsexample/Makefile explains how this works.
* nsftp module added. Contributed by Eric O'Laughlen.
2000-04-12 Kris Rehberg
*** AOLserver 3.0 FINAL Released ***
|