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 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938
|
====
NEWS
====
- 1.4.82 - 2025-09-12
* [core] restrict request trailers to configured list
* [core] fix logic inversion in "toupper:" modifier
* [mod_redirect,mod_rewrite] ${url.authority.noport} token
* [cmake,mod_mbedtls] mbedx509 mbedcrypto order
* [mod_mbedtls] psa_crypto_init() for MBEDTLS_USE_PSA_CRYPTO (fixes #3288)
* [build] mod_mbedtls: use tfpsacrypto if found
* [ci] Bump actions/checkout from 4 to 5
* [core] avoid chunk mem reallocation on read/recv
- 1.4.81 - 2025-08-17
* [core] security: fix to reject disallowed trailers
- 1.4.80 - 2025-08-13
* [doc] move comments in systemd lighttpd.service
* [doc] refresh INSTALL
* [core] adjust malloc_top_pad after srv->srvconf.max_conns
* [build] remove references to libev; no longer used
* [multiple] stricter string init without trail '\0'
* workaround unsupported PR_CAP_AMBIENT_CLEAR_ALL on Cloud Run
* [TLS] 0-init plugin_ssl_ctx (fixes #3281)
* [autotools] LIGHTTPD_STATIC in config.h if static build
* [doc] systemd lighttpd.service SystemCallFilter
* [core] reject stray \r in chunked headers
* [tests] reject stray \r or \n in chunked headers
* [core] http_chunk_decode_append_error()
* [core] h1_chunked_400_bad_request()
* [mod_webdav] log trace for EACCES on PUT
* [build] check for C23 memset_explicit()
* [mod_ssi] set tmp file length if ssi exec fails
* [ci] set SHELL=/bin/sh for builds on alpine
* [mod_openssl] avoid BoringSSL/AWS-LC compiler warn
* [mod_openssl] AWS-LC limitations/compatibility (#3282)
* [ci] use actions/cache@v3 to cache Cygwin install
* [mod_openssl] use BoringSSL APIs w/ SSL_CREDENTIAL
* [mod_boringssl] cp mod_openssl.c mod_boringssl.c
* [build] build support for mod_boringssl
* [mod_boringssl] rename plugin init func
* [mod_boringssl] remove openssl/libressl code
* [mod_openssl] remove code specific to boringssl
* [mod_boringssl] ignore ssl.read-ahead
* [mod_boringssl] TLS_with_buffers_method() optim
* [mod_boringssl] init/enable CRYPTO_BUFFER_POOL
* [mod_boringssl] use SSL_get0_peer_certificates()
* [mod_boringssl] using AWS-LC does not build
* [mod_boringssl] code reuse
* [mod_boringssl] more CRYPTO_BUFFER code, less X509
* [mod_boringssl] elide excess time() calls
* [mod_boringssl] alt callbacks for client cert vfy
* [mod_boringssl] remove verify_callback (replaced)
* [ci] bump actions/cache from 3 to 4
* [ci] add package for SCONS "fullstatic" build
* [mod_boringssl] load CRLs into STACK_OF(X509_CRL)
* [mod_openssl] revert commits; re-support AWS-LC
* [mod_boringssl] skip BIO copy if pkey already DER
* [mod_boringssl] shared code for parsing PEM files
* [mod_boringssl] typo
* [mod_boringssl] wipe tmp_buf used to decode pkey
* [mod_boringssl] more generic pkey read from PEM
* [mod_wolfssl] more generic pkey read from PEM
* [mod_nss] more generic pkey read from PEM
* [core] http_chunk_decode_append_* code reuse
* [h2] h2_send_headers_hoff() to reduce stack use
* [core] stricter validate of trailers from backends
* [core] check Transfer-Encoding: chunked from backends
* [core] remove deprecated Expect-CT from enum
* [core] http_header_str_contains_token() comment
* [core] http_request_field_check_value() code reuse
* [core] http_request_field_check_name() code reuse
* [core] stricter validation of backend response
* [mod_magnet] stricter validation of request/response
* [h2] fill in hoff[] for ":status: XXX\r\n\r\n"
* [core] simplify hoff[] access when hoff[1] == 0
* [core] check HTTP/1.x field block fully consumed
* [core] unfold fields in http_header_parse_hoff()
* [h2] stricter validation of HTTP/2 trailers
* [core] validate BACKEND_PROXY headers end w/ CRLF
* [core] strict validate request headers end w/ CRLF
* [core] fix stat_cache inotify for files in rootdir
* [core] merge request trailers into request headers
* [mod_staticfile] reject pathinfo on static files
* [mod_setenv] warn if setenv.* incl invalid chars
* [tests] trailers
* [mod_proxy] sketch out streaming and trailers
* [mod_setenv] quiet coverity noise
* [core] disable mmap for < QNX 8.0.0
* [core] connections_pool_clear() unless in jobqueue
* [ci] run apt-get update on github ubuntu workflows
* [ci] explicit compiler install on github ubuntu workflows
* [mod_openssl] build against ancient openssl libs
* [TLS] SSL error handling improvements
* [mod_openssl] update lib version EOL warning
* [mod_openssl] workaround OpenSSL 3 SSL_sendfile bug
* [mod_wolfssl] check for WOLFSSL_SHUTDOWN_NOT_DONE
* [TLS] skip SSL_shutdown after non-recoverable error
* [mod_wolfssl] handle additional wolfssl socket err
* [mod_mbedtls] mbedtls 4.x removes MBEDTLS_DHM_C
* [mod_mbedtls] mbedtls 4.x PSA crypto handles RNG
* [mod_mbedtls] mbedtls 4.x removes RSA key exch
* [mod_mbedtls] mbedtls 4.x curve_info,list private
* [mod_mbedtls] mbedtls 4.x makes oid private
* [doc] command line -f - to read config from stdin (fixes #3286)
* [h2] attempt to detect HTTP/2 MadeYouReset DoS
- 1.4.79 - 2025-04-04
* [ci] update deps pkg names for lighttpd on Cygwin
* [ci] MSYS detection kludge in tests/LightyTest.pm
* [autotools] spelling Couldn't => Could not
* [mod_openssl] revert SSL_CTX default cert assign
* [mod_openssl] spelling in comment
* [TLS] issue trace if unable to check/refresh cert
* [ci] Cygwin Invoke-WebRequest -MaximumRetryCount 3
* [ci] Cygwin prefer D:\ drive
* [ci] Cygwin remove redundant call to setup.exe
* [core] set server.max-fds = 4096 if not specified
* [core] clear Linux ambient capabilities, if any
* [core] rename remove_pid_file() -> server_pid_file_remove()
* [core] retry pidfile open on Linux
* [doc] systemd lighttpd.service hardening
* [doc] move TLS config to separate file tls.conf
* [doc] systemd lighttpd.service hardening addition
* [doc] systemd lighttpd*.socket activation examples
* [core] default listen() backlog to SOMAXCONN
* [ci] fix meson build execution selection
- 1.4.78 - 2025-03-22
* [core] comment about _WIN32 security dangers
* [core] allow POST w/o Content-Length for HTTP/2 (#3273)
* [mod_ssi] fix #exec (fixes #3275)
* [multiple] address warnings for *unsigned* time_t
* [multiple] add missing includes
* [ls-hpack] adjust misplaced macro
* [doc] add Documentation key to lighttpd.service
* [mod_mbedtls] fix ssl.verifyclient.ca-crl-file
* [doc] create-mime.conf.pl warn missing mime.types
* [mod_wolfssl] limit default curves to avail curves
* [mod_mbedtls] limit default curves to avail curves
* [mod_openssl] fix preproc syntax error (fixes #3277)
* [autotools] adjust build with wolfssl crypto
* [mod_mbedtls] check/reload crt,pkey,crl each 64sec
* [mod_wolfssl] use wolfSSL_CTX_set_cert_cb()
* [mod_wolfssl] check/reload crt,pkey,crl each 64sec
* [mod_openssl] check/reload crt,pkey,crl each 64sec
* [mod_nss] check/reload crt,pkey,crl each 64sec
* [mod_gnutls] check/reload crt,pkey,crl each 64sec
* [TLS] remove hctx->tmp_buf use from acme-tls/1
* [mod_wolfssl] adjust module spelling in config err
* [core] _WIN32 cast size_t to DWORD for WSASend()
* [mod_mbedtls] mbedtls 4.x mbedtls_ssl_ticket_setup
* [mod_mbedtls] mbedtls 4.x removes DHE-RSA key exch
* [mod_accesslog] quiet unused var on Windows warning
* [ci] FreeBSD package mbedtls3
* [mod_openssl] fix type mismatch fn run w/ libressl
* [ci] macOS quiet brew install if pkg already inst
* [mod_gnutls] free kp if cert chain invalid
* [cmake] use execute_process()
* [core] _WIN32: cast fd to SOCKET for FD_SET,FD_CLR
* [mod_openssl] reload CRLs for openssl >= 1.1.0
* [multiple] check EAGAIN and EWOULDBLOCK, if diff
* [mod_dirlisting] Fix off-by-one error in date conversion for sorting on mtime
* [mod_dirlisting] Swap A(scending) and D(escending) values (A=0, D=1)
* [mod_dirlisting] fix JS date sorting (fixes #3279)
* [core] yield after HTTP/1.x response end
* [meson] set default buildtype=debugoptimized
* [ci] use meson build with cov-build for coverity
- 1.4.77 - 2025-01-10
* [build] packdist.sh tweaks of convenience commands
* [build] remove ancient distribute.sh.in script
* [core] add .torrent to mimetype.assign builtin defaults
* Revert "[core] special value for Linux POLLRDHUP on SPARC" (fixes #3251)
* [core] special value for Linux POLLRDHUP on SPARC (fixes #3251)
* [mod_ssi] rename ssi_val_tobool to ssi_val_to_bool
* [multiple] rename config_plugin_value_tobool
* [core] fix graceful shutdown timeout handling
* [core] preprocessor option to force crypto lib
* [cmake] fix some typos in pcre2 detection
* [tests] disambiguate regex test value from string
* [tests] fix deflate tests w/ Fedora zlib-ng-compat
* [core] port for QNX7.1/8.0
* [doc] remove ancient doc/scripts/spawn-php.sh
* [mod_deflate] limit zstd max window size to 8 MB
* [mod_accesslog] ignore format specifier w/o label
* [autotools] add pkgconf test for libdbi
* [mod_webdav] use SQLITE_PREPARE_PERSISTENT
* [mod_webdav] call sqlite3_initialize() at init
* [mod_webdav] disable double-quoted string literal
* [doc] remove ancient doc/scripts/spawn-php.sh
* [core] clarify error msg for plugin ver mismatch
* [mod_dirlisting] Add dark mode support
* [autotools] Prefer libpcre.pc to pcre-config
* [core] server.ip-transparent option on listen sock
* [core] reject HTTP/1.x request-line URI trail sp
* [core] remove http_request_parse_proto_loose()
* [core] strictly require CRLF on chunked header
* [core] strictly require CRLF on all chunked header
* [multiple] quiet coverity false positives
* [core] http_request_check_uri_strict optimization
* [h2] fix spurious connection resets with zero log_monotonic_secs
* [mod_dirlisting] fix ?json output; emit JSON list (fixes #3256)
* [mod_dirlisting] minor optimization for ?json
* [mod_auth] fix Digest nonce validation w/ nonce_secret
* [core] omit pcre2 JIT error trace if JIT not avail
* [doc] rename sample config lighttpd.annotated.conf
* [doc] simplify doc/config/lighttpd.conf entry
* [doc] use shorter https://wiki.lighttpd.net/ url
* [ci] ci dependency maintenance
* [meson] use pkg-config to find mbedtls 3.6
* [meson] update FORCE_* vars to select crypto lib
* [core] remove long-unused #ifdef USE_ALARM
* [core] avoid pedantic compiler warning (fixes #3262)
* [mod_auth] HTTP Digest and HTTP/2 extended CONNECT
* [mod_dirlisting] sort by exact value of size (fixes #3264)
* [mod_dirlisting] sort mtime using data-value (#3264)
* [ci] enable Solaris build (now less slow)
* [core] remove mimetype.assign from tests/lighttpd.conf
* [ci] adjust Solaris CI build
* [doc] update create-mime.conf.pl compression types
* [doc] update doc/config/conf.d/mime.conf
* [ci] adjust Solaris CI build
* [core] remove cast from ioctl() RNDGETENTCNT
* [core] update ls-hpack
* [core] light_isprint(), light_iscntrl()
* [core] perf: tighter loops for str encode,escape
* [mod_wstunnel] Sec-WebSocket-Protocol: binary
* [core] light_iscntrl_or_utf8_invalid_byte()
* [core] option: allow unescaped UTF-8 in errorlog (fixes #3268)
* [systemd] test config in ExecReload before signal
* [core] config parsing: detect invalid keys
* [TLS] allow list of Groups/Curves
* [mbedtls] reset crt_profile when reconfigured
* [mod_mbedtls] guard mbedtls use of RSA_PSK
* [mod_nss] add ssl.openssl.ssl-conf-cmd Ciphersuite
* [mod_wolfssl] typo
* [mod_nss] ver check for experimental groups/curves
* [mod_wolfssl] missing return
* [tests] do not test for exact compress zlib size
* [tests] consolidate test value comparison logic
* .github/workflows/dependabot.yml "github-actions"
* [ci] dependabot.yml name
* [ci] ci.yml pull_request types
* [ci] move file to .github/dependabot.yml
* [multiple] avoid sending body to GW_AUTHORIZER (fixes #3272)
* [mod_magnet] use local sys-dirent.h (portability)
* [mod_magnet] add code header to mod_magnet.c
* [TLS] skip SSL_CTX init if not in SOCKET condition
* [mod_openssl] ssl.ech-opts, load ECH keys
* [mod_openssl] ssl.non-ech-host opt to require ECH
* [mod_openssl] free mem from SSL_ech_get1_status()
* [mod_openssl] ECH: use new OSSL_ECHSTORE APIs
* [mod_openssl] ECH: refresh 4 year old patches
* [mod_openssl] ECH: kludge compat w/ OpenSSL ECH API
* [mod_openssl] omit OSSL_ECH_FOR_RETRY for ECH-only
* [mod_openssl] ECH: OSSL_ECH_FOR_RETRY for cur key
* [mod_openssl] ECH: boringssl support
* [TLS] modify TLS defaults to MinProtocol TLSv1.3
* [TLS] use TLSv1.3 groups X25519:P-256:P-384:X448
* [ci] macos: mariadb-connector-c is keg-only
* [mod_openssl] skip *.ech files beginning with '.'
* [mod_openssl] ECH: rename directives to ECH terms
* [core] server.error-handler-404 handles only 404
* [mod_magnet] quiet coverity false positive
* [mod_openssl] ECH: use same (debug) CGI var names
* [mod_openssl] ECH: reload keys only if modified
* [mod_openssl] ECH: remove kludge compat w/ OpenSSL ECH API
* [core] reset cond cache item URL if pathinfo
* [mod_openssl] use BUF_PTR_LEN when buffer not NULL
* [mod_openssl] ECH: code comments for ECH-only host
* [core] import xxHash v0.8.3
* [autoconf] update ax_prog_cc_for_build.m4
- 1.4.76 - 2024-04-12
* [core] add default to builtin mimetype.assign
* [core] add MPTCP support
* [core] disable MPTCP support by default
* [mod_expire] omit caching hdrs for 204 No Content
* [mod_staticfile] noinline cold func
* [core] GNU/Hurd preadv2() RWF_NOWAIT ENOTSUP
* [core] special value for Linux POLLRDHUP on SPARC
* [mod_openssl] define asn1 time w/ OPENSSL_NO_OCSP
* [h2] VU#421644 HTTP/2 CONTINUATION Flood
* [build] packdist.sh git archive; replace make dist
* [core] gw_network_backend_write_error() cold func
* [core] reduce syscalls in some backend connect
* [core] defer TCP_FIN propagate if connect()ing (fixes #3249)
* [ci] workaround some packaging issues in NetBSD 10
- 1.4.75 - 2024-03-13
* [mod_redirect] url.redirect-code = 308 new default
* [ls-hpack] more portability fixes for sys/queue.h
* [ls-hpack] update version to 2.3.3
* [TLS] default to stronger ciphers w/ PFS and AEAD
* [ci] apt-get install build-essential on Ubuntu
* [ci] /usr/local/opt keg-only pkgs on Darwin(macOS)
* [mod_authn_sasl] translate SASL_LOG_* to syslog
* [build] include src/compat/sys/queue.h in tarball
* [core] fdlog_openlog(), fdlog_closelog()
* [mod_accesslog] fdlog_openlog() if using syslog
* [cmake] fix LEMON_PATH with empty CMAKE_BUILD_TYPE
* [ci] limit github ci to specific branches
* [ci] prefer non-login shell for Cygwin CI build
* [ci] prefer dash for Cygwin and MSYS2 builds
* [mod_wstunnel] fix server.ping-interval w/ HTTP/2
* [mod_dirlisting] fix suffix display of '/' on file (fixes #3242)
* [mod_openssl] use internal asn1_time fn on 32-bit (fixes #3244)
* [mod_openssl] faster ASN1_TIME parse
* [mod_wolfssl] faster ASN1_TIME parse
* [doc] update TLS comment in sample lighttpd.conf
- 1.4.74 - 2024-02-19
* [mod_h2] send 500 if backend oversized resp hdrs
* [mod_h2] h2_send_1xx() lowercase field names (fixes #3233)
* [mod_dirlisting] smaller funcs to generate listing
* [mod_dirlisting] dir-listing.sort option (#3235)
* [mod_dirlisting] check for response stream bufmin
* [core] skip SIGUSR1 after clock jump if chroot'ed
* [mod_deflate] move bzip2 to end of priority list
* [mod_deflate] deflate.allowed-encodings default
* [core] cfg "if","elif","elsif","elseif","else if"
* [lemon] refresh LEMON parser to SQLite maint ver
* [core] add newlines to config parsing error trace
* [ls-hpack] sys/queue.h portability
* [scons] remove -std=gnu99 to use modern defaults
* [multiple] share code for upgrade: websocket
* [core] check for SOCK_CLOEXEC earlier in startup
* [autotools] report if ipv6 support disabled (fixes #3237)
* [core] simpler error page header
* [mod_status] simpler status page header
* [h2] quicker server graceful shutdown of idle h2
* [mod_openssl] kTLS: check for kernel tls offload
* [mod_gnutls] kTLS: check for kernel tls offload
* [core] quicker server graceful shutdown of websockets
* [build] -D_LARGEFILE64_SOURCE for musl sendfile64()
* [mod_setenv] code consistency
* [mod_expire] resp tag check
* [mod_expire] comment
* [core] use SF_NODISKIO with sendfile() on FreeBSD
* [core] chunk_file_pread_chunk()
* [mod_deflate] prefer reusable buffer to read file
* [core] reduce blocking I/O sending files to net
* [core] reduce network send file fallback path
* [core] try mmap() if not using sendfile()
* [mod_wolfssl] mod_wolfssl_write_err()
* [multiple] extend chunkqueue_peek_data() w/ nowait
* [core] preadv2 RWF_NOWAIT EOPNOTSUPP on tmpfs (?!)
* [build] type error in configure.ac sendfile probe (fixes #3238)
* [core] update ls-hpack
* [ls-hpack] sys/queue.h STAILQ_FOREACH portability
* [core] chunk_open_file_chunk() in chunk.h
* [multiple] use chunk_open_file_chunk()
* [core] remove chunkqueue_open_file_chunk()
* [core] use sendfile() with iovecs where available
* [scons] remove CheckFunc() incorrect header usage
* [core] spelling in comment in network_write.c
* [cmake] check for sendfile64 only on Linux
* [core] quiet compiler warning for NDEBUG redefined
* [autoconf] config test for mbedtls needs mbedx509
* [mod_h2] add con to job queue when wr alloc used
* [mod_h2] use different flag for disk I/O busy
* [crypto] use evp api for truncated sha-2 with libressl
* [mod_expire] smaller options parse func
* [mod_expire] check modification time to cur time
* [tests] t/test_mod_expire.c
* [tests] add mod_expire tests to tests/request.t
* [core] log trace with priority for syslog() (#3239)
* [core] avoid preprocessor use inside macros
* [core] log_pri() and log_pri_multiline() (#3239)
* [build] remove checks for sendfile64
* [tests] clean up memleak on test exit
* [build] quiet compiler warnings in LEMON parser
* [core] simplify connection_handle_write() err case
* [core] gw_host_get shared code
* [doc] update doc/config/conf.d/mime.conf
* [core] combine *BSD cond handling 0-len FILE_CHUNK
* [meson] portability improvements
* [core] DragonflyBSD portability
* [tests] quiet compiler warning
* [ci] enable github CI
* [ci] adjust .github/workflows/meson.yml
* [ci] quiet msys-clang32 stdcall compiler warning
* [ci] #undef _XOPEN_SOURCE on Solaris
* [core] fix recent solaris typo; compile failure
* [ci] _WIN32 portability
* [cmake,meson] skip tests/* under native Windows
* [tests] support platforms without cp -n
* [ci] cmake did not detect inet_pton on x86 _WIN32
* [ci] use latest GCC and clang
* [ci] adjust .github/workflows/meson.yml
* [ci] further simplify
* [ci] adjust NetBSD,OpenBSD tests .github/workflows
* [ci] add Windows-VisualStudio to .github/workflows
* [ci] add Solaris (disabled) to .github/workflows
* [ci] add Windows-MSYS2 to .github/workflows
* [ci] rename .github/workflows/meson.yml to pr.yml
* [tests] adjust shell syntax in tests/prepare.sh
* [tests] test_mod stub funcs for static builds
* [ci] adjust Windows tests in .github/workflows
* [mod_authn_dbi,mod_vhostdb_dbi] check for <dbi.h>
* [ci] tailor scripts/ci-build.sh for FreeBSD
* [ci] use set -e in .github/workflows run commands
* [debug] debug.log-timeouts for all timeout logging
* [debug] use log_debug_multiline() (#3239)
* [debug] use log_debug() instead of log_error() (#3239)
* [multiple] use log_warn() for config warnings (#3239)
* [core] use log_warn(),log_notice(),log_info() (fixes #3239)
* [ls-hpack] compat include of <sys/queue.h>
* [tests] skip deflate tests if zlib not available
* [core] ignore cc -Wcpp warning for <sys/cdefs.h>
* [ci] mechanism to disable wolfssl in ci-build.sh
* [ci] use Alpine Linux VMs to test additional arch
* [ci] skip 32-bit builds on Windows; save resources
* [tests] skip shutdown(SHUT_WR) in tests on s390x
* [ci] add s390x arch
* [meson] replace deprecated meson.build_root() use
* [ci] x86_64 and x86 featureful builds on ubuntu
* [ci] add x86_64 cmake ASAN build on ubuntu
* [ci] ci-build.sh add some NO_* options
* [ci] add Windows-Cygwin build
* [ci] fail fast if x86 build fails on alpine
* [ci] reduce some builds while maintaining coverage
* [ci] remove config not actually running x86 ubuntu
* [ci] more featureful build on macOS
* [doc] cert-staple.sh check staple newer than cert
* [ci] pr.yml format consistency
* [tests] remove repeated file in prepare.sh cp
* [wolfssl] renamed SSL_OP_NO_TICKET
* [ci] more featureful build on NetBSD
* [mod_authn_gssapi] ifndef GSS_KRB5_NT_PRINCIPAL_NAME
* [build] check 'lua54' before other lua variants
* [ci] OpenBSD CFLAGS LDFLAGS PKG_CONFIG_LIBDIR
* [ci] more featureful build on OpenBSD
* [ci] use bash on DragonflyBSD instead of csh
* [ci] special-cases for running tests under MSYS2
* [ci] basic build and run tests under MSYS2
* [tests] remove stray comment from test_mod_expire
* [ci] ci-build.sh NO_DBI option
* [ci] ci-build.sh NO_UUID option
* [ci] ci-build.sh NO_GNUTLS option
* [ci] ci-build.sh NO_MYSQL option
* [core] _WIN32 define PROT_WRITE to PAGE_READWRITE
* [mod_authn_sasl] use HOSTNAME for fqdn on _WIN32
* [ci] more featureful build on MSYS2
* [mod_authn_sasl] fix typo
* [ci] use cygwin test repos for latest packages
* [ci] vmactions usesh: true
* [ci] fix cmake generator path for MSVC
* [mod_wstunnel] read and discard HTTP/1.1 req body
* [core] use log_notice() for conn limit notice (#3239)
* [core] gw_upgrade_policy() shared code
* [mod_wstunnel] handle large kernel socket recv buf
* [core] stat_cache.c replace assert w/ error codes
* [core] remove dev assert in http_chunk_append_mem
* [core] ck_static_assert()
* [core] remove asserts from gw_status_get_counter()
* [core] configparser.y combine assert, remove debug
* [core] remove assert from sock_addr.c
* [mod_fastcgi] check env w/ cond instead of assert
* [core] shared code chunkqueue_close_tempchunk()
* [core] buffer.c combine asserts
* [core] array require nonnull for insert,replace
* [core] li_tohex*() no longer adds '\0'
* [core] accept 65536 in config for ushort values
* [ci] add missing intermediate dep for Cygwin
* [core] clarify configfile parse comment
* [core] fix crash with invalid lighttpd.conf syntax
* [core] lighttpd.conf detect,err if consecutive str
* [mod_magnet] lighty.r.req_body.unspecified_len
* [mod_proxy] handle HTTP/1.0 unspecified req len
* [core] unset Upgrade if downgrade HTTP/1.1 to 1.0
* [mod_magnet] interface to downgrade HTTP/1.1 to 1.0
* [mod_magnet] expand guidance in error message (#3240)
* [debug] use log_debug() instead of log_error() (#3239)
* [mod_wstunnel] use log_warn(),log_notice(),log_info() (#3239)
* [multiple] gw_backend_error_trace() (fixes #1406)
* [mod_webdav] webdav_uuid_v4() to supplant libuuid (#1056)
* [build] remove libuuid dependency (fixes #1056)
* [mod_wstunnel] quiet coverity warning
* [doc] fix typos in doc/config/lighttpd.conf
* [mod_h2] send 502 if backend oversized resp hdrs
- 1.4.73 - 2023-10-30
* [core] add .mkv to mimetype.assign builtin defaults
* [core] warn if out-of-range value for config short
* [mod_openssl] set default curves for ossl < 1.1.0
* [mod_h2] parse HEADERS flags sooner
* [mod_h2] check send window before defer frame rd
* [mod_h2] send GOAWAY to excessive request flood
* [mod_h2] h2_parse_headers_frame() adjust args
* [mod_h2] h2_recv_headers() parse trailers earlier
* [mod_h2] send GOAWAY to excessive request flood
* [mod_h2] discard new streams after GOAWAY sent
* [mod_h2] h2_discard_headers() to HPACK-decode hdrs
* [core] parse entire server.http-parseopts list
* [mod_wstunnel] Sec-WebSocket-Protocol only if req hdr
* [mod_h2] disable h2proto if mod_h2 was not found
* [core] omit dlopen trace for mod_h2, mod_deflate
* [mod_h2] defer input parsing if large output queue
* [mod_h2] defer frame handling if stream pend close
* [mod_h2] detect and log HTTP/2 rapid reset attack
* [core] honor MBEDTLS_USE_PSA_CRYPTO for hash,rand
* [mod_mbedtls] honor MBEDTLS_USE_PSA_CRYPTO for rand
* [core] comment out li_rand_bytes() (unused)
* [mod_mbedtls] handle mbedtls 3.x partial write
* [mod_h2] detect and log HTTP/2 rapid reset attack
* [mod_h2] detect and log HTTP/2 rapid reset attack
* [mod_openssl] warn if openssl version < 3.0.0
* [mod_openssl] include openssl/hmac.h for boringssl
- 1.4.72 - 2023-10-06
* [core] save config read from stdin across restart
* [core] warn if daemonize w/o absolute config path
* [mod_dirlisting] send Link w/ external css or js
* [mod_dirlisting] fix missing header/readme (fixes #3211)
* [core] ignore coverity warning
* [core] ignore coverity warning
* [core] reqpool.c:request_set_con()
* [core] request_init_data() minor optim
* [core] request.c:request_pool_{push,pop}
* Revert "[core] h2 http_request_parse_header() tweak"
* [core] enable config conditions on HTTP/2 PRI
* [mod_webdav] extend symlink support (non-standard)
* [mod_extforward] fix extforward.params config opt
* [mod_authn_ldap] fix config auth.require group=... (fixes #3216)
* [core] set CON_STATE_READ_POST for HTTP/2 reqbody
* [core] chunkqueue_read_squash() returns cq->first
* [core] get body from cq at offset in chunk
* [doc] update stbuehler address
* [tests] use sha crypt for fastcgi auth environment tests
* [tests] drop des-crypt and crypt-md5 auth tests - deprecated/not available on various platforms
* [core] code size: xxhash XXH_NO_STREAM
* [core] fdevent_sh_exec()
* [mod_dirlisting] http_dirlist_auto_layout_early_hints()
* [mod_dirlisting] send 103 w/ external css or js
* [mod_dirlisting] json output for /<path>/?json
* [mod_dirlisting] include ETag with cached result
* [core] import xxHash v0.8.2
* [tests] move %ENV modifications into forked child
* [mod_ssi] init hctx->wq to init alt cq tempdirs
* [tests] initialize request_st cqs in tests
* [core] chunkqueue_env_tmpdir()
* [core] config_set_defaults() reduce code size
* [tests] use current perl interpreter path for env.PERL in lighttpd.conf
* [mod_deflate] code reuse to create temp file
* [core] skip pwrite() to temp file if 0 len write
* [core] store cq->tempdirs in stack var
* [core] remove tempdirs ptr from struct chunkqueue
* [core] treat upload_temp_file_size=0 as default sz
* [core] hide unused var on _WIN32 compiler warning
* [mod_nss] nspr include prefix portability(attempt)
* [CI] scripts/ci-build.sh arg consistency;add meson
* [CI] remove wolfssl from autobuild; let rest build
* [CI] remove NSS from autobuild; let rest build
* [CI] remove mbedtls from autobuild; let rest build
* [mod_nss] nspr include prefix portability(attempt)
* [CI] ci-build.sh: adjust meson; add pam, maxminddb
* [CI] ci-build.sh: fix typo --with-pam
* [CI] remove maxminddb from autobuild,cmake; let rest build
* [CI] ci-build.sh re-enable additional dependencies
* [core] optimize for non-Range requests
* [core] allow larger number of Ranges if sorted
* [tests] test_http_range.c
* [core] attempt to quiet coverity warning
* [build] packdist.sh now produces .md for www.l.n
* [core] disable keep-alive if HTTP/1.1 CL and TE
* [core] reject empty Content-Length for HTTP/1.x
* [core] reject uppercase in unrecognized HTTP/2 hdr
* [core] warn dynamic mods listed before staticfile
* [core] dev-only internal request state debugging
* [core] short-circuit connection_state_machine_loop
* [core] reset connection-level state at con level
* [core] optim for non-throttle writes
* [core] remove connection_handle_write HTTP/1.x opt
* [core] yield writing large HTTP/1.x on slow device
* [core] tighten h2_process_streams()
* [core] h2_process_streams() simpler loop to retire
* [core] http_response_physical_pathinfo()
* [core] http_response_prepare() tweaks
* [meson] Fix 'getoption' meson typo
* [core] use different getxattr() prototype on MacOS
* [mod_deflate] do not compress any 1xx status
* [core] http_response_304(), http_response_412()
* [core] add config option to reject pathinfo
* [core] expand mimetype.assign builtin defaults
* [core] mark some cold routines noinline
* [core] add config opt to send GOAWAY for bad auth
* [core] show_features() show inotify or kqueue
* [core] stat_cache_refresh_entry()
* [core] splaytree: use all 32-bits of hash value
* [core] splaytree: compare keys directly
* [core] splaytree: splaytree_splay_nonnull()
* [core] stat_cache: stat_cache_sptree_ndx()
* [multiple] use splaytree_splay_nonnull()
* [h2] comment struct h2con h2_sid member is unused
* [mod_openssl] disable DH auto if DHParameters set
* [mod_openssl] replace deprecated openssl funcs
* [core] splaytree: splaytree_delete_splayed_node()
* [multiple] use splaytree_delete_splayed_node()
* [core] splaytree: splaytree_insert_splayed()
* [multiple] use splaytree_insert_splayed()
* [core] _WIN32 fs_win32_readlinkUTF8() (#3223)
* [mod_magnet] lighty.c.readlink() (fixes #3223)
* [core] add config option to reject pathinfo
* [mod_dirlisting] send 103 Early Hints only for h2+
* [mod_webdav] reject non-identity Content-Encoding
* [scons] include mod_h2 in static builds (fixes #3224)
* [core] http_request_validate_pseudohdrs comment
* [core] comment out redundant code
* [core] reset addtl state b4 dynamic error handler
* [core] reject Connection hdr in h2 as soon as seen
* [mod_h2] process headers for debug
* [mod_h2] comments and behavior for h2spec tests
* [multiple] mark func __attribute_returns_nonnull__
* [core] expand mimetype.assign builtin defaults
* [core] warn if IPv6 socket not supported
* [mod_simple_vhost,mod_evhost] check host strict
* [mod_simple_vhost,mod_evhost] minor code transform
* [mod_magnet] quiet 32-bit compiler warning
- 1.4.71 - 2023-05-27
* [mod_h2] HTTP/2 separate module; no longer builtin
* [mod_magnet] fix static build using autoconf (fixes #3203)
* [core] fix new use of posix_spawn with some glibc (fixes #3201)
* [core] _WIN32 quiet compiler warnings 32-bit build
* [core] check getaddrinfo EAI_ADDRFAMILY w/ glibc
* [core] quiet lemon.c clang C2x warnings
* [core] compile w/o posix_spawn() on iOS
* [core] fix crash due to missing initialization (fixes #3207)
* [core] request_init() separate static func
* [multiple] remove some unused/redundant includes
* [core] server.modules s/mod_compress/mod_deflate/
* [core] preproc consistency #pragma GCC diagnostic
* [core] update ls-hpack
* [core] use empty value in srvconf.config_touched
* [core] provide mimetype.assign default if unset
* [mod_vhostdb_mysql] MySQL missing mysql_get_socket (fixes #3208)
* [core] clarify comment
- 1.4.70 - 2023-05-10
* [autotools] chmod u+w configparser.c for lemon
* [build] skip build separate modules for built-ins
* [core] cache format secs for high prec errlog
* [mod_maxminddb] check remote IP each request (fixes #3191)
* [multiple] store ptrs to remote addr in request_st (#3192)
* [mod_extforward] manage remote addr per request (fixes #3192)
* [core] use C23 memset_explicit() were available
* [mod_accesslog] %{mask}a to mask/anonymize IP
* [core] cast to fix compiler error in prior commit
* [scons] fix static build to include builtin_mods
* [core] h2_recv_headers() tweak to reduce code size
* [core] h2_get_stream_req() code reuse
* [core] h2: remove obsolete comment
* [core] h2 mark :status matching lsxpack enum value
* [core] h2 match w/ lsxpack pseudo-header key only
* [core] limit server.max-request-field-size <=65535
* [core] permit shell HERE docs to specify config
* [core] add members to http_header_parse_ctx
* [mod_extforward] typo in comment
* [mod_openssl] SSL_CTX_set_options() takes uint64_t
* [core] reorder enum handler_t
* [core] connection_handle_request_start_state()
* [core] check chunk file open early in mmap viewadj (fixes #3197)
* [core] h2 http_request_parse_header() tweak
* [mod_extforward] recognize unix domain sockets (fixes #3198)
* [mod_magnet] support ./configure --with-lua=luajit (#3199)
* [core] remove instance of devel debug code
* [core] quiet coverity warning
* [core] connection_check_upgrade() h2_upgrade_h2c()
* [core] CON_STATE_REQUEST_END transient state
* [core] expose request_set_state() for internal use
* [core] h2_send_goaway_graceful()
* [core] h2_check_timeout()
* [core] h2_process_streams()
* [core] h2_recv_reqbody()
* [core] HTTP_VERSION_3 enum value
* [core] r->x union w/ structs for r->x.{h1}
* [core] r->x union w/ structs for r->x.{h1,h2}
* [core] http_dispatch[] tables for HTTP proto vers
* [core] hxcon "base class" for h2con
* [mod_h2] HTTP/2 module: mod_h2
* [multiple] optimistic client read only if HTTP/1.x
* [core] _WIN32 port compatibility headers
* [core] _WIN32 impl of setenv(), unsetenv()
* [multiple] _WIN32 protect code w/ HAVE_SYSLOG_H
* [multiple] _WIN32 protect code w/ HAVE_FORK
* [core] _WIN32 protect code w/ HAVE_IPV6
* [multiple] _WIN32 protect code w/ HAVE_SYS_UN_H
* [multiple] _WIN32 stat() compat sys-stat.h
* [core] _WIN32 uid, gid compat
* [core] _WIN32 signal-related compat
* [multiple] _WIN32 misc compat
* [core] _WIN32 minimal glob() impl for configfile.c
* [core] _WIN32 use gmtime_s(), localtime_s()
* [mod_dirlisting] _WIN32 Find*File()
* [multiple] _WIN32 Find*File() sys-dirent.h
* [core] _WIN32 sys-unistd.h to wrap <unistd.h>
* [core] _WIN32 sys-wait.h to wrap <sys/wait.h>
* [core] _WIN32 implementation of socketpair()
* [core] _WIN32 fdevent_createprocess()
* [core] _WIN32 socket-compat, filesystem-compat
* [core] _WIN32 check WSAGetLastError() w/ sockets
* [mod_cgi] _WIN32 use socketpair instead of pipe
* [core] _WIN32 clock ticks and time
* [core] _WIN32 alternative fdarray for Windows
* [core] _WIN32 basic (very limited) getopt() impl
* [tests] _WIN32 fcgi-responder.c, scgi-responder.c
* [core] _WIN32 rename __WIN32 to _WIN32
* [core] _WIN32 casts to quiet some VS warnings
* [tests] _WIN32 use TMPDIR (or TEMP) for test files
* [build] _WIN32 mingw build
* [multiple] __MINGW32__ missing strftime() "%F %T"
* [tests] _WIN32 adjustments in LightyTest.pm
* [core] _WIN32 reset std streams at startup
* [core] _WIN32 log_perror() with GetLastError()
* [core] _WIN32 log_serror() for WSAGetLastError()
* [core] _WIN32 use log_serror() for WSAGetLastError
* [core] _WIN32 use rand_s() to init pseudo RNG
* [core] _WIN32 fdevent_kill()
* [multiple] _WIN32 use fdevent_kill()
* [core] _WIN32 stat(), '/' and '\\' adjustments
* [tests] _WIN32 cygwin test support
* [mod_deflate] _WIN32 disable deflate.cache-dir
* [mod_dirlisting] _WIN32 close files before unlink
* [tests] _WIN32 close files before unlink
* [core] _WIN32 close chunk temp files before unlink
* [core] _WIN32 prefer WSAPoll()
* [core] _WIN32 lighttpd winsvc
* [core] _WIN32 custom fs funcs on UTF-8 paths
* [core] _WIN32 scream UTF-8 at MS (does not matter)
* [cmake] _WIN32 build more mods with BUILD_STATIC
* [cmake] _WIN32 remove older build config
* [core] _WIN32 use WSASend for writev-equiv on sock
* [meson] static build option under cygwin
* [build] _WIN32 __declspec(dllexport) *_plugin_init
* [build] _WIN32 shared dll build (autotools, cmake)
* [tests] _WIN32 skip time-sensitive tests during CI
* [core] use posix_spawn() where available
* [mod_cgi] comment about caching target dirname
* [meson] update comment with build flags
* [meson] check FORCE_{WOLFSSL,MBEDTLS}_CRYPTO
* [mod_auth] warn if auth.require path never matches
* [core] h1.[ch] collect some HTTP/1.x specific code
* [core] noinline connection shutdown, reset
* [TLS] $SERVER["socket"] inherit global ssl.engine
* [mod_proxy] match "map-host-response" "-" w/ Host
* [core] noinline stat_cache_sptree_find()
* [core] rename http_kv funcs, reorder http_versions
* [mod_cgi] move fd count to cgi_create_env()
* [mod_cgi] reduce code size
* [mod_cgi] do not issue trace if CGI closes input
* [mod_cgi] cgi_create_err() cold err handling func
* [core] always decr fd count upon socket close()
* [mod_mbedtls] check MBEDTLS_DEBUG_C for debug func
* [core] return pid_t from fdevent_waitpid()
* [core] _WIN32 compile fix
* [meson] build fix for builtin_mods
* [core] move some shared funcs to call from modules
* [build] move some files to call from modules
* [mod_cgi] doubly-linked list of CGI pids
* [mod_cgi] reuse fd already opened to /dev/null
* [mod_cgi] reset upload_temp_file_size in CGI close
* [tests] copy confs for running tests in alt dir
* [scons] avoid dup mod_h2 module in static build
* [autoconf] include fs_win32.h in hdrs for dpkg
* [build] ifdef _WIN32 before include fs_win32.h
* [mod_openssl] SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE
* [mod_dirlisting] _WIN32 fix fstat() after close()
* [core] quiet coverity warning
* [mod_openssl] FreeBSD: check "kern.ipc.tls.enable"
* [core] fix HTTP/2 use of http_response_loop()
* [mod_openssl] check kernel support for KTLS
* [core] posix_spawnattr_setcwd_np() on QNX
* [core] posix_spawn_file_actions_addclosefrom_np()
* [core] Mac OS POSIX_SPAWN_CLOEXEC_DEFAULT
* [core] modify use of posix_spawnattr_setsigdefault
* [mod_dirlisting] _WIN32 compile fix
* [core] fdevent_load_file() check if limit exceeded
* [tests] tests/prepare.sh comment w/ alt build root
* [core] treat mod_h2 as built-in module (for now)
- 1.4.69 - 2023-02-10
* [meson] remove t/test_mod_evasive.c
* [doc] remove references to removed modules
* [cmake] add doc/CMakeLists.txt to dist tar ball (#3181)
* [meson] add meson.build to install man pages (fixes #3181)
* [meson] fix typo in sbindir
* [core] update ls-hpack
* [cmake] remove -I/usr/include/mysql for mysql.h (#3181)
* [cmake] add -DWITH_LUA_VERSION= to specify lua ver (#3181)
* [cmake] use mysql_config cflags and ldflags (#3181)
* [cmake] do not link with fam if inotify or kqueue
* [TLS] fix spurious warning trace (fixes #3182)
* [multiple] codespell: correct spelling in comments
* [multiple] spelling: github action check-spelling
* [lemon] upgrade LEMON parser to SQLite maint ver
* [build] modify arguments to updated LEMON parser
* [core] build configparser.y w/ -Werror workarounds
* [lemon] fix -Wpendantic warnings for bad casts
* [core] avoid accept4() on ARM unless detected
* [cmake] use CMAKE_CURRENT_SOURCE_DIR
* [cmake] SERVER_SRC variable
* [multiple] quiet some coverity false positives
* [cmake] use LIGHTTPD_MODULES_DIR as relative path (fixes #3185)
* [core] add missed h2 state transition (fixes #3186)
* [core] remove cygwin O_NOFOLLOW workaround
* [multiple] clang -Wstrict-prototypes for C2x
* [core] reset SIGUSR1 to SIG_DFL before execve()
* [mod_webdav] modify OPTIONS response if no db cfg
* [mod_webdav] MOD_WEBDAV_BUILD_MINIMAL preproc opt
* [core] pass fdn to fdevent_sched_close,_unregister
* [core] disable sendfile() on TARGET_OS_IPHONE
* [core] iOS does not provide netinet/tcp_fsm.h
* [core] move headers to help isolate fdevent layer
* [core] avoid select() FD_ISSET repeat on active fds
* [core] gw_backend more precise backend env alloc
* [core] fdevent_poll_poll avoid potential race
* [tests] quickly exit tests/request.t if GET / fail
* [tests] adjust outdated opt in tests/lighttpd.conf
* [autotools] add mod_evhost to static build list
* [autotools] skip modules build if LIGHTTPD_STATIC
* [mod_cgi] cygwin supports CGI file I/O redirection
* [mod_dirlisting] use fdevent_rename() wrapper
* [core] path-info in debug trace may be unset
* [core] reset path-info for cgi.local-redir
* [autotools] fix typo in -I used --with-pcre2=/path (fixes #3190)
* [mod_webdav] send 409 Conflict if PUT miss parent
* [core] fix HTTP/2 HEADERS frame parsing bug
* [core] remove extra HTTP/2 HEADERS frame len check
- 1.4.68 - 2023-01-03
* [cmake] compile lemon with native cc for x-compile
* [cmake] install man pages with CMake
* [cmake] let CMake handle the version number
* [cmake] set LIGHTTPD_VERSION_ID per version
* [meson] set LIGHTTPD_VERSION_ID per version
* [meson] add missing meson_version
* [meson] use feature options
* [meson] turn pcre into a combo option
* [meson] simplify header checking
* [meson] add wrapdb instructions
* [lighttpd-angel] waitpid after HUP before restart
* [core] use inotify_init() if missing IN_* defines
* [core] keep sockets w/ server.graceful-restart-bg
* [TLS] ssl.openssl.ssl-conf-cmd "DHParameters"
* [mod_wolfssl] check for cert must_staple
* [mod_mbedtls] config renegotiation;not recommended
* [mod_alias] fix typo in config error message
* [mod_proxy,mod_cgi] fix dummy Sec-WebSocket-Key
* [mod_wolfssl] cast to fix compile error
* [TLS] try DER format if reading PEM format fails
* [mod_openssl] libressl 3.6.0 ASN1_TIME_cmp_time_t
* [mod_deflate] skip cache for Cache-Control: private,no-store
* [mod_webdav] minor cleanups and adjustments
* [core] http_response_body_clear clears body flags
* [core] ignore server.max-worker = 1
* [doc/scripts/cert-staple.sh] *BSD date portability
* [doc/scripts/cert-staple.sh] short-circuit checks
* [doc/scripts/cert-staple.sh] add copyright header
* [meson] fix wrong array
* [meson] replace most has_function calls with loop
* [meson] use non string true/false
* [meson] use files()
* [meson] remove use of non-existent win32 xgetopt.c
* [meson] update comment for opts w/ type 'feature'
* [core] fix crash for invalid lighttpd.conf (fixes #3175)
* [build] do not check for pthread.h
* [cmake] use find_package() to include the PkgConfig module
* [cmake] use GNUInstallDirs to set defaults for several directories
* [cmake] use FindOpenSSL cmake module to search for OpenSSL
* [cmake] remove wolfssl code that would already be handled by CMake
* [cmake] improve searching for PostgreSQL
* [cmake] remove needless arguments from xconfig macro
* [cmake] prefer libpcre.pc over pcre-config
* [cmake] use CMake's provided FindZLIB
* [cmake] use CMake's provided FindBZip2
* [cmake] remove path hints where CMake searches by default
* [cmake] remove use of non-existent win32 xgetopt.c
* [mod_openssl] mod_openssl_write_err() shared code
* [mod_openssl] use SSL_sendfile() if KTLS available
* [mod_gnutls] use gnutls_record_send_file() if KTLS
* [TLS] handle '+' on ssl-conf-cmd "Options"
* [TLS] upgrade default cipher list to stronger set
* [TLS] simplify TLS config; remove deprecated opts
* [multiple] remove deprecated modules
* [mod_magnet] remove lighty.r.req_attr["response.*"]
* [core] remove libev fdevent option (ignore)
* [core] _WIN32 impl of plugins_load()
* [core] check for built-in plugins before dlopen
* [core] build core modules into lighttpd executable
* [core] reduce M_TOP_PAD to default on small system
* [multiple] mark mod_*_plugin_init() funcs cold
* [core] check ifndef NDEBUG before setting NDEBUG
* [core] server_main_setup_signals() separate func
* [core] server_main_setup_workers() separate func
* [core] server_main_setup() variable scoping
* [core] ck_calloc() ck_malloc() ck_realloc_u32()
* [multiple] employ ck_realloc_u32() shared code
* [core] mark gw_proc_free() cold
* [core] use data_config_list for config
* [build] omit unused vector.[ch] from build
* [mod_wstunnel] store value in tmp before byteswap
* [core] log_buffer_vsprintf tweaks
* [multiple] employ ck_calloc, ck_malloc shared code
* [core] create non-inlined vector_resize()
* [lighttpd-angel] remove unused includes
* [core] chunk.c tweaks
* [core] config_check_cond_nocache_eval() tweak
* [mod_openssl] CLOSE_NOTIFY handling with KTLS
* [mod_wolfssl] match mod_openssl CLOSE_NOTIFY
* [core] ignore config dir-listing.* if not enabled
* [doc] default lighttpd.conf: omit server.use-ipv6
* [lighttpd-angel] simplify
* [tests] disable auth.delay-invalid-creds for tests
* [mod_deflate] "deflate" should include zlib header
* [tests] fix "deflate" tests for added zlib header
* [tests] disable Nagle on client, remove sleeps
* [core] save ptr to avoid static analyzer realloc warn
* [core] wrap server_main_setup_workers w/ HAVE_FORK
* [core] temporarily disable O_NOFOLLOW on Cygwin
- 1.4.67 - 2022-09-17
* Update comment about TCP_INFO on OpenBSD
* [mod_ajp13] fix crash with bad response headers (fixes #3170)
* [core] handle RDHUP when collecting chunked body
* [core] tweak streaming request body to backends
* [core] handle ENOSPC with pwritev() (#3171)
* [core] manually calculate off_t max (fixes #3171)
* [autoconf] force large file support (#3171)
* [multiple] quiet coverity warnings using casts
* [meson] add license keyword to project declaration
- 1.4.66 - 2022-08-07
* [core] h2: optim: send window update in 16k units
* [mod_magnet] reset for http-response-send-file
* [multiple] fix json encoding
* [core] buffer_append_bs_escaped_json()
* [autoconf] update ax_prog_cc_for_build.m4
* [doc] add libdeflate to INSTALL
* [mod_webdav] cold func if xml reqbody w/o db conf
* [mod_webdav] check reqbody Content-Type is XML
* [doc] more consistent use of vars in examples
* [core] do not load indexfile, dirlisting if unused
* [mod_dirlisting] send ETag, Cache-Control w/ cache
* [mod_openssl] compile compat w/ openssl < 1.1.0
* [mod_webdav] webdav_reqbody_type_xml() fixes
* [core] clarify server.username = "root" error msg
* [mod_wolfssl] compat with older wolfssl versions
* [core] fix li_base64_dec() on whitespace
* [core] perf tweak buffer_eq_icase_ssn()
* [mod_deflate] fix use of libdeflate for files>128k (fixes #3161)
* [core] fix buffer_substr_replace() extend (fixes #3160)
* [mod_webdav] build with Android NDK
* [core] check r->http_status before handling Range
* [core] preprocessor option to force crypto lib
* [core] fix SIGUSR1 graceful restart w/ TLS (fixes #3164)
* [mod_authn_gssapi] warn if no confidentiality flag (fixes #3163)
* [mod_wstunnel] fix crash with bad hybivers (fixes #3165)
* [core] perf: adjust max h2 stream send increment
* [core] fix HTTP/2 downloads >= 4GiB (fixes #3166)
- 1.4.65 - 2022-06-07
* [build] meson: fix typo in variable name
* [build] autoconf: report if building with zstd
* [build] meson -Dlua_version=... to specify lua ver
* [core] avoid CCRandomGenerateBytes on MacOS <10.12 (fixes #3140)
* [core] use diff var name w/ CCRandomGenerateBytes (fixes #3141)
* [core] parse conf cmds with SHELL or /bin/sh
* [core] fix HMAC with openssl 3.0
* [mod_webdav] no COPYFILE_CLONE_FORCE on OSX <10.12 (fixes #3142)
* [mod_deflate] fix to return 304 with If-None-Match (fixes #3143)
* [core] Illumos epoll incompatible w/ lighttpd impl
* [core] feature flag to allow Range w/ HTTP/1.0
* [mod_mbedtls] set usekeysize for mbedtls 3.2.0+
* [mod_deflate] collect mmap code
* [mod_deflate] prototype using libdeflate w/ mmap
* [mod_deflate] --with-libdeflate to use libdeflate
* [mod_deflate] mark input bytes const
* [core] sys-setjmp.[ch]
* [mod_magnet] check lighty.result.content b4 setjmp
* [core] include guard consistency in sys-time.h
* [core] network_write_file_chunk_remap separate fn
* [multiple] use new sys_setjmp_eval3() interface
* [multiple] pedantic chunk.c checks for 0-len chunk
* [multiple] shared code for struct chunk and mmap
* [mod_deflate] use pread if available
* [mod_deflate] improve loop compressing file chunk
* [core] prep server_tag at startup for h2 resp hdr
* [mod_magnet] defer req_env init unless needed
* [mod_magnet] reset after error attaching content
* [mod_magnet] lua_tointegerx() avoids raising error
* [mod_mbedtls] use newer mbedtls 3.2.0+ interfaces
* [mod_magnet] adjust hot path for more inlining
* [mod_magnet] collect chk for magnet lua_State init
* [mod_magnet] use type returned from lua_getfield()
* [core] chunk_file_pread() to wrap pread()
* [core] disable keep-alive if forcing HTTP/1.0 resp
* [mod_magnet] use lua_getextraspace() to store r
* [core] fall back to getauxval(AT_RANDOM), if avail
* [mod_magnet] keep message handler on stack
* [doc] update external links
* [mod_magnet] pass lighty table index, defer pops
* [mod_magnet] clear and reuse script-env table
* [mod_magnet] clear stack when reloading script
* [mod_magnet] use lua_isnoneornil() in interfaces
* [mod_magnet] fix lighty.c.cookie_tokens()
* [mod_magnet] fix lighty.c.urldec_query()
* [mod_magnet] remove duplicated NULL checks
* [mod_magnet] adjust magnet_lighty_result_get()
* [mod_magnet] magnet_tmpbuf_acquire(),release()
* [mod_magnet] lighty.c.quotedenc(),dec() funcs
* [mod_magnet] fix header,content legacy table clear
* [mod_cgi] cgi.local-redir request_reset thru fnptr
* [core] isolate plugins_*() funcs to main server
* [mod_wolfssl] wolfssl v5.0.0 defines DH_set0_pqg()
* [mod_auth] save letter-case diff in require config
* [mod_magnet] magnet_push_quoted_string shared code
* [mod_magnet] lighty.c.header_tokens convenience fn
* [core] fill in un.sun_path after accept() (fixes #3147)
* [mod_extforward] adjust trust check for HTTP/2
* [mod_proxy] adjust handling of legacy X-* headers
* [core] permit env w/ blank value (fix regression)
* [TLS] consistent debug.log-ssl-noise config type
* [mod_magnet] allow removal of req_env elt via nil
* [core] compiler workarounds for very old gcc,glibc
* [mod_mbedtls] use newer mbedtls 3.2.0+ interfaces
* [mod_ssi] check http_chunk_transfer_cqlen for err
* [core] chunkqueue_steal() handle unexpected 0 len
* [core] discard DATA from REFUSED_STREAM at h2 init
* [multiple] WebSockets over HTTP/2 (fixes #3151)
* [multiple] immed connect to backend for streaming
* [core] ensure socket ready before checking connect
* [core] reduce trace on Upgrade backend connection
* [core] adjust when TCP_CORK used on TLS connection
* [mod_cgi] disable input optim if might Upgrade
* [mod_cgi] immed start CGI if Upgrade
* [mod_wolfssl] wolfssl v5.0.0 adds ASN1_TIME_diff()
* [mod_openssl] libressl v3.5.0 adds ASN1_TIME_diff
* [TLS] warn if leaf cert read is inactive/expired
* [core] stricter conformance w/ upcoming HTTP/2 rev
* [build] -D_DEFAULT_SOURCE consistency in builds
* [mod_extforward] support addtl IPv6 syntax w/ "[]"
* [core] build fix for cygwin and lmingw
* [core] short-circuit earlier parsing h2 trailers
* [core] reformat h2.h for cleaner enum additions
* [core] consolidate trace for log-state-handling
* [core] request_config bitmasks for smaller struct
* [core] prefix (=^), suffix (=$) config conditions (fixes #3153)
* [core] tighten config parsing loop
* [core] convert simple config cond regex to pre/sfx
* [tests] able to run tests when built w/o pcre
* [core] allow redirect,rewrite ext subst w/o pcre
* [mod_sockproxy] reset http vers, avoid rare crash (fixes #3152)
* [core] HTTP/2 PRIORITY_UPDATE frame (experimental)
* [core] send HTTP/2 SETTINGS_NO_RFC7540_PRIORITIES
* [core] stricter check of HTTP/2 GOAWAY frame size
* [mod_mbedtls] use newer mbedtls 3.2.0+ interfaces
* [mod_webdav] opt for partial PUT via copy/rename
* [core] quiet compiler warning
* [multiple] recognize HTTP QUERY method
* [multiple] limit scope of socket config options
* [core] fix config typo reading large int from str
* [core] h2 prio sort urgency, incr, then stream id
* [core] send Priority resp hdr w/ .css, .js re-prio
* [multiple] reset http vers, avoid rare crash (fixes #3152)
* [core] delay response to http auth invalid creds
* [core] connection_state_machine_h2 only if con->h2
* [core] default server.max-keep-alive-requests 1000
* [mod_magnet] set script env in func first upvalue
* [mod_magnet] rewrite lighty.r as table of userdata
* [mod_status] con->h2 instead of r->http_version
* [mod_setenv] cleanup user-provided hdr sloppiness
* [core] remove func decls duplicated in plugin.h
* [mod_status] fix counting of HTTP/2 bytes written
* [mod_magnet] no local server port on unix domain
* [mod_extforward] unix domain socket pedantic chks
* [core] sketch support for abstract sockets
* [mod_magnet] magnet_plugin_stats_table() fn
* [mod_magnet] magnet_script_setup_global_state() fn
* [mod_magnet] lighty.server.* table w/ new function
* [mod_accesslog] do not double-count hdr len in %I
* [mod_magnet] reduce magnet_env_get_id() scanning
* [mod_magnet] tighten magnet_env_get_buffer_by_id()
* [mod_status] reusable code for r->state strings
* [core] reusable code for r->state strings
* [mod_magnet] expose r->state to lua scripts
* [mod_magnet] tighten magnet_env_set()
* [mod_magnet] lighty.r.req_item[] accessors
* [mod_magnet] expose r->keep_alive to lua scripts
* [mod_magnet] lighty.c.hrtime high-resolution time
* [mod_magnet] lighty.r.resp_body.get
* [mod_magnet] deprecate r.req_attr["response.*]
* [mod_magnet] separate funcs for uri_path_raw
* [mod_magnet] lighty.c.stat high precision time
* [mod_magnet] format multiline err traceback
* [mod_magnet] adjust p->conf.stage checks
* [mod_magnet] further isolate legacy API result tbl
* [core] buffer_append_char() convenience func
* [mod_accesslog] accesslog.escaping = "json"
* [multiple] use buffer_append_char()
* [mod_accesslog] remove begin/end tags from %{}t
* [core] fix configparser_simplify_regex() comment
* [multiple] simplify bytes_in/bytes_out accounting
* [mod_accesslog] reorder fields in switch()
* [core] remove unused srv->con_* counters
* [mod_magnet] read-only access to r->server_name
* [core] buffer_append_bs_escaped()
* [core] buffer_append_string_c_escaped ASCII optim
* [mod_magnet] backspace-escape encode/decode
* [mod_status] display HTTP/2 control stream w/ reqs
* [multiple] use preferred syntax for Content-Type
* [doc] regenerate doc/config/conf.d/mime.conf
* [multiple] rename status_counter -> plugin_stats
* [core] feature-flag server.metrics-high-precision
* [mod_magnet] quiet coverity false positive
* [mod_wolfssl] compile fix for OpenWRT
* [mod_webdav] If-None-Match: * on non-existent
* [mod_magnet] r.req_body .collect .get .set .add
* [mod_cgi] fix detection of failing error handler (fixes #3157)
* [core] "url-invalid-utf8-reject" normalization opt
* [mod_magnet] skip req body collect warn if modsec3
* [build] update descriptions to remove old lua ver
* [core] use current dir if context->basedir blank
* [multiple] application/javascript text/javascript
* [core] reset internal flags after graceful restart
* [TLS] inherit ssl.engine from global scope
* [core] avoid server.use-ipv6 warning after SIGUSR1
* [mod_webdav] alt handling PROPFIND on collection
* [mod_mbedtls] fix crt chain construction logic
* [core] h2 SETTINGS_INITIAL_WINDOW_SIZE 64k (fixes #3089)
* [core] increase session window size to 256k
* [core] h2: avoid sending small WINDOW_UPDATE frames
* [core] h2: avoid sending tiny DATA frames
* [core] update cached tables with Priority header
* [tests] test stubs for http_header.c and http_kv.c
- 1.4.64 - 2022-01-19
* [core] fix trace issued for loading mod_auth (fixes #3121)
* [meson] need -lrt with glibc < 2.17 (fixes #3120)
* [core] adjust time jump detection (fixes #3123)
* [core] make setrlimit() warn, not fatal
* [core] add remote IP to some error msgs (fixes #3122)
* [mod_webdav] If-None-Match on non-existent entity
* [build] check getxattr before attr_get and -lattr
* [doc] SELinux: setsebool -P httpd_setrlimit on
* [build] create sha512sum file with release
* [build] CI builds now use make -j 2
* [core] http_response_send_file() takes const path
* [core] use ETag response header to check cachable
* [core] add more const to stat_cache_update_entry()
* [multiple] remove r->physical.etag
* [mod_magnet] interface to http_response_send_file
* [build] add headers for sendfile() detect on MacOS
* [core] http_response_write_prepare optimization
* [core] define static_assert for uClibc (fixes #3127)
* [build] -Wno-implicit-fallthrough for ls-hpack
* [core] ignore pcre2 "bad JIT option" warning
* [build] pcre2: use pkg-config before pcre2-config
* [core] http_response_has_error_handler()
* [core] consolidate request restart loop check
* [core] defer retrieving Last-Modified until needed
* [mod_dirlisting] fix logic inversion in cache
* [core] mark expect cond in http_response_send_file
* [core] connection_handle_read_state() tweak
* [core] connection_state_machine_loop() tweaks
* [core] connection_state_machine_h2() tweaks
* [core] quiet coverity noise
* [core] use lower limit for max-fds if !setrlimit
* [build] do not check for prctl; HAVE_PRCTL unused
* [core] server.core-files support on FreeBSD (fixes #3128)
* [mod_extforward] support longer PROXY v2 TLV vec
* [mod_webdav] detect truncated copy_file_range()
* [mod_webdav] copy_file_range() new in FreeBSD 13
* [mod_webdav] copy_file_range() new in FreeBSD 13
* [build] feature consistency between build types
* [build] cmake build now defaults to C11
* [core] CCRandomGenerateBytes() for rand on macOS (fixes #3129)
* [multiple] remove long-deprecated modules
* [build] default --with-pcre2 unless --with-pcre
* [core] "server.graceful-shutdown-timeout" => 8
* [build] adjust trace for regex-conditionals
* [build] update tests/SConscript
* [core] errno_t detection on Illumos
* [build] cmake build now defaults to C11
* [build] meson: find pcre2 w/o pkg-config
* [core] define __EXTENSIONS__ on Illumos
* [build] cmake,meson socket libs for win32, Illumos (fixes #3130)
* [core] hide bsd_accept_filter code on OpenBSD (fixes #3131)
* [core] errno_t and rsize_t detection on Illumos
* [mod_webdav] copy acceleration
* [mod_webdav] define HAVE_RENAMEAT2 earlier
* [build] meson misdetects mempcpy on some platforms
* [build] cmake: skip "-Wl,-export-dynamic" Illumos
* [build] adjust .gitignore for macOS
* [build] meson crypt and dl detection on *BSD (fixes #3133)
* [core] /dev/null is a symlink on Illumos (fixes #3132)
* [core] server.core-files support for solaris (fixes #3135)
* [build] feature consistency between build types
* [build] Haiku build fix (fixes #3136)
* [lemon] silence coverity warnings
* [cmake] raise minimum version to 3.7
* [cmake] add address/undefined sanitize compile options
* [asan tests] fix memory leaks
* [array] use speaking names for array "fn" vtables for better debugging experience
* [ci] add cmake-asan build type
* [core] buffer_copy_string() use "" if s is NULL
* [mod_authn_gssapi] code reuse: fdevent_mkostemp()
* [mod_authn_gssapi] reduce KRB5CCNAME mem alloc
* [build] adjust help strings for pcre2 default
* [core] (const char *) for srvconf.modules_dir
* [multiple] remove buffer_init_string()
* [multiple] remove buffer_init_buffer()
* [mod_extforward] fix out-of-bounds (OOB) write (fixes #3134)
* [build] use -fstack-protector-strong w/ extra warn
* [build] collect Sun-specific headers and funcs
* [build] collect Sun-specific headers and funcs
* [build] rm redundant check for -lnetwork on Haiku
* [build] check headers before some funcs
* [core] allow LISTEN_PID to be ppid if TRACEME (fixes #3137)
* [core] allow tests/tmp/bind.conf override (#3137)
* [mod_webdav] no sys/ioctl.h on _WIN32
* [tests] _WIN32 adjustments in LightyTest.pm
* [tests] revert _WIN32 adjustments in LightyTest.pm
* [mod_gnutls] lift size check out of DN loop
* [mod_mbedtls] lift size check out of DN loop
* [mbedtls] save (mbedtls_ssl_config *) in hctx
* [multiple] permit UTF-8 in SSL_CLIENT_S_DN_*
* [mod_openssl] do not esc UTF-8 in cert subject
* [mod_mbedtls] reconstruct SSL_CLIENT_S_DN
* [mod_mbedtls] changes to build with mbedtls 3.0.0
* [mod_mbedtls] remove use of out_left in mbedtls 3
* [mod_mbedtls] mbedtls_ssl_conf_groups for 3.1.0
- 1.4.63 - 2021-12-04
* [core] import xxHash v0.8.1
* [core] isolate use of sys/filio.h
* [core] fix reqpool mem corruption in 1.4.62 (fixes #3118)
- 1.4.62 - 2021-12-01
* [mod_alias] fix use-after-free bug (fixes #3114)
* [core] clean up fdlog_st and log_error_st decls
* [core] 'struct log_error_st' -> 'log_error_st'
* [core] remove redundant asserts
* [core] explicitly include sys/cdefs.h
* [tests] t/test_mod_ssi
* [core] fdevent_socket_nb_cloexec_init()
* [core] fdevent_impl.c separate from fdevent.c
* [core] merge fdevent impls into fdevent_impl.c
* [core] fdevent_fdnode.c separate from fdevent.c
* [core] close backend socket fds more quickly
* [core] use TCP_CORK w/ TLS if cq length > 16k
* [core] warn if dynamic modules before mod_auth
* [mod_cgi] check fd-to-cgi not -1 before close
* [core] libev EV_ERROR conflicts with kqueue
* [tests] disable test_mod_ssi in cmake (temporary)
* [tests] disable test_mod_ssi in cmake (temporary)
* [tests] reenable test_mod_ssi in cmake
* [core] run plugin cleanup hooks in reverse
* [core] fix removal of server.pid-file when testing (fixes #3115)
* [doc] improve sample configs
* [doc] expand vhosts.template
* [doc] improve sample configs
* [core] use ck_assert() in vector.[ch]
* [tests] mod_ssi tests moved to src/t/test_mod_ssi
* [mod_ssi] 0-init ssi_val_t in ssi_ctx_t
* [mod_ssi] fix ancient bugs; replace cond parser
* [mod_ssi] remove mod_ssi parser generator file
* [mod_ssi] merge mod_ssi_expr.c into mod_ssi.c
* [core] uint_fast32_t tweaks
* [core] better asm for binary num to ascii string
* [tests] t/test_mod now runs all t/test_mod_*.c
* [tests] t/test_mod_alias.c
* [tests] remove unused mod from tests/lighttpd.conf
* [mod_evasive] smaller funcs for testing
* [tests] t/test_mod_evasive.c
* [mod_evasive] update comment to add references
* [tests] combine tests into test_common.c
* [core] get_http_method_key() tweak
* [mod_dirlisting] check for disabled cache at start
* [core] buffer_append_string_encoded_json()
* [mod_dirlisting] (experimental) json (disabled)
* [tests] t/test_mod needs -ldl on Debian
* [core] save config regex captures only if used
* [core] save pcre result state in config_pcre_match
* [core] use stack w/ pcre_exec unless save captures
* [core] extend pcre_keyvalue_ctx to pass more state
* [core] pcre2 support (--with-pcre2)
* [core] allocate one fewer cond_match_t, if needed
* [core] allocate pcre output vector on demand
* [build] configure.ac with AC_PROG_CC_C99 (fixes #3116)
* [build] CI builds now use pcre2 (upgrade pcre)
* [core] fix compiler warning in 32-bit build
* [build] fix CMake pcre2 detection
* [mod_auth] RFC7616 HTTP Digest username* userhash
* [mod_dirlisting] fix bug not showing HEADER.txt
* [tests] t/test_mod_ssi adjust to follow symlinks
* [mod_auth] quiet coverity warning
* [doc] refresh/update dependency lists in doc
* [core] fix crash when using lighttpd -1 with pipes (fixes #3117)
- 1.4.61 - 2021-10-28
* [core] define __BEGIN_DECLS, __END_DECLS if needed
* [core] Y2038: error log high-precision timestamps
* [multiple] __attribute_nonnull__ now takes params
* [core] bounds check while url-decoding
* [mod_magnet] prefer lua_newuserdatauv() w/ lua 5.4
* [core] earlier macOS need define for errno_t (fixes #3107)
* [tests] force POSIX::WNOHANG() autovivification (fixes #3110)
* [mod_dirlisting] sort "../" to top (fixes #3109)
* [tests] force Fcntl::F_SETFD() autovivification (#3110)
* [core] avoid repeated typedef for fdlog_st
* [doc] update INSTALL
* [mod_extforward] keep remote IP thru request reset
* [core] fix HTTP/2 upload > 64k w/ max-request-size (fixes #3108)
* [mod_auth] fix Basic auth passwd cache (fixes #3112)
* [mod_ajp13,mod_fastcgi] comment: no response body
* [mod_webdav] ignore PROPFIND Depth for files
* [core] add comment to ck_memeq_const_time()
* [core] accept up to 5 digit port num in host cond
* [core] expose chunkqueue_remove_empty_chunks()
* [core] short-circuit if response body recv w/ hdrs (fixes #3111)
* [core] resched HTTP/2 streams w/ pending data (#3111)
* [core] separate func for gw_authorizer_ok()
* [core] make ck_memeq_const_time() more generic (#3112)
* [mod_auth] revert adjustment to auth passwd cache (#3112)
* [core] thwart h2c smuggling when Upgrade enabled
* [core] separate funcs to check for valid chars
* [core] thwart h2 request tunnelling
* [core] clear shared log buffer after writes
* [mod_nss] quiet trace for PR_END_OF_FILE_ERROR
* [core] allow debug.log-state-handling in condition
* [core] combine more dup header processing code
* [mod_ajp13,mod_fastcgi] check resp w/ content len
* [mod_proxy] Length Req if proxy forcing HTTP/1.0
* [core] restart dead proc on connect error if local
* [mod_ajp13,mod_fastcgi] recv_parse smaller funcs
* [multiple] warn deprecated mods slated for removal
* [core] remove redundant checks in same context
* [core] tighten chunkqueue_steal* code; better asm
* [build] check for preadv(), pwritev()
* [core] pwritev w/ chunkqueue_steal_with_tempfiles
* [core] tighten chunkqueue_mark_written; better asm
* [doc] uncomment mod_auth load in conf.d/auth.conf
* [core] tighten chunkqueue_small_resp_optim()
* [core] chunkqueue_small_resp_optim if resp < 16k
* [mod_auth] clear crypt() output if len >= 13
* [multiple] add assert after malloc in two spots
* [core] add HTTP/2 check resp finished w/ empty cq (#3111)
* [core] chunkqueue_small_resp_optim() comment
- 1.4.60 - 2021-10-03
* [meson] add with_zstd to meson_options.txt
* [mod_magnet] reject stat() of empty string (fixes #3064)
* [mod_magnet] avoid infinite loop in atpanic (fixes #3065)
* [mod_magnet] do not call luaL_error outside pcall (#3065)
* [core] 101 upgrade fails if Content-Length incl (fixes #3063)
* [mod_gnutls,mod_mbedtls] recog common cipherstring
* [tests] remove stray option in test lighttpd.conf
* [mod_auth] close HTTP/2 connection after bad pass
* [build] fix SCons pkg-config err handling (fixes #3066)
* [core] inline funcs to decode h2 framing nums (fixes #3067)
* [build] use -pipe with gcc and clang
* [mod_mbedtls] preproc wrap ssl_parse_client_hello
* [build] augment configure.ac msgs to remove FAM (#3068)
* [core] allow '*' in "*:80" socket spec
* [core] rename local var
* [core] mark config registration funcs cold
* [core] fix -fsanitize=undefined pedantic warning (fixes #3069)
* [core] algo_hmac.[ch] wrapper (portability)
* [mod_secdownload] use algo_hmac.[ch]
* [mod_secdownload] use http_auth_const_time_memeq()
* [autoconf] add ajp13 to build msgs
* [mod_auth] send 401 if digest algo not supported
* [mod_deflate] do not cache 206 Partial Content
* [core] chunkqueue_append_cq_range()
* [core] http_range.[ch] RFC 7233 Range handling
* [core] RFC 7233 Range handling for non-streaming
* [TLS] fix crash for (broken) nested $SERVER[] cfg
* [core] ignore server.event-handler = "libev"
* [mod_openssl] use newer openssl 3.0.0 interfaces
* [core] quiet coverity warning
* [core] http_cgi_local_redir() rename
* [core] http_cgi.[ch] CGI interfaces (RFC 3875)
* [core] save parsed listen addrs at startup
* [core] http_cgi_encode_varname()
* [core] add some ifdefs in algo_hmac.c
* [core] use epoll_create1() if available
* [core] adjust stat_cache_get_entry() conditions
* [core] _WIN32 impl of read-only mmap(), munmap()
* [core] remove stream.[ch]
* [multiple] use binary '|' to reconstruct ts
* [core] check EAGAIN if unix socket connect() delay
* [multiple] prefer monotonic time for internal use
* [core] optimize buffer_urldecode_path()
* [mod_openssl] skip cert chain build if self-issued
* [mod_nss] avoid NSS crash w/ config file error
* [multiple] prefer monotonic time for internal use
* [core] http_response_handle_cachable() optim
* [core] fix chunkqueue_small_resp_optim partial rd
* [core] defer pcre_compile until after config parse
* [multiple] PCRE w/ PCRE_STUDY_JIT_COMPILE (fixes #2361)
* [mod_dirlisting, mod_trigger_b4_dl] use keyvalue
* [multiple] add attrs from gcc -Wsuggest-attribute=
* [mod_gnutls] quiet clang warning
* [core] http_response_physical_path_error()
* [multiple] buffer_has_slash_suffix()
* [core] modify path in-place checking for path-info
* [multiple] optimize primitives, buffer_extend()
* [multiple] do not clear physical.path if finished
* [core] http_kv.[ch] perf tuning
* [core] remove bad prototype from algo_splaytree.h
* [multiple] mark addtl funcs attr returns_nonnull
* [TLS] init STEK even if time is 1970 (fixes #3075)
* [core] restart if large large clock jump detected (#3075)
* [core] copy string and len directly from tmp_buf
* [core] move special case for Content-Type CGI hdr
* [mod_ssi] inline some buffers in ssi plugin_data
* [core] use monotonic secs for piped loggers start
* [mod_cml] use cached time from log_epoch_secs
* [mod_dirlisting] limit buffer use for large dirs
* [multiple] http_header APIs to reduce str copies
* [mod_userdir] use stat_cache_path_isdir()
* [mod_indexfile] reduce copying of base path
* [TLS] https_add_ssl_client_verify_err()
* [TLS] use stack for SSL_CLIENT_S_DN_* tag
* [core] buffer_append_strftime() perf annotations
* [mod_userdir] use 2-element cache
* [mod_magnet] use http_chunk_* APIs
* [mod_accesslog] reformat numeric timestamp
* [mod_accesslog] strftime %z for numeric timestamp
* [mod_accesslog] reformat numeric timestamp code
* [multiple] strftime %F and %T
* [mod_trigger_b4_dl] gdbm_reorganize once a day
* [mod_status] double-buffer large output to tmpfile
* [mod_ssi] shared code to wrap strftime()
* [mod_ssi] use intermediate chunkqueue to aggregate
* [multiple] pass len when copying constant strings
* [core] short-circuit encoding if nothing to encode
* [build] check for mempcpy()
* [core] buffer_append_* aggregates
* [core] config_vars_init()
* [multiple] use buffer_append_* aggregates
* [core] define __attribute_nonnull__
* [core] mark select buffer.[ch] funcs attr nonnull
* [core] mark select http_kv.[ch] funcs attr nonnull
* [core] mark some chunk.h funcs attr cold
* [core] remove an excess check
* [core] mark debug path unlikely
* [core] ignore empty headers unless pseudo-headers
* [multiple] buffer_copy_path_len2() aggregate
* [mod_dirlisting] process dir in subrequest handler
* [mod_dirlisting] restructure and keep state
* [mod_dirlisting] read dir in pieces; less blocking
* [mod_dirlisting] upper limit on parallel dirlist
* [mod_dirlisting] parse query string in javascript
* [mod_dirlisting] dir-listing.cache option
* [mod_webdav] webdav_log_xml_response()
* [mod_webdav] limit mem use under extreme condition
* [core] vector.h tweaks
* [mod_proxy] send HTTP/1.0 to backend if no Host
* [build] fix zstd option in meson (fixes #3076)
* [multiple] more reuse of http_date_time_to_str()
* [TLS] rename ssl.verifyclient.ca-*file options
* [mod_openssl] issue error trace if < openssl 1.1.1
* [mod_webdav] always define webdav_mmap_file_chunk
* [mod_dirlisting] ignore error if include file fail
* [multiple] quiet coverity warnings
* [scons] link lighttpd with pcre for fullstatic
* [scons] link lighttpd with pcre for static build
* [core] exit 0 upon shutdown if no connections open
* [mod_nss] define TLSv1_3 as bitflag
* [core] update ls-hpack
* [core] discard some HTTP/2 DATA after response (fixes #3078)
* [mod_expires,mod_webdav] fix truncated date string
* [mod_expire] accept time labels without plural 's'
* [mod_webdav] accept alt syntax in webdav.opts
* [core] recognize "enabled"/"disabled" for bool
* [mod_expire] check for default if mime not found
* [core] move timegm() impl inline in sys-time.h
* [mod_expire] send only Cache-Control to >=HTTP/1.1
* [mod_webdav] quiet pedantic compiler warning
* [core] reuse code to parse backend response
* [core] consistent inclusion of sys-time.h
* [mod_authn_file] wipe password/digest after use
* [TLS] ALPN h2 policy
* [core] tolerate dup array config values if match
* [multiple] static file optimization; reuse cache
* [mod_staticfile] move cold paths to separate func
* [build] --with-nss add test for /usr/include/nspr4
* [core] li_base64_decode similar to li_to_base64
* [core] li_base64_decode mark cold code path
* [core] li_to_base64 alt code to add padding
* [core] buffer_append_base64_encode_opt()
* [core] base64_charset enum supports only 2 tables
* [core] consolidate overflow checks in li_to_base64
* [mod_auth] include unistd.h for crypt() on Mac OS
* [core] tighten code in request_check_hostname()
* [core] merge http_response_send_file 0-size case
* [mod_extforward] shared mod_extforward_bad_request
* [core] http_response_send_file() mark cold paths
* [core] improve HTTP/2 behavior w/ max-request-size
* [tests] disable secdownload HMAC tests for NSS
* [core] check for Upgrade before h2 upgrade check
* [core] remove buffer_is_equal_right_len()
* [core] buffer_is_equal_string -> buffer_eq_slen
* [core] mark cold paths in http_response_config
* [core] http_response_prepare() OPTIONS *, CONNECT
* [core] mark some likely hot paths (better asm)
* [core] simplify buffer_path_simplify()
* [core] remove excess assertions in buffer_commit()
* [core] quiet coverity noise
* [mod_auth] include unistd.h for crypt() on *nix
* [cmake] improve cmake detection of timegm
* [cmake] update src/config.h.cmake
* [core] adjust r->http_host ptr caching
* [core] merge uri_raw and uri_clean hooks
* [core] reorder hook enum for better mem locality
* [core] remove redundant check for max_conns
* [multiple] mark con->srv_socket a const ptr
* [core] accept in network_server_handle_fdevent()
* [mod_*_dbi] fix sqlite3_dbdir spelling in comments
* [core] remove HANDLER_UNSET enum value
* [core] add option to read config file from stdin
* [mod_flv_streaming] check range before sending FLV
* [mod_magnet] use http_chunk_append_file_ref_range
* [core] range chk http_chunk_append_file_ref_range
* [core] remove some (now) unused http_chunk APIs
* [core] document error edge case for HTTP/1.0
* [core] fix kill workers and shutdown by signal
* [core] store int* ptr to common gw status counters
* [tests] quite coverity warning in test_request.c
* [core] tighter OS event poll loops (better asm)
* [core] omit fdevent select() code if poll() avail
* [core] adjust some array code (better asm)
* [core] base64 encode round-up for required space
* [core] base64 encode w/ reduced data dependencies
* [core] merge base64 encoding to li_base64_enc()
* [core] li_base64_dec() on 4 bytes at a time
* [core] load padding char from base64_table
* [core] remove size maint in algo_splaytree
* [core] remove excess counts from print config
* [core] consolidate config printing code
* [core] move data_{array,integer,string} to array.c
* [core] define __attribute_unused__ if needed
* [core] ck.[ch] - C11 Annex K wrappers
* [multiple] use thread-safe strerror where avail
* [multiple] move const time cmp funcs to ck.[ch]
* [multiple] rename safe_memclear() -> ck_memzero()
* [multiple] http_auth_digest_hex2bin -> li_hex2bin
* [mod_auth,mod_vhostdb] move helper funcs to mods
* [mod_auth*] rename http_auth.* -> mod_auth_api.*
* [mod_vhostdb*] rename http_vhostdb->mod_vhostdb_api
* [core] comment out ck_getenv_s() (unused)
* [mod_secdownload] include algo_hmac.c in mod
* [core] make insert_dup an optional array method
* [core] return entry from array_insert_data_at_pos
* [core] network_write optimizations
* [core] network_write prefer writev() over write()
* [core] connection_handle_read_state mark hot case
* [core] buffer_commit() optim; better asm
* [TLS] write_cq_ssl defer remove_finished_chunks
* [core] compare entire "/bin/sh" "-c" after execve
* [core] reduce repeated work in http_cgi_headers()
* [core] code reuse with array_match_value_prefix()
* [build] adjustments for autotools on Mac OS X
* [build] autoupdate; still autoconf 2.60 compatible
* [build] MacOS linker compat
* [core] http_header_hkey_get() perf (better asm)
* [TLS] reset stek_rotate_ts if clock moves backward
* [core] sock_addr_from_buffer_hints_numeric unused
* [core] tweaks writing response header (better asm)
* [core] adjust buffer use for hdr name for lshpack
* [core] comment out unused part of http_etag_remix
* [core] inline fam_dir_entry buffer 'name' member
* [multiple] reduce redundant NULL buffer checks
* [core] calculate backend host gw_hash at startup
* [core] gw_host_get() comment out devel debugging
* [core] request_config_reset()
* [mod_magnet] inline name and etag buffers in cache
* [mod_magnet] sync script load w/ stat_cache
* [core] clear etag in stat_cache_get_entry_open()
* [mod_auth] merge some repeated code; code reuse
* [core] add iovec wrappers to sys-crypto-md.h
* [core] li_base64_dec()
* [multiple] use <algo>_iov() digest funcs
* [mod_auth] mod_auth_digest_get()
* [mod_auth] mod_auth_algorithm_parse() w/ algo len
* [mod_authn_dbi] copy strings before escaping
* [mod_auth] refactor mod_auth_check_digest()
* [mod_auth] refactor mod_auth_check_basic()
* [build] look for memcpy and define HAVE_MEMCPY
* [core] buffer_path_simplify() quick(er) path
* [core] reduce memcmp in http_request_parse_header
* [build] look for port.h on Solaris, not sys/port.h
* [core] buffer_realloc() using power-2 realloc
* [core] lowercase r->http_host, r->uri.authority
* [multiple] buffer_copy_string_len_lc()
* [mod_magnet] cache script objects at config time
* [core] move backtrace and assert macros to ck.[ch]
* [core] allocate initial request pool w/ srv->conns
* [mod_extforward] inline some more data structures
* [mod_access] remove excess trace
* [multiple] reduce use of BUFFER_INTLEN_PTR
* [multiple] inline struct in con->dst_addr_buf
* [core] reset large path buffers from long URLs
* [core] construct file path after docroot hook
* [core] avoid inlining buffer_eq_icase_ssn()
* [core] order gw_proc members for packing and usage
* [core] order gw_host members for packing and usage
* [mod_proxy] proxy_response_headers load v earlier
* [core] proxy_create_env() tweaks
* [core] write_all() simpler loop; better asm
* [core] http_date_time_append() convenience macro
* [core] reduce excess cc inlining in http_chunk.c
* [core] const buffer * in config_check_cond_nocache
* [core] parse $HTTP["remote-ip"] CIDR mask at start
* [core] reduce $HTTP["host"] compare str scanning
* [multiple] http_method_buf()
* [core] config_check_cond_nocache() xor return code
* [core] refactor config_check_cond_nocache() flow
* [mod_deflate] use deflate.allowed-encodings order
* [mod_deflate] use ZSTD_c_strategy w/ compress lvl
* [mod_deflate] deflate.params per-encoder params
* [mod_deflate] use brotli quality 5 by default
* [mod_deflate] improve compress.*->deflate.* remap
* [mod_auth] detect and skip BWS (bad whitespace)
* [core] better trace if TLS received on clear port
* [core] replace strncasecmp w/ buffer_eq_icase_ssn
* [tests] use generated date in HTTP If conditionals
* [tests] update t/test_request.c
* [tests] mv tests from request.t to test_request.c
* [tests] t/test_mod_staticfile
* [tests] combine *.t using tests/lighttpd.conf
* [tests] combine *.t using tests/condition.conf
* [tests] speed up mod-fastcgi and mod-scgi tests
* [core] report Y2038 support in lighttpd -V
* [autoconf] add AC_SYS_LARGEFILE for lfs
* [multiple] Y2038 32-bit signed time_t mitigations
* [mod_deflate] use http_header_str_contains_token
* [core] tune http_response_process_headers()
* [core] use CLOCK_MONOTONIC_COARSE where available
* [core] log_clock_gettime->clock_gettime for 64-bit
* [core] Y2038: use _TIME_BITS=64 on 32-bit glibc
* [core] define _DEFAULT_SOURCE in first.h
* [build] check for sys/filio.h in CMake and meson
* [core] quiet compiler warnings
* [mod_openssl] no ALPN fatal error w/ mod_sockproxy (fixes #3081)
* [core] make missing mod_deflate not a fatal error
* [core] store time for last r/w to a backend socket
* [core] gw_backend_error() shared code
* [core] connect, write, read timeouts on backends (fixes #3086)
* [doc] https://wiki.lighttpd.net/Docs_Performance
* [core] tweak buffer merging to reduce mem
* [core] chunkqueue_append_buffer always clears buf
* [core] http_response_append_{buffer,mem}()
* [core] improve handling of suboptimal backend wr
* [core] http_response_read() indicate resp finished
* [mod_cgi] cgi.limits "read-timeout" "write-timeout" (#3086)
* [core] clarify error message in gw_backend.c
* [core] set min srv->max_fds = 32 (sanity check)
* [core] adjust server overload check
* [core] free fdwaitqueue list when empty
* [core] adjust srv->srvconf.max_conns at startup
* [core] conns_pool separate from conns list (#3084)
* [build] update ax_prog_cc_for_build.m4
* [core] add wolfssl-specific include
* [core] rename srv->max_conns -> srv->lim_conns
* [core] change srv->conns to doubly-linked-list
* [core] change con joblist to singly-linked-list
* [core] remove connection_list_append()
* [core] clear request,connection pools every 64 sec (#3084)
* [mod_wolfssl] wolfSSL_sk_X509_NAME_push change
* [core] clarify an error message
* [core] reduce optim inline of cold funcs
* [core] remove HANDLER_WAIT_FOR_FD
* [mod_cgi] reuse chunk buffers
* [mod_cgi] use linked list for process list
* [mod_uploadprogress] use splay_tree for req list
* [multiple] remove base.h include where not used
* [mod_indexfile] section into subroutines
* [mod_extforward] HAProxy PROXY env PP2_UNIQUE_ID
* [mod_magnet] reuse lighty lua table
* [core] li_hmac_sha512()
* [mod_magnet] expose md and hmac funcs to lua
* [mod_magnet] allow modification of request headers
* [mod_magnet] lighty.stat now returns userdata obj
* [mod_magnet] protect and control lighty table mod
* [mod_magnet] expose enc/dec str funcs to lua
* [mod_magnet] look up env id by strlen, then strcmp
* [core] reuse some cold duplicate hdr match code
* [core] use mod name in trace instead of mod_gw
* [mod_magnet] lighty.r.* interfaces to request
* [core] refuse excess h2 streams at con start (fixes #3093)
* [mod_magnet] lighty.c.cookie_tokens
* [mod_magnet] lighty.c.readdir
* [mod_magnet] use blank str for nil (do not panic)
* [mod_magnet] rename magnet_cgi_ to magnet_envvar_
* [mod_magnet] reset config cache for uri components
* [mod_magnet] reset config cache for remote addr
* [core] sock_addr_set_port()
* [mod_magnet] attrs for remote port and server port
* [mod_magnet] detect MAGNET_RESTART_REQUEST loops
* [mod_magnet] ignore 1xx return in response start
* [mod_echo] test module to echo request as response
* [core] base64url pad char is '='; change from '.'
* [mod_cgi] improve CGI offloading
* [mod_openssl] default disable client renegotiation
* [core] log_error_multiline()
* [tests] t/test_mod_indexfile
* [tests] IO::Socket::INET->new( Timeout => 1 )
* [mod_indexfile] update path with buffer path funcs
* [tests] move tests/docroot/www contents up 1 level
* [build] look for malloc.h and mallopt()
* [core] config mallopt(M_ARENA_MAX, 2) (#3084)
* [core] periodically malloc_trim() to release mem (fixes #3084)
* [build] propagate HAVE_DLFCN_H in builds
* [core] cfg server.bindhost after $SERVER["socket"]
* [core] TCP_CORK w/ MEM_CHUNK then FILE_CHUNK
* [core] remove server.upload-temp-file-size limit
* [core] expose ck_bt() for debugging
* [core] change backtrace format to put addr first
* [core] reduce stack use in main()
* [core] write all cq MEM_CHUNK if spill to tempfile
* [core] realloc buffer power-2 size + 1 for '\0'
* [mod_cgi] cgi.limits "tcp-fin-propagate" => "SIG"
* [core] consolidate more gw_host, gw_proc init code
* [core] mark cold more gateway maintenance code
* [core] reduce wait time in gw_spawn_connection()
* [core] remove redundant waitpid() on each backend
* [multiple] quiet coverity warnings
* [build] define rsize_t on FreeBSD
* [core] quiet coverity warnings
* [tests] skip time-sensitive test during CI testing
* [core] clear buffer after backend dechunk
* [core] update comment about server.max-write-idle
* [core] fdlog.[ch]; fdevent_*_logger_* -> fdlog_*
* [multiple] de-dup file and piped loggers (fixes #3101)
* [multiple] prefer r->tmp_buf to p->tmp_buf
* [core] shared temp buffer for log_*error*()
* [core] refuse excess initial streams only if block (fixes #3100)
* [core] quiet coverity warnings
* [core] reject HTTP/2 pseudo-header in trailers (#3102)
* [core] remove redundant check in h2_recv_headers()
* [core] reduce oversized mem alloc for backends
* [core] HTTP/2 GOAWAY after timeout before read (fixes #3102)
* [core] default backend "connect-timeout" to 8 (#3086)
* [core] HTTP/2 GOAWAY after timeout before read (#3102)
* [core] mark attr malloc, returns nonnull
* [core] separate mem pool for FILE_CHUNK reuse
* [core] retain largest chunk on oversized chunk lst
* [core] improve chunk buffer reuse from backends
* [multiple] internal control for backend read bytes
* [core] option: errorlog high precision timestamps
* [core] create temp file name in chunk buffer
* [core] chunkqueue_get_append_newtempfile()
* [core] remove redundant checks for tempfile chunk
* [multiple] fdevent_mkostemp()
* [build] check for pread(), pwrite(), splice()
* [multiple] _WIN32 fdevent_pipe_cloexec()
* [core] _WIN32 impl of fdevent_mkostemp()
* [multiple] check feature flags funcs; code reuse
* [multiple] avoid empty chunks in chunkqueue
* [core] splice() data from backends to tempfiles
* [core] fix chunked decoding from backend (#3044, #3046)
* [core] remove obsolete comment about r->gw_dechunk
* [core] improve chunk buffer reuse from backends
* [mod_cgi] improve chunk buffer reuse from backends
* [core] disable streaming response with authorizer (fixes #3106)
* [multiple] clarify error msg when no cert avail
* [core] disable server.graceful-restart-bg if spawn
* [tests] ignore SIGINT, SIGUSR1 in fcgi-responder
* [core] cap size of data framed for HTTP/2 response
* [core] fix typo in h2_send_cqdata()
* [core] use pread() to skip lseek()
* [core] h2_send_cqdata() returns how much data sent
* [core] allow up to 32k of data frames per stream
* [core] limit initial response header backend read
* [core] read files into mem when framed for HTTP/2
* [core] chunkqueue_mmap_chunk_len() for code reuse
* [core] chunkqueue_peek_data() mmap experiment
* [core] quiet coverity warnings
* [core] portability tweaks for various platforms/cc
* [core] fix chunked decoding from backend (#3044, #3046)
* [doc] update config files
* [mod_openssl] boringssl compat
* [core] adjust indent for clarity
- 1.4.59 - 2021-02-02
* [mod_webdav] hide unused funcs depending on build
* [mod_mbedtls] include mbedtls/platform_util.h
* [mod_mbedtls] use local strncmp_const()
* [mod_gnutls] use local strncmp_const()
* [mod_dirlisting] place vars closer to where used
* [autotools] autoupdate; subst deprecated/obsolete
* [autoconf] update ax_prog_cc_for_build.m4
* [core] fix crash at shutdown w/ certain config
* [tests] use ephemeral ports in tests
* [mod_wolfssl] minor updates for wolfSSL v4.6.0
* [doc] create-mime.conf.pl improve case handling
* [mod_openssl] extend ssl.openssl.ssl-conf-cmd
* [mod_extforward] config warning for module order
* [mod_extforward] fix extforward.headers defaults (fixes #3051)
* [multiple] use HTTP_HEADER_* enum before strcmp
* [multiple] replace buffer_is_equal_caseless_string
* [mod_dirlisting] quiet coverity false positive
* [doc] create-mime.conf.pl improve case handling
* [autoconf] fix LT_INIT syntax
* [doc] create-mime.conf.pl -v for warnings
* [core] fix crash in error trace if backend is down (fixes #3052)
* [doc] create-mime.conf.pl -v silent for mult vnd
* [mod_openssl] update LIBRESSL_VERSION_NUMBER check
* [multiple] fix: honor CipherString for alt TLS lib
* [mod_openssl] set Ciphersuites once API available
* [mod_dirlisting] use fdopendir(), fstatat()
* [mod_deflate] support Accept-Encoding: zstd
* [mod_deflate] use zstd streaming API
* [mod_dirlisting] hide unused variable on MacOS
* [doc] add --with-zstd to INSTALL
* [mod_access] mark mod_access_check attribute pure
* [core] add decls in connections.h
* [build] update scripts/ci-build.sh
* [core] check ifdef WOLFSSL_SHA512 for SHA512 avail
* [build] scripts/ci-build.sh --with-nettle
* [mod_openssl] update LIBRESSL_VERSION_NUMBER check
* [build] scripts/ci-build.sh w/o --with-wolfssl
* [build] scripts/ci-build.sh adjustments
* [build] fix typo in src/CMakeLists.txt
* [build] adjust mbedtls vars in src/CMakeLists.txt
* [build] scripts/ci-build.sh adjustments
* [build] adjust crypto vars in src/CMakeLists.txt
* [core] avoid multiple definition of SHA512_CTX
* [build] adjust crypto vars in src/CMakeLists.txt
* [mod_alias] modify r->physical.path in place
* [build] scripts/ci-build.sh add --with-maxminddb
* build] scripts/ci-build.sh remove --with-maxminddb
* [mod_deflate] use zstd typedefs (minor cleanup)
* [mod_deflate] compat with zstd < v1.4.0
* [multiple] fix coverity warnings
* [multiple] fix TLS config string parsing
* [mod_gnutls] fix ssl.ca_dn_file data access
* [mod_wolfssl] wipe ssl_pemfile_pkey before free()
* [mod_wolfssl] fix syntax errors
* [multiple] fix TLS config string parsing
* [mod_gnutls] fix alt code for coverity
* [core] check more carefully after SSL_WANT_WRITE
* [core] fix 100% CPU spin if traffic limit hit
* [core] skip interest in POLLRDHUP after POLLRDHUP (#3059)
* [TLS] detect expired stapling file at startup (fixes #3056)
* [multiple] avoid duplicate parsing in trigger func (#3056)
* [multiple] quiet some clang-analyzer warnings
* [core] enable HTTP/2 by default
* [mod_ajp13] AJPv13 Tomcat connector for lighttpd
* [core] const data_unset *array_get_element_klen()
* [core] tighten struct data_config and related code
* [core] fix merging large headers across mult reads (fixes #3059)
* [mod_gnutls,mod_mbedtls] recog common cipherstring
* [build] fix typo in SConstruct (fixes #3061)
* [mod_wolfssl] wolfSSL might repeat SNI_Callback()
* [TLS] fix invalid cfg warning
* [mod_openssl] fix acme-tls/1 challenge bootstrap
* [TLS] set r->uri.authority empty str upon accept()
* [mod_gnutls] fix acme-tls/1 challenge bootstrap
* [mod_nss] fix acme-tls/1 challenge bootstrap
* [mod_wolfssl] copy stapling buf for OCSP resp
* [mod_mbedtls] fix acme-tls/1 challenge bootstrap
* [mod_mbedtls] fix acme-tls/1 challenge bootstrap
* [mod_cgi] fix assert if empty X-Sendfile path (fixes #3062)
* [mod_mbedtls] restore ALPN chk after client hello
* [core] re-validate h2 CONTINUATION frame len in cq
* [mod_mbedtls] remove redundant condition check
* [core] quiet coverity warning
- 1.4.58 - 2020-12-27
* [mod_wolfssl] use wolfSSL TLS version defines
* [mod_wolfssl] compile with earlier wolfSSL vers
* [tests] collect code for "die-at-end" tests
* [tests] remove FastCGI test dependency on libfcgi
* [core] prefer IPv6+IPv4 func vs IPv4-specific func
* [tests] remove FastCGI test dependency on PHP
* [core] reuse large mem chunks (fix mem usage) (fixes #3033)
* [core] add comment for FastCGI mem use in hctx->rb (#3033)
* [mod_proxy] fix sending of initial reqbody chunked
* [multiple] fdevent_waitpid() wrapper
* [core] sys-time.h - localtime_r,gmtime_r macros
* [core] http_date.[ch] encapsulate HTTP-date parse
* [core] specialized strptime() for HTTP date fmts
* [multiple] employ http_date.h, sys-time.h
* [core] http_date_timegm() (portable timegm())
* buffer_append_path_len() to join paths
* [core] inet_ntop_cache -> sock_addr_cache
* [tests] slight speed up checking for server ready
* [tests] load required modules in alt .conf tests
* [multiple] etag.[ch] -> http_etag.[ch]; better imp
* [core] fix crash after specific err in config file
* [core] fix bug in FastCGI uploads (#3033)
* [tests] OpenBSD crypt() support limited to bcrypt
* [core] http_response_match_if_range()
* [mod_webdav] typedef off_t loff_t for FreeBSD
* [multiple] chunkqueue_write_chunk()
* [build] add GNUMAKEFLAGS=--no-print-directory
* [tests] consolidate some tests/ content
* [core] fix bug in read retry found by coverity
- 1.4.57 - 2020-12-17
* [core] attempt to quiet some coverity warnings
* [mod_webdav] compile fix for Mac OSX/11
* [core] handle U+00A0 in config parser
* [core] fix lighttpd -1 one-shot with pipes
* [core] quiet start/shutdown trace in one-shot mode
* [core] allow keep-alives in one-shot mode (#3042)
* [mod_webdav] define _ATFILE_SOURCE if AT_FDCWD
* [core] setsockopt IPV6_V6ONLY if server.v4mapped
* [build] fix meson.build when building all TLS mods
* [core] prefer inet_aton() over inet_addr()
* [build] fix SCons build when building all TLS mods
* [core] add missing mod_wolfssl to ssl compat list
* [mod_openssl] remove ancient preprocessor logic
* [core] SHA512_Init, SHA512_Update, SHA512_Final
* [mod_wolfssl] add complex preproc logic for SNI
* [core] wrap a macro value with parens
* [core] fix handling chunked response from backend (fixes #3044)
* [core] always set file.fd = -1 on FILE_CHUNK reset (fixes #3044)
* [core] skip some trace if backend Upgrade (#3044)
* [TLS] cert-staple.sh POSIX sh compat (fixes #3043)
* [core] portability fix if st_mtime not defined
* [mod_nss] portability fix
* [core] warn if mod_authn_file needed in conf
* [core] fix chunked decoding from backend (fixes #3044)
* [core] reject excess data after chunked encoding (#3046)
* [core] track chunked encoding state from backend (fixes #3046)
* [core] li_restricted_strtoint64()
* [core] track Content-Length from backend (fixes #3046)
* [core] enhance config parsing debugging (#3047)
* [core] reorder srv->config_context to match ndx (fixes #3047)
* [mod_proxy] proxy.header = ("force-http10" => ...)
* [mod_authn_ldap] fix crash (fixes #3048)
* [mod_authn_ldap, mod_vhostdb_ldap] default cafile
* [core] fix array_copy_array() sorted[]
* [multiple] replace fall through comment with attr
* [core] fix crash printing trace if backend is down
* [core] fix decoding chunked from backend (fixes #3049)
* [core] attempt to quiet some coverity warnings
- 1.4.56 - 2020-11-29
* [core] perf: request processing
* [core] http_header_str_contains_token()
* [mod_flv_streaming] parse query string w/o copying
* [mod_evhost] use local array to split values
* [core] remove srv->split_vals
* [core] add User-Agent to http_header_e enum
* [core] store struct server * in struct connection
* [core] use func rc to indicate done reading header
* [core] replace connection_set_state w/ assignment
* [core] do not pass srv to http header parsing func
* [core] cold buffer_string_prepare_append_resize()
* [core] chunkqueue_compact_mem()
* [core] connection_chunkqueue_compact()
* [core] pass con around request, not srv and con
* [core] reduce use of struct parse_header_state
* [core] perf: HTTP header parsing using \n offsets
* [core] no need to pass srv to connection_set_state
* [core] perf: connection_read_header_more()
* [core] perf: connection_read_header_hoff() hot
* [core] inline connection_read_header()
* [core] pass ptr to http_request_parse()
* [core] more 'const' in request.c prototypes
* [core] handle common case of alnum or - field-name
* [mod_extforward] simplify code: use light_isxdigit
* [core] perf: array.c performance enhancements
* [core] mark some data_* funcs cold
* [core] http_header.c internal inline funcs
* [core] remove unused array_reset()
* [core] prefer uint32_t to size_t in base.h
* [core] uint32_t for struct buffer sizes
* [core] remove unused members of struct server
* [core] short-circuit path to clear request.headers
* [core] array keys are non-empty in key-value list
* [core] keep a->data[] sorted; remove a->sorted[]
* [core] __attribute_returns_nonnull__
* [core] differentiate array_get_* for ro and rw
* [core] (const buffer *) in (struct burl_parts_t)
* [core] (const buffer *) for con->server_name
* [core] perf: initialize con->conf using memcpy()
* [core] run config_setup_connection() fewer times
* [core] isolate data_config.c, vector.c
* [core] treat con->conditional_is_valid as bitfield
* [core] http_header_hkey_get() over const array
* [core] inline buffer as part of DATA_UNSET key
* [core] inline buffer key for *_patch_connection()
* [core] (data_unset *) from array_get_element_klen
* [core] inline buffer as part of data_string value
* [core] add const to callers of http_header_*_get()
* [core] inline array as part of data_array value
* [core] const char *op in data_config
* [core] buffer string in data_config
* [core] streamline config_check_cond()
* [core] keep a->data[] sorted (REVERT)
* [core] array a->sorted[] as ptrs rather than pos
* [core] inline header and env arrays into con
* [mod_accesslog] avoid alloc for parsing cookie val
* [core] simpler config_check_cond()
* [mod_redirect,mod_rewrite] store context_ndx
* [core] const char *name in struct plugin
* [core] srv->plugin_slots as compact list
* [core] rearrange server_config, server members
* [core] macros CONST_LEN_STR and CONST_STR_LEN
* [core] struct plugin_data_base
* [core] improve condition caching perf
* [core] config_plugin_values_init() new interface
* [mod_access] use config_plugin_values_init()
* [core] (const buffer *) from strftime_cache_get()
* [core] mv config_setup_connection to connections.c
* [core] use (const char *) in config file parsing
* [mod_staticfile] use config_plugin_values_init()
* [mod_skeleton] use config_plugin_values_init()
* [mod_setenv] use config_plugin_values_init()
* [mod_alias] use config_plugin_values_init()
* [mod_indexfile] use config_plugin_values_init()
* [mod_expire] use config_plugin_values_init()
* [mod_flv_streaming] use config_plugin_values_init()
* [mod_magnet] use config_plugin_values_init()
* [mod_usertrack] use config_plugin_values_init()
* [mod_userdir] split policy from userdir path build
* [mod_userdir] use config_plugin_values_init()
* [mod_ssi] use config_plugin_values_init()
* [mod_uploadprogress] use config_plugin_values_init()
* [mod_status] use config_plugin_values_init()
* [mod_cml] use config_plugin_values_init()
* [mod_secdownload] use config_plugin_values_init()
* [mod_geoip] use config_plugin_values_init()
* [mod_evasive] use config_plugin_values_init()
* [mod_trigger_b4_dl] use config_plugin_values_init()
* [mod_accesslog] use config_plugin_values_init()
* [mod_simple_vhost] use config_plugin_values_init()
* [mod_evhost] use config_plugin_values_init()
* [mod_vhostdb*] use config_plugin_values_init()
* [mod_mysql_vhost] use config_plugin_values_init()
* [mod_maxminddb] use config_plugin_values_init()
* [mod_auth*] use config_plugin_values_init()
* [mod_deflate] use config_plugin_values_init()
* [mod_compress] use config_plugin_values_init()
* [core] add xsendfile* check if xdocroot is NULL
* [mod_cgi] use config_plugin_values_init()
* [mod_dirlisting] use config_plugin_values_init()
* [mod_extforward] use config_plugin_values_init()
* [mod_webdav] use config_plugin_values_init()
* [core] store addtl data in pcre_keyvalue_buffer
* [mod_redirect] use config_plugin_values_init()
* [mod_rewrite] use config_plugin_values_init()
* [mod_rrdtool] use config_plugin_values_init()
* [multiple] gw_backends config_plugin_values_init()
* [core] config_get_config_cond_info()
* [mod_openssl] use config_plugin_values_init()
* [core] use config_plugin_values_init()
* [core] collect more config logic into configfile.c
* [core] config_plugin_values_init_block()
* [core] gw_backend config_plugin_values_init_block
* [core] remove old config_insert_values_*() funcs
* [multiple] plugin.c handles common FREE_FUNC code
* [core] run all trigger and sighup handlers
* [mod_wstunnel] change DEBUG_LOG to use log_error()
* [core] stat_cache_path_contains_symlink use errh
* [core] isolate use of data_config, configfile.h
* [core] split cond cache from cond matches
* [mod_auth] inline arrays in http_auth_require_t
* [core] array_init() arg for initial size
* [core] gw_exts_clear_check_local()
* [core] gw_backend less pointer chasing
* [core] connection_handle_errdoc() separate func
* [multiple] prefer (connection *) to (srv *)
* [core] create http chunk header on the stack
* [multiple] connection hooks no longer get (srv *)
* [multiple] plugin_stats array
* [core] read up-to fixed size chunk before fionread
* [core] default chunk size 8k (was 4k)
* [core] pass con around gw_backend instead of srv
* [core] log_error_multiline_buffer()
* [multiple] reduce direct use of srv->cur_ts
* [multiple] extern log_epoch_secs
* [multiple] reduce direct use of srv->errh
* [multiple] stat_cache singleton
* [mod_expire] parse config into structured data
* [multiple] generic config array type checking
* [multiple] rename r to rc rv rd wr to be different
* [core] (minor) config_plugin_keys_t data packing
* [core] inline buffer in log_error_st errh
* [multiple] store srv->tmp_buf in tb var
* [multiple] quiet clang compiler warnings
* [core] http_status_set_error_close()
* [core] http_request_host_policy w/ http_parseopts
* [multiple] con->proto_default_port
* [core] store log filename in (log_error_st *)
* [core] separate log_error_open* funcs
* [core] fdevent uses uint32_t instead of size_t
* [mod_webdav] large buffer reuse
* [mod_accesslog] flush file log buffer at 8k size
* [core] include settings.h where used
* [core] static buffers for mtime_cache
* [core] convenience macros to check req methods
* [core] support multiple error logs
* [multiple] omit passing srv to fdevent_handler
* [core] remove unused arg to fdevent_fcntl_set_nb*
* [core] slightly simpify server_(over)load_check()
* [core] isolate fdevent subsystem
* [core] isolate stat_cache subsystem
* [core] remove include base.h where unused
* [core] restart dead piped loggers every 64 sec
* [mod_webdav] use copy_file_range() if available
* [core] perf: buffer copy and append
* [core] copy some srv->srvconf into con->conf
* [core] move keep_alive flag into request_st
* [core] pass scheme port to http_request_parse()
* [core] pass http_parseopts around request.c
* [core] rename specific_config to request_config
* [core] move request_st,request_config to request.h
* [core] pass (request_st *) to request.c funcs
* [core] remove unused request_st member 'request'
* [core] rename content_length to reqbody_length
* [core] t/test_request.c using (request_st *)
* [core] (const connection *) in http_header_*_get()
* [mod_accesslog] log_access_record() fmt log record
* [core] move request start ts into (request_st *)
* [core] move addtl request-specific struct members
* [core] move addtl request-specific struct members
* [core] move plugin_ctx into (request_st *)
* [core] move addtl request-specific struct members
* [core] move request state into (request_st *)
* [core] store (plugin *) in p->data
* [core] store subrequest_handler instead of mode
* [multiple] copy small struct instead of memcpy()
* [multiple] split con, request (very large change)
* [core] r->uri.path always set, though might be ""
* [core] C99 restrict on some base funcs
* [tests] stub out config funcs in test_mod_*
* [tests] t/test_mod_userdir
* [core] dispatch handler in handle_request func
* [core] http_request_parse_target()
* [mod_magnet] modify r->target with "uri.path-raw"
* [core] remove r->uri.path_raw; generate as needed
* [core] http_response_comeback()
* [core] http_response_config()
* [tests] use buffer_eq_slen() for str comparison
* [core] http_status_append() short-circuit 200 OK
* [core] mark some chunk.c funcs as pure
* [core] use uint32_t in http_header.[ch]
* [core] perf: tighten some code in some hot paths
* [core] parse header label before end of line
* [doc] add link to wiki in doc/outdated/ssl.txt
* [doc] src/t/README
* [mod_auth] "nonce_secret" option to validate nonce (fixes #2976)
* [build] fix build on MacOS X Tiger
* [doc] lighttpd.conf: lighttpd choose event-handler
* [config] blank server.tag if whitespace-only
* [mod_proxy] stream request using HTTP/1.1 chunked (fixes #3006)
* [multiple] correct misspellings in comments
* [multiple] fix some cc warnings in 32-bit, powerpc
* [tests] fix skip count in mod-fastcgi w/o php-cgi
* [multiple] ./configure --with-nettle to use Nettle
* [core] skip excess close() when FD_CLOEXEC defined
* [mod_cgi] remove redundant calls to set FD_CLOEXEC
* [core] return EINVAL if stat_cache_get_entry w/o /
* [mod_webdav] define PATH_MAX if not defined
* [mod_accesslog] process backslash-escapes in fmt
* [mod_openssl] disable cert vrfy if ALPN acme-tls/1
* [core] add seed before openssl RAND_pseudo_bytes()
* [mod_mbedtls] mbedTLS option for TLS
* [core] prefer getxattr() instead of get_attr()
* [multiple] use *(unsigned char *) with ctypes
* [mod_openssl] do not log ECONNRESET unless debug
* [mod_openssl] SSL_R_UNEXPECTED_EOF_WHILE_READING
* [mod_gnutls] GnuTLS option for TLS (fixes #109)
* [mod_openssl] rotate session ticket encryption key
* [mod_openssl] set cert from callback in 1.0.2+ (fixes #2842)
* [mod_openssl] set chains from callback in 1.0.2+ (#2842)
* [core] RFC-strict parse of Content-Length
* [build] point ./configure --help to support forum
* [core] stricter parse of numerical digits
* [multiple] add summaries to top of some modules
* [core] sys-crypto-md.h w/ inline message digest fn
* [mod_openssl] enable read-ahead, if set, after SNI
* [mod_openssl] issue warning for deprecated options
* [mod_openssl] use SSL_OP_NO_RENEGOTIATION if avail
* [mod_openssl] use openssl feature define for ALPN
* [mod_openssl] update default DH params
* [core] SecureZeroMemory() on _WIN32
* [core] safe memset calls memset() through volatile
* [doc] update comments in doc/config/modules.conf
* [core] more precise check for request stream flags
* [mod_openssl] rotate session ticket encryption key
* [mod_openssl] ssl.stek-file to specify encrypt key
* [mod_mbedtls] ssl.stek-file to specify encrypt key
* [mod_gnutls] ssl.stek-file to specify encrypt key
* [mod_openssl] disable session cache; prefer ticket
* [mod_openssl] compat with LibreSSL
* [mod_openssl] compat with WolfSSL
* [mod_openssl] set SSL_OP_PRIORITIZE_CHACHA
* [mod_openssl] move SSL_CTX curve conf to new func
* [mod_openssl] basic SSL_CONF_cmd for alt TLS libs
* [mod_openssl] OCSP stapling (fixes #2469)
* [TLS] cert-staple.sh - refresh OCSP responses (#2469)
* [mod_openssl] compat with BoringSSL
* [mod_gnutls] option to override GnuTLS priority
* [mod_gnutls] OCSP stapling (#2469)
* [mod_extforward] config warning for module order
* [mod_webdav] store webdav.opts as bitflags
* [mod_webdav] limit webdav_propfind_dir() recursion
* [mod_webdav] unsafe-propfind-follow-symlink option
* [mod_webdav] webdav.opts "propfind-depth-infinity"
* [mod_openssl] detect certs marked OCSP Must-Staple
* [mod_gnutls] detect certs marked OCSP Must-Staple
* [mod_openssl] default to set MinProtocol TLSv1.2
* [mod_nss] NSS option for TLS (fixes #1218)
* [core] fdevent_load_file() shared code
* [mod_openssl,mbedtls,gnutls,nss] fdevent_load_file
* [core] error if s->socket_perms chmod() fails
* [mod_openssl] prefer some WolfSSL native APIs
* quiet clang analyzer scan-build warnings
* [core] uint32_t is plenty large for path names
* [mod_mysql_vhost] deprecated; use mod_vhostdb_mysql
* [core] splaytree_djbhash() in splaytree.h (reuse)
* [cmake] update deps for src/t/test_*
* [cmake] update deps for src/t/test_*
* [build] remove tests/mod-userdir.t from builds
* [build] fix typo in src/Makefile.am EXTRA_DIST
* [core] remove unused mbedtls_enabled flag
* [core] store fd in srv->stdin_fd during setup
* [multiple] address coverity warnings
* [mod_webdav] fix theoretical NULL dereference
* [mod_webdav] update rc for PROPFIND allprop
* [mod_webdav] build fix: ifdef live_properties
* [multiple] address coverity warnings
* [meson] fix libmariadb dependency
* [meson] add missing libmaxminddb section
* [mod_auth,mod_vhostdb] add caching option (fixes #2805)
* [mod_authn_ldap,mod_vhostdb_ldap] add timeout opt (#2805)
* [mod_auth] accept "nonce-secret" & "nonce_secret"
* [mod_openssl] fix build warnings on MacOS X
* [core] Nettle assert()s if buffer len > digest sz
* [mod_authn_dbi] authn backend employing DBI
* [mod_authn_mysql,file] use crypt() to save stack
* [mod_vhostdb_dbi] allow strings and ints in config
* add ci-build.sh
* move ci-build.sh to scripts
* [build] build fixes for AIX
* [mod_deflate] Brotli support
* [build] bzip2 default to not-enabled in build
* [mod_deflate] fix typo in config option
* [mod_deflate] propagate errs from internal funcs
* [mod_deflate] deflate.cache-dir compressed cache
* [mod_deflate] mod_deflate subsumes mod_compress
* [doc] mod_compress -> mod_deflate
* [tests] mod_compress -> mod_deflate
* [mod_compress] remove mod_compress
* [build] add --with-brotli to CI build
* [core] server.feature-flags extensible config
* [core] con layer plugin_ctx separate from request
* [multiple] con hooks store ctx in con->plugin_ctx
* [core] separate funcs to reset (request_st *)
* [multiple] rename connection_reset hook to request
* [mod_nss] func renames for consistency
* [core] detect and reject TLS connect to cleartext
* [mod_deflate] quicker check for Content-Encoding
* [mod_openssl] read secret data w/ BIO_new_mem_buf
* [core] decode Transfer-Encoding: chunked from gw
* [mod_fastcgi] decode Transfer-Encoding: chunked
* [core] stricter parsing of POST chunked block hdr
* [mod_proxy] send HTTP/1.1 requests to backends
* [tests] test_base64.c clear buf vs reset
* [core] http_header_remove_token()
* [mod_webdav] fix inadvertent string truncation
* [core] add some missing standard includes
* [mod_extforward] attempt to quiet Coverity warning
* [mod_authn_dbi,mod_authn_mysql] fix coverity issue
* [build] fix SCons build for detection of brotli
* [build] SCons build with brotli needs -lm on *BSD
* [build] SCons build mod_deflate w/ libm for brotli
* [build] SCons brotli needs pkg-config --static
* [build] avoid accept_filter_arg compiler warning
* [build] SCons fix space/tabs inconsistency
* scons: fix check environment
* Add avahi service file under doc/avahi/
* [mod_webdav] fix fallback if linkat() fails
* [mod_proxy] do not forward Expect: 100-continue
* [core] chunkqueue_compact_mem() must upd cq->last
* [core] dlsym for FAMNoExists() for compat w/ fam
* [core] disperse settings.h to appropriate headers
* [core] inline buffer_reset()
* [mod_extforward] save proto per connection
* [mod_extforward] skip after HANDLER_COMEBACK
* [core] server.feature-flags to enable h2
* [core] HTTP_VERSION_2
* [multiple] allow TLS ALPN "h2" if "server.h2proto"
* [mod_extforward] preserve changed addr for h2 con
* [core] do not send Connection: close if h2
* [core] lowercase response hdr field names for h2
* [core] recognize status: 421 Misdirected Request
* [core] parse h2 pseudo-headers
* [core] request_headers_process()
* [core] connection_state_machine_loop()
* [core] reset connection counters per connection
* [mod_accesslog,mod_rrdtool] HTTP/2 basic accounting
* [core] connection_set_fdevent_interest()
* [core] HTTP2-Settings
* [core] adjust http_request_headers_process()
* [core] http_header_parse_hoff()
* [core] move http_request_headers_process()
* [core] reqpool.[ch] for (request_st *)
* [multiple] modules read reqbody via fn ptr
* [multiple] isolate more con code in connections.c
* [core] isolate more resp code in response.c
* [core] h2.[ch] with stub funcs (incomplete)
* [core] alternate between two joblists
* [core] connection transition to HTTP/2; incomplete
* [core] mark some error paths with attribute cold
* [core] discard 100 102 103 responses from backend
* [core] skip write throttle for 100 Continue
* [core] adjust (disabled) debug code
* [core] update comment
* [core] link in ls-hpack (EXPERIMENTAL)
* [core] HTTP/2 HPACK using LiteSpeed ls-hpack
* [core] h2_send_headers() specialized for resp hdrs
* [core] http_request_parse_header() specialized
* [core] comment possible future ls-hpack optimize
* [mod_status] separate funcs to print request table
* [mod_status] adjust to print HTTP/2 requests
* [core] redirect to dir using relative-path
* [core] ignore empty field-name from backends
* [build] fix meson build
* [mod_auth] fix crash if auth.require misconfigured (fixes #3023)
* [core] fix 1-char trunc of default server.tag
* [core] request_acquire(), request_release()
* [core] keep pool of (request_st *) for HTTP/2
* [mod_status] dedicated funcs for r->state labels
* [core] move connections_get_state to connections.c
* [core] fix crash on master after graceful restart
* [core] defer optimization to read small files
* [core] do not require '\0' term for k,v hdr parse
* [scripts] cert-staple.sh enhancements
* [core] document algorithm used in lighttpd etag
* [core] ls-hpack optimizations
* [core] fix crash on master if blank line request
* [build] fix typo in option description for wolfSSL
* [core] use djbhash in gw_backend to choose host
* [core] rename md5.[ch] to algo_md5.[ch]
* [core] move djbhash(), dekhash() to algo_md.h
* [core] rename splaytree.[ch] to algo_splaytree.[ch]
* [core] import xxHash v0.8.0
* [build] modify build, includes for xxHash v0.8.0
* [build] remove ls-hpack/deps
* [core] xxhash no inline hints; let compiler choose
* [mod_dirlisting] fix config parsing crash
* [mod_openssl] clarify trace w/ deprecated options
* [doc] refresh doc/config/*/*
* [core] code size: disable XXH64(), XXH3()
* [doc] update README and INSTALL
* [build] add to autogen.sh hint listing reqd pkgs
* [core] combine Cookie request headers with ';'
* [core] log stream id with debug.log-state-handling
* [core] set r->state in h2.c
* [mod_ssi] update chunk after shell output redirect
* [mod_webdav] preserve bytes_out when chunks merged
* [multiple] inline chunkqueue_length()
* [core] cold h2_log_response_header*() funcs
* [core] update HTTP status codes list from IANA
* [mod_wolfssl] standalone module
* [core] Content-Length in http_response_send_file()
* [core] adjust response header prep for common case
* [core] light_isupper(), light_islower()
* [core] tst,set,clr macros for r->{rqst,resp}_htags
* [core] separate http_header_e from _htags bitmask
* [core] http_header_hkey_get_lc() for HTTP/2
* [core] array.[ch] using uint32_t instead of size_t
* [core] extend (data_string *) to store header id
* [multiple] extend enum http_header_e list
* [core] http_header_e <=> lshpack_static_hdr_idx
* [core] skip ls-hpack decode work unused by lighttpd
* [TLS] error if inherit empty TLS cfg from globals
* [core] connection_check_expect_100()
* [core] support multiple 1xx responses from backend
* [core] reload c after chunkqueue_compact_mem()
* [core] relay 1xx from backend over HTTP/2
* [core] relay 1xx from backend over HTTP/1.1
* [core] chunkqueue_{peek,read}_data(), squash
* [multiple] TLS modules use chunkqueue_peek_data()
* [mod_magnet] magnet.attract-response-start-to
* [multiple] code reuse chunkqueue_peek_data()
* [core] reuse r->start_hp.tv_sec for r->start_ts
* [core] config_plugin_value_tobool() accept "0","1"
* [core] graceful and immediate restart option
* [mod_ssi] init status var before waitpid()
* [core] graceful shutdown timeout option
* [core] lighttpd -1 supports pipes (e.g. netcat)
* [core] perf adjustments to avoid load miss
* [multiple] use sock_addr_get_family in more places
* [multiple] inline chunkqueue where always alloc'd
* [core] propagate state after writing
* [core] server_run_con_queue()
* [core] defer handling FDEVENT_HUP and FDEVENT_ERR
* [core] handle unexpected EOF reading FILE_CHUNK
* [core] short-circuit connection_write_throttle()
* [core] walk queue in connection_write_chunkqueue()
* [core] connection_joblist global
* [core] be more precise checking streaming flags
* [core] fdevent_load_file_bytes()
* [TLS] use fdevent_load_file_bytes() for STEK file
* [core] allow symlinks under /dev for rand devices
* [multiple] use light_btst() for hdr existence chk
* [mod_deflate] fix potential NULL deref in err case
* [core] save errno around close() if fstat() fails
* [mod_ssi] use stat_cache_open_rdonly_fstat()
* [core] fdevent_dup_cloexec()
* [core] dup FILE_CHUNK fd when splitting FILE_CHUNK
* [core] stat_cache_path_isdir()
* [multiple] use stat_cache_path_isdir()
* [mod_mbedtls] quiet CLOSE_NOTIFY after conn reset
* [mod_gnutls] quiet CLOSE_NOTIFY after conn reset
* [core] limit num ranges in Range requests
* [core] remove unused r->content_length
* [core] http_response_parse_range() const file sz
* [core] pass open fd to http_response_parse_range
* [core] stat_cache_get_entry_open()
* [core,mod_deflate] leverage cache of open fd
* [doc] comment out config disabling Range for .pdf
* [core] coalesce nearby ranges in Range requests
* [tests] simulate slow, small packets more quickly
* [mod_fastcgi] decode chunked is cold code path
* [core] fix chunkqueue_compact_mem w/ partial chunk
* [core] alloc optim reading file, sending chunked
* [core] reuse chunkqueue_compact_mem*()
* [mod_cgi] use splice() to send input to CGI
* [multiple] ignore openssl 3.0.0 deprecation warns
* [mod_openssl] migrate ticket cb to openssl 3.0.0
* [mod_openssl] construct OSSL_PARAM on stack
* [mod_openssl] merge ssl_tlsext_ticket_key_cb impls
* [multiple] openssl 3.0.0 digest interface migrate
* [tests] detect multiple SSL/TLS/crypto providers
* [core] sys-crypto-md.h consistent interfaces
* [wolfssl] wolfSSL_CTX_set_mode differs from others
* [multiple] use NSS crypto if no other crypto avail
* [multiple] stat_cache_path_stat() for struct st
* [TLS] ignore empty "CipherString" in ssl-conf-cmd
* [multiple] remove chunk file.start member
* [core] modify use of getrlimit() to not be fatal
* [mod_webdav] add missing update to cq accounting
* [mod_webdav] update defaults after worker_init
* [mod_openssl] use newer openssl 3.0.0 func
* [core] config_plugin_value_to_int32()
* [core] minimize pause during graceful restart
* [mod_deflate] use large mmap chunks to compress
* [core] stat_cache_entry reference counting
* [core] FILE_CHUNK can hold stat_cache_entry ref
* [core] http_chunk_append_file_ref_range()
* [multiple] use http_chunk_append_file_ref()
* [core] always lseek() with shared fd
* [core] silence coverity warnings (false positives)
* [core] silence coverity warnings in ls-hpack
* [core] silence coverity warnings (another try)
* [core] fix fd sharing when splitting file chunk
* [mod_mbedtls] quiet unused variable warning
* [core] use inline funcs in sys-crypto-md.h
* [core] add missing declaration for NSS rand
* [core] init NSS lib for basic crypto algorithms
* [doc] change mod_compress refs to mod_deflate
* [doc] replace bzip2 refs with brotli
* [build] remove svnversion from versionstamp rule
* [doc] /var/run -> /run
* [multiple] test for nss includes
* [mod_nss] more nss includes fixes
* [build] more portable autogen.sh shell script
* [mod_webdav] define _NETBSD_SOURCE on NetBSD
* [core] silence coverity warnings (another try)
* [mod_mbedtls] newer mbedTLS vers support TLSv1.3
* [mod_accesslog] update defaults after cycling log
* [multiple] add some missing config cleanup
* [core] fix (startup) mem leaks in configparser.y
* [core] STAILQ_* -> SIMPLEQ_* on OpenBSD
* [tests] OpenBSD crypt() support limited to bcrypt
* [build] mark dependencies on crypto lib for MD5()
* [build] use pkg-config with wolfssl
* [mod_wolfssl] use more wolfssl/options.h defines
* [mod_wolfssl] cripple SNI if not built OPENSSL_ALL
* [mod_wolfssl] need to build --enable-alpn for ALPN
* [mod_secdownload] fix compile w/ NSS on FreeBSD
* [build] fix lib paths for GnuTLS, NSS
* [build] add --with-brotli to meson.build
* [build] CMake mod_openssl, mod_wolfssl can coexist
* [build] CMake use pkg_check_modules() w/ wolfssl
* [build] detect nss3/nss.h or nss/nss.h for NSS
* [build] WITHOUT_LIB_CRYPTO option in code
* [build] adjust meson.build for use by OpenWRT
* [mod_mbedtls] wrap addtl code in preproc defines
* [TLS] server.feature-flags "ssl.session-cache"
* [core] workaround fragile code in wolfssl types.h
* [core] move misplaced error trace to match option
* [core] adjust wolfssl workaround for another case
* [multiple] consistent order for crypto lib select
* [multiple] include mbedtls/config.h after select
* [multiple] include wolfssl/options.h after select
* [core] set NSS_VER_INCLUDE after crypto lib select
* [core] use system xxhash lib if available
* [build] fix typo in configure.ac
* [build] option to use system-provided libxxhash
* [build] meson --with-xxhash option
* [doc] refresh doc/config/conf.d/mime.conf
* [meson] add matching -I for lua lib version
* [build] prepend search for lua version 5.4
* [core] use inotify in stat_cache.[ch] on Linux
* [build] detect inotify header <sys/inotify.h>
* [mod_nss] update session ticket NSS devel comment
* [core] set last_used on rd/wr from backend (fixes #3029)
* [core] cold func for gw_recv_response error case
* [core] use kqueue() instead of FAM/gamin on *BSD
* [core] no graceful-restart-bg on OpenBSD, NetBSD
* [mod_openssl] add LIBRESSL_VERSION_NUMBER checks
* [core] use struct kevent on stack in stat_cache
* [core] stat_cache preprocessor paranoia
* [mod_openssl] adjust LIBRESSL_VERSION_NUMBER check
* [mod_maxminddb] fix config validation typo
* [tests] allow LIGHTTPD_EXE_PATH override
* [multiple] handle NULL val as empty in *_env_add (fixes #3030)
* [core] accept "HTTP/2.0", "HTTP/3.0" from backends (fixes #3031)
* [build] check for xxhash in more ways
* [core] accept "HTTP/2.0", "HTTP/3.0" from backends (#3031)
* [core] http_response_buffer_append_authority()
* [core] define SHA*_DIGEST_LENGTH macros if missing
* [doc] update optional pkg dependencies in INSTALL
* [mod_alias] validate given order, not sorted order
* [core] filter out duplicate modules
* [mod_cgi] fix crash if initial write to CGI fails
* [mod_cgi] ensure tmp file open() before splice()
* [multiple] add back-pressure gw data pump (fixes #3033)
* [core] fix bug when HTTP/2 frames span chunks
* [multiple] more forgiving config str to boolean (fixes #3036)
* [core] check for __builtin_expect() availability
* [core] quiet more request parse errs unless debug
* [core] consolidate chunk size checks
* [mod_flv_streaming] use stat_cache_get_entry_open
* [mod_webdav] pass full path to webdav_unlinkat()
* [mod_webdav] fallbacks if _ATFILE_SOURCE not avail
* [mod_fastcgi] move src/fastcgi.h into src/compat/
* [mod_status] add additional HTML-encoding
* [core] server.v4mapped option
* [mod_webdav] workaround for gvfs dir redir bug
- 1.4.55 - 2020-01-31
* [core] fix compile error on Solaris (fixes #2959)
* [core] __attribute_pure__
* [core] array-specialized buffer_caseless_compare()
* [core] specialized buffer_eq_*() for short strings
* [core] mark some more funcs w/ __attribute_pure__
* [core] use buffer_eq_icase* funcs
* [multiple] replace strcasecmp() on short strings
* [core] mark some more funcs w/ __attribute_pure__
* [mod_webdav] fix startup crash w/ multiple conds (fixes #2958)
* [core] cold func http_response_omit_header()
* [core] use buffer_eq_icase_ssn func
* [core] use buffer_eq_icase_ssn func
* [core] correct __attribute_pure__ syntax
* [core] allocate unix socket paths with SUN_LEN()+1 (fixes #2962)
* Use explicit_memset from NetBSD if available for safe_memclear (fixes #2971)
* Also use explicit_memset (NetBSD) with cmake, scons and meson
* [cmake]: enable CMAKE_POSITION_INDEPENDENT_CODE by default
* [core] improve http_headers[] data struct packing
* [core] fdevent_poll() is effective periodic timer
* [core] move con state handling to connections*.c
* [core] issue config error for invalid ':' (fixes #2980)
* [mod_deflate] fix choose encoding parse error (fixes #2981)
* [core] retry on some fdevent set/del temporary err
* [core] disable stat_cache FAM if FAM conn closed
* [mod_auth] http_auth_const_time_memeq improvement
* [build] prefer pkg-config for postgres (fixes #2965)
* [mod_authn_gssapi] 500 if fail to delegate creds (#2967)
* [mod_authn_gssapi] option to store delegated creds (fixes #2967)
* [mod_webdav] fix file uploads > 128M (fixes #2970)
* [mod_auth] do not use quoted-string for algorithm
* [mod_auth] require digest uri= match original URI
* [mod_auth] Authentication-Info: nextnonce=...
* [mod_auth] http_auth_const_time_memeq_pad()
* [mod_auth] http_auth_const_time_memeq() (#2975, #2976)
* [build] PGSQL_CFLAGS with pkg-config for postgres (#2965)
* [build] PGSQL_CFLAGS with pkg-config for postgres (#2965)
* [core] avoid freeaddrinfo() on NULL ptr (fixes #2984)
* [core] reject WS following header field-name (fixes #2985)
* [core] reject Transfer-Encoding + Content-Length (#2985)
* [mod_openssl] reject invalid ALPN
* [mod_accesslog] parse multiple cookies (fixes #2986)
* [core] Oracle Solaris does not have POLLRDHUP
* [multiple] address coverity warnings
* [core] preserve %2b and %2B in query string (fixes #2999)
* [core] fall back to accept() if accept4() EPERM (fixes #2998)
* [mod_auth] close connection after bad password
* [core] do not accept() > server.max-connections
* [core] save errno before logging if execve() fails
* [config] update /var/run -> /run for systemd
* [core] Solaris has getloadavg in sys/loadavg.h
* [build] Fix build when using nested CMake
* [core] fix one-byte OOB read (underflow)
- 1.4.54 - 2019-05-27
* [mod_evhost] handle IPv6 literal addr; add tests
* [core] separate server_main_loop() func, mark hot
* [core] mark startup/shutdown funcs cold
* [core] some server_main_loop() cleanup
* [core] fdevent_process()
* [core] srv->max_fds_lowat and srv->max_fds_hiwat
* [core] remove server.h
* [mod_staticfile] search ext array if not empty
* [core] store joblist pointer on stack
* [core] quickly clear request buffer for reuse
* [core] helper funcs for connection_state_machine()
* [core] perf: optimize connection_read_header()
* [core] parse request in connection_read_header()
* [core] log_request_header_on_error in one place
* [core] copy request only if might need for logging
* [core] make parse_request,request.request same buf
* [core] prefer buffer_caseless_compare()
* [core] pass req hdrs buffer to http_request_parse
* [core] replace con->response.keep_alive
* [core] mark log_error_write*() funcs cold
* [core] http_request_parse() mark error paths cold
* [core] lift code out of request line parse loop
* [core] get_http_method_key() match by strlen first
* [core] RFC7230 HTTP-version parse
* [mod_accesslog] attempt to reconstruct req line
* [multiple] minor: remove duplicated conditions
* [mod_deflate] honor request for x-gzip, x-bzip2
* [mod_auth] minor: adjust config validation
* [core] discard oversized trailers
* [core] no keep-alive if POLLRDHUP,empty read queue
* [core] fix gw_backend spelling of directive in err
* [multiple] reduce code dup in list resizing
* [core] con->is_ssl_sock
* [core] connection_handle_write() updates con state
* [core] skip plugins_call_cleanup if not init'ed
* [core] simpler loops to run plugin hooks
* [core] fix mixed use of srv->split_vals array (fixes #2932)
* [core] dispatch events from within event framework
* [core] don't call fd event handlers more than once, they might already be gone (fixes segfault)
* [core] poll: fdarray uses fd as index, not fde_ndx
* [core] map FDEVENT_* to OS system event frameworks
* [core] prefer memchr() over strchr()
* [core] use openssl to read,discard request body
* [mod_openssl] inherit cipherlist from global scope
* [mod_openssl] default: ssl.cipher-list = "HIGH"
* [mod_proxy] pass Content-Length to backend if > 0
* [core] config option to allow GET w/ request body
* [core] some fdevent code streamlining
* [core] remove fde_ndx member outside fdevents
* [core] remove redundant check for allow_http11
* [mod_openssl] use 16k static buffer instead of 64k
* [core] pull server load checks out of main loop
* [core] isolate fdevent processing
* [core] release empty chunk buf when nothing read
* [core] perf: pass (fdnode *) to epoll and kqueue
* [core] modify config parser to handle multiple }
* [core] pass (fdnode *) for registered fdevent fd
* [mod_auth] http_auth_digest_hex2bin()
* [mod_auth] http_auth_info_t digest abstraction
* [mod_auth] pass http_auth_require_t for 401 Unauth
* [core] no SOCK_NONBLOCK on QNX 7.0
* [mod_auth] HTTP Auth Digest algorithm=SHA-256
* [core] silence coverity warning
* [mod_magnet] fix invalid script return-type crash (fixes #2938)
* [build] remove -Wdeclaration-after-statement
* [core] pass conf.follow_symlink in more places
* [core] fix assertion with server.error-handler (fixes #2941)
* [core] extend dir redirection to take HTTP status
* [doc] minor adjust create-mime.conf.pl regex match (#2942)
* [core] __attribute__((fallthrough)) for GCC 7.0
* [core] fdevent_mkstemp_append() (shared)
* [core] off_t upload_temp_file_size
* [core] clear FDEVENT_RDHUP if no POLLRDHUP
* [mod_wstunnel] fix ping-interval for big-endian (fixes #2944)
* [core] fix abort in http-parseopts (fixes #2945)
* [core] remove repeated slashes in http-parseopts
* [core] fix 1.4.52 regression in mem use with POST (fixes #2948)
* [multiple] cleaner calloc use in SETDEFAULTS_FUNC
* [core] add const to some etag prototypes
* [core] __attribute__((format ...))
* [core] struct log_error_st for error logging
* [core] log_error, log_perror using printf-like fmt
* [core] new worker_init hook to follow parent fork
* [core] replace open() with fdevent_open_cloexec()
* [mod_webdav] major rewrite (fixes #1818)
* [core] 200 for OPTIONS /non-existent/path HTTP/1.1 (fixes #2939)
* [mod_webdav] surround Lock-Token with "<...>"
* [mod_webdav] fix uuid detection macro
* [mod_webdav] fix misbehavior on blank nodes in PROPPATCH
* [mod_webdav] clean up resources after do{}while(0)
* [mod_webdav] check If-Match, If-Unmodified-Since (#1818)
* [mod_webdav] deprecated unsafe partial PUT compat
* [mod_webdav] provide ETag in more responses
* [mod_webdav] platform portability fixes
* [mod_webdav] disable elftc_copyfile() on FreeBSD
* [mod_webdav] special-case If: (<DAV:no-lock>)
* [mod_webdav] check If-None-Match (#1818)
* [stat_cache] separate func for symlink policy chk
* [stat_cache] separate symlink pol from data struct
* [stat_cache] store entries without trailing slash
* [stat_cache] pass age param for stat cache cleanup
* [stat_cache] remove splaytree ins/del debug code
* [stat_cache] FAM: reduce string copying
* [stat_cache] FAM: check FAMNextEvent() return code
* [stat_cache] FAM: use entry hash index as userdata
* [stat_cache] FAM: improve handling modified file
* [stat_cache] FAM: ignore follow-symlink config
* [stat_cache] FAM: check hash collision before add
* [stat_cache] FAM: ignore event with no valid match
* [stat_cache] FAM: funcs to invalidate entries
* [stat_cache] interfaces to invalidate entries
* [mod_webdav] update stat_cache after file mod
* [core] use high precision stat timestamp in etag
* [scons] adjustment for static build under CentOS
* [core] emit trace using path before clearing path
* [core] http_chunk_append_file_fd()
* [multiple] open target file earlier in some cases
* [stat_cache] no longer stat() and open() for stat
* [stat_cache] FAM: improve monitoring, cache 16 sec
* [stat_cache] FAM: separate routine for FDEVENT_IN
* [stat_cache] FAM: whitespace-only change
* [mod_webdav] quiet coverity warnings
* [doc] highlight relevance of module load order (fixes #2946)
* [core] behavior change: stricter URL normalization
* [stat_cache] fix compilation error for cmake
* [cmake] help cmake on FreeBSD find sys/event.h
* [scons] help scons on FreeBSD find sys/event.h
* [build] detect FreeBSD elftc_copyfile()
* [mod_openssl] use SSL_CTX_set_client_hello_cb()
* [core] support weak etags with If-None-Match
* [core] store log_state_handling flag on stack
* [core] check if splay_tree NULL before invalidate
* [mod_webdav] workaround Microsoft-WebDAV-MiniRedir
* [mod_webdav] doc Microsoft-WebDAV-MiniRedir bugs
* [mod_webdav] invalidate parent dir in stat_cache
* [doc] systemd socket activation config example
* [core] chunkqueue perf: code reuse
* [core] chunkqueue perf: specialized buffer.h funcs
* [core] chunkqueue perf: skip opening 0-length file
* [core] chunkqueue perf: read small files into mem
* [core] buffer_reset() should not be passed NULL
* [tests] has_feature() helper func
* [tests] skip mod-secdownload HMAC-SHA1,HMAC-SHA256
* [core] use high precision stat timestamp on OS X
* [mod_magnet] expose server addr (local IP) to lua
* [core] adjust http_chunk read() retry loop
* [mod_maxminddb] MaxMind GeoIP2 support
* [mod_authn_ldap] ldap_set_option LDAP_OPT_RESTART (fixes #2940)
- 1.4.53 - 2019-01-27
* [mod_cml,mod_flv_streaming] fix NULL ptr deref
* [mod_simple_vhost] t/test_mod_simple_vhost
* [mod_evhost] split uri handler func for testing
* [mod_evhost] restructure for unit tests
* [mod_evhost] t/test_mod_evhost
* [mod_access] restructure for unit tests
* [mod_access] t/test_mod_access
* [tests] include first.h and NDEBUG early
* [core] use kill_signal for gw_proc_kill()
* [tests] t/test_keyvalue
* [tests] some test config cleanup
* [tests] update skip count in mod-fastcgi.t
* [multiple] reduce initial buffer sz if large POST (fixes #2922)
* [mod_fastcgi] fix NULL ptr deref from bugfix #2922 (fixes #2923)
* [tests] more test config cleanup
* [core] perf: incremental hash of pathname w/o copy
* [core] perf: reuse buffer to redirect to directory
* [core] do not free() reused buffer
* [core] use connected sock port in dir redirect
* [core] http_response_buffer_append_authority()
* [core] use con->server_name for dir redir
* [core] memeq compare rounded to 64, not next 1M
* [core] define MD5_DIGEST_LENGTH 16
* [mod_auth] permit additional auth backends to load
* [core] send Connection: close if reqbody not read (fixes #2924)
* [core] cache rev DNS for localhost for dir redir
* [doc/conf] resolve some mime type conflicts from debian buster, regenerate mime.conf
* [core] move winsock init to network_init()
* [core] move /dev/stdin graceful restart handling
* [core] network_srv_sockets_append() shared code
* [core] systemd socket activation support
* [build] autotools: try mysqlclient.pc and mariadb.pc (fixes #2925)
* [mod_expire] look up expire fallback "" explicitly
* [multiple] calloc match ptr type (clang --analyze)
* [multiple] quiet clang --analyze where trivial
* [mod_webdav] compare COPY, MOVE Destination scheme
* [core] con->uri.scheme is maintained lowercase
* [mod_openssl] ALPN and acme-tls/1 (fixes #2931)
* [core] Fix recursive include_shell invocations
* [mod_openssl] ssl.privkey directive (optional)
- 1.4.52 - 2018-11-28
* [mysql] MySQL 8 deprecates my_bool
* [core] typo in trace
* [build] Fix unportable test(1) operator
* [core] perf: call connection_reset() fewer times
* [core] perf: array_reset_data_strings()
* [core] perf: buffer_free_ptr() __attribute__ cold
* [core] perf: one-element cache for host normalize
* [core] perf: buffer_copy_string_len()
* [core] perf: skip redundant prepare copy calls
* [core] perf: buffer_align_size() identity if align
* [core] perf: size write buffers for reuse
* [core] perf: prepend headers directly into write q
* [core] perf: copy small strings; better buf reuse
* [core] perf: copy small strings; extend last chunk
* [core] perf: specialized func for array sorting
* [core] perf: append response directly into write q
* [core] perf: better buf reuse reading from backend
* [core] chunk.c code reuse
* [multiple] perf: write headers to backend write cq
* [multiple] perf: power-2 alloc large headers
* [multiple] perf: use larger initial backend buffer
* [core] permit env vars to be set with blank value
* [mod_fastcgi] perf: reduce data copies
* [mod_fastcgi] perf: reduce data copies
* [core] perf: chunk.c chunk pool
* [multiple] perf: reuse large buffers w/ backend
* [multiple] better packing of struct chunk
* [core] perf: inline buffer_append_string_buffer()
* [core] slightly simpler flag append to string
* [mod_cgi] perf: reuse buffers for creating CGI env
* [mod_fastcgi,mod_scgi] perf: env accumulation
* [core] Don't call RAND_cleanup with OpenSSL 1.1.x
* [mod_openssl] move SSL_shutdown() to separate func
* [mod_openssl] SSL_read before second SSL_shutdown
* [mod_cgi] perf: use stat_cache for cgi handler
* [mod_openssl] prefer using TLS_server_method()
* [mod_webdav] return 403 if file should exist
* [core] perf: chunkqueue buffers already sized up
* [core] perf: simpler buffer_string_space()
* [multiple] dynamic handlers hint backend header sz
* [core] use chunk_buf_sz instead of hard-coded num
* [multiple] perf: simplify chunkqueue_get_memory()
* [mod_wstunnel] perf: reuse large buffers
* [mod_cgi] perf: cache getenv() results at start up
* [core] fix 301 -> 302 overwrite with Location (fixes #2918)
* [core] fix setting of headers previously reset (fixes #2919)
* [mod_webdav] quiet coverity false positive
* [core] server.compat-module-load = "disable"
* [core] server.chunkqueue-chunk-sz = 4096
* [core] perf: simpler buffer_string_space() (fixed)
* [core] perf: faster HTTP pipelined requests
* [core] perf: simpler buffer_string_space() (tests)
* [mod_cgi] reset reused buffer on internal redir
* [core] clear chunk buffer upon release
* [mod_fastcgi] minor: copy packet without padding
* [mod_redirect,mod_rewrite] use server_name
* [mod_fastcgi] transfer chunks minus packet padding
* [core] separate func to reset FILE_CHUNK
* [core] perf: simple, quick buffer_clear()
* [core] perf: small improvement to encoding CGI var
* [core] perf: small improvement buffer_string_space
* [core] simpler physical path concatenation
* [mod_webdav] fix LOCK on incorrect URI path
* [mod_webdav] one fewer buffer copy for COPY,MOVE
* [core] perf: simplify buffer_move()
* [mod_cml] parse query string without modifying it
* [core] perf: buffer optimizations
* [mod_wstunnel] use buffer_string_length()
* [core] perf: inline buffer_copy_buffer()
* [core] cygwin helper func for getcwd
* [core] cygwin sample to run lighttpd under NSSM
* [core] limit con->uri.authority < 1024 octets
* [mod_webdav] separate func for each request method
* [core] reject decoded url-path without leading '/'
* [multiple] validate UTF-8 in url-decoded paths
* [mod_proxy] silence coverity false positive
* [core] fix typo
* [core] buffer_append_path_len()
* [core] quiet indexfile warning if mod not loaded
- 1.4.51 - 2018-10-14
* [core] split parsing header line into separate function
* [core] explicitly return 0 instead of constant result
* [core] header parsing: use goto for error handling
* [core,security] process headers after combining folded headers
* [core] replace folding whitespace with a single space
* [buffer] fix duplicate assert and comment
* [core] redo HTTP header line folding
* [core] parse header line strings before copying
* [core] abstraction to insert/modify response hdrs
* [core] code reuse with array_insert_key_value()
* [core] simplify parsing hdr key whitespace then :
* [core] http_request_parse_reqline() separate func
* [core] abstraction layer for HTTP header manip
* [core] code reuse with http_response_body_clear()
* [mod_proxy] fix proxy.forwarded and proxy.replace-http-host (fixes #2902)
* [mod_rewrite] fix url.rewrite-repeat and url.rewrite-if-not-file (fixes #2908)
* [core] fastcgi.h link to Open Market License (OML) (fixes #2901)
* [mod_proxy,mod_wstunnel] copy full plugin_config (fixes #2903)
* [mod_fastcgi,mod_scgi] error on oversized request (fixes #2905)
* [mod_auth] send 401 for mismatch HTTP auth scheme (fixes #2906)
* [core] code reuse array_match_*() routines
* [mod_skeleton] review and simplify
* [multiple] code reuse: employ array_match_*()
* [doc] lighttpd.service uses network-online.target
* [mod_flv_streaming] code simplifications
* [mod_authn_pam] mod_auth PAM support (fixes #688)
* [mod_sockproxy] add to build
* [core] fix include_shell on inline shell commands (fixes #2910)
* [multiple] code reuse: using array_*() funcs
* [tests] t/test_array.c
* [core] array_get_int_ptr()
* [core] more memory-efficient fn table for data_*
* [tests] #undef NDEBUG before assert.h in t/test_*
* [core] inline status_counter routines
* [core] log_failed_assert() __attribute__((cold))
* [core] http_status_append()
* [core] http_method_append()
* [core] prefer buffer_append_string_len()
* [build] fix SCons build for mod_authn_pam
* [mod_userdir] security: skip username "." and ".."
* [mod_deflate] null-check to quiet coverity warning
* [core] quiet coverity false positive
* [multiple] quiet compiler warnings --without-pcre
* [mod_secdownload] support if HMAC() is a macro
* [TLS] sys-crypto.h abstraction
* [TLS] sys-crypto.h abstraction
* [build] put request.c in common src
* [meson] build fixes for libmariadb and libsasl2
* [core] PATH_INFO calculation when basedir is "/" (fixes #2911)
* [core] better consistency in buffer_is_equal*()
* [core] fix missing param from prev commit
* [mod_openssl] no renegotiation in TLS 1.3 (fixes #2912)
* [core] reject Transfer-Encoding from proxy (#2913)
* [mod_auth] use SHA1_Init,Update,Final
* [mod_openssl] add support for wolfSSL
* [build] automake support for wolfSSL
* [build] SCons support for wolfSSL
* [build] meson support for wolfSSL
* [build] CMake support for wolfSSL
* [core] perf: buffer.c internal inlines
* [mod_openssl] wolfSSL does not support SSLv2
* [core] perf: buffer_string_append_len()
* [core] permit server.error_handler to static file
- 1.4.50 - 2018-08-13
* [mod_extforward] allow explicit IPs to be untrusted (#2860)
* [core] fix crash if 'host' empty in config (fixes #2876)
* [mod_magnet] fix regression in lighty.stat (fixes #2877)
* [core] minor code cleanup in gw_recv_response()
* [core] fix rare race condition from backends (fixes #2878)
* [mod_proxy] fix segfault in Set-Cookie reverse map (fixes #2879)
* [core] fdevent_accept_listenfd() nonblock cloexec
* [build] remove m4 AC_PATH_PROG for PKG_CONFIG
* [core] some header cleanup
* [mod_wstunnel] better Sec-WebSocket-Protocol parse
* [mod_magnet] code reuse
* [mod_magnet] reduce buffer copies
* [mod_fastcgi,mod_scgi] fastcgi.balance,scgi.balance (fixes #2882)
* [core] check if SOCK_NONBLOCK is ignored (fixes #2883)
* [core] buffer_append_string_encoded_hex_lc()
* [core] more efficient hex2int()
* [mod_secdownload] compare bin MAC instead of hex
* [core] li_tohex_lc() explicitly uses lc hex chars
* [core] buffer_append_uint_hex_lc() uses lc hex
* [core] buffer_append_string_encoded() uc hex
* [tests] reduce test_base64 brute force tests
* [tests] remove test_buffer output, except on error
* [core] check for continuation in server.tag
* [core] CONNECT must be handled before fs hooks
* [mod_redirect, mod_rewrite] code reuse (sharing)
* [core] data_config_pcre_compile,exec()
* [tests] test_request unit tests
* [core] http_kv.[ch] method, status, version str
* [core] remove unused get_http_status_body_name()
* [core] remove proc_open.[ch], reduce stdio.h use
* [tests] move src/test_*.c to src/t/
* [core] server.http-parseopts URL normalization opt (fixes #1720)
* [core] inline some buffer.[ch] routines
* [core] remove some duplicative code in log.c
* [core] debug server.log-request-header-on-error
* [mod_redirect,mod_rewrite] short-circuit earlier
* [core] fix buffer_to_upper()
* [mod_cgi] handle CGI partial response header write
* [mod_redirect,mod_rewrite] pass request URI info
* [mod_redirect,mod_rewrite] encoding options (fixes #443, fixes #911)
* [mod_redirect,mod_rewrite] fix segfault w/ invalid syntax (fixes #2892)
* [mod_fastcgi] fix memleak with FastCGI auth,resp (fixes #2894)
* [mod_alias] security: potential path traversal with specific configs
* [mod_wstunnel] quiet 32-bit compiler warnings
* [core] POLLRDHUP handling for transparent proxying
* [mod_redirect,mod_rewrite] support up to 19 match
* [core] add missing includes to quiet compiler warn
* [mod_redirect,mod_rewrite] base64url encoding opt
* [mod_rewrite] require rewrite result to begin '/'
* [core] security: use-after-free invalid Range req
* [core] reset var if FAMMonitorDirectory() fails
* [core] option to propagate TCP FIN to backend host
* mod_sockproxy - socket forwarding
* [core] workaround Coverity cov-build bug with gcc7
* [build] add missing file for test_burl
* [core] quell insignificant coverity warning
* [core] extend server.http-parseopts
* [mod_alias] security: path traversal in mod_alias (in some use cases) (fixes #2898)
* [core] security: use-after-free after invalid Range request (fixes #2899)
- 1.4.49 - 2018-03-11
* [core] adjust offset if response header blank line
* [mod_accesslog] %{canonical,local,remote}p (fixes #2840)
* [core] support POLLRDHUP, where available (#2743)
* [mod_proxy] basic support for HTTP CONNECT method (#2060)
* [mod_deflate] fix deflate of file > 2MB w/o mmap
* [core] fix segfault if tempdirs fill up (fixes #2843)
* [mod_compress,mod_deflate] try mmap MAP_PRIVATE
* [core] discard from socket using recv MSG_TRUNC
* [core] report to stderr if errorlog path ENOENT (fixes #2847)
* [core] fix base64 decode when char is unsigned (fixes #2848)
* [mod_authn_ldap] fix mem leak when ldap auth fails (fixes #2849)
* [core] warn if mod_indexfile after dynamic handler
* [core] do not reparse request if async cb
* [core] non-blocking write() to piped loggers
* [mod_openssl] minor code cleanup; reduce var scope
* [mod_openssl] elliptic curve auto selection (fixes #2833)
* [core] check for path-info forward down path
* [mod_authn_ldap] auth with ldap referrals (fixes #2846)
* [core] code cleanup: separate physical path sub
* [core] merge redirect/rewrite pattern substitution
* [core] fix POST with chunked request body (fixes #2854)
* [core] remove unused func
* [doc] minor update to *outdated* doc
* [mod_wstunnel] fix for frames larger than 64k (fixes #2858)
* [core] fix 32-bit compile POST w/ chunked request body (#2854)
* [core] add include sys/poll.h on Solaris (fixes #2859)
* [core] fix path-info calculation in git master (fixes #2861)
* [core] pass array_get_element_klen() const array *
* [core] increase stat_cache abstraction
* [core] open additional fds O_CLOEXEC
* [core] fix CONNECT w strict header parsing enabled
* [mod_extforward] CIDR support for trusted proxies (fixes #2860)
* [core] re-enable overloaded backends w/ multi wkrs
* [autoconf] reduce minimum automake version to 1.13
* [mod_auth] constant time compare plain passwords
* [mod_auth] check that digest realm matches config
* [core] fix incorrect hash algorithm impl
- 1.4.48 - 2017-11-11
* [mod_webdav] fix crash if stat fails, not ENOENT
* [core] fix build --disable-ipv6 (fixes #2832)
* [scons] Merge branch 'personal/stbuehler/scons-cleanup'
* [autobuild] Merge branch 'personal/stbuehler/autobuild-cleanup'
* [meson] new build system
* [core] fix var.CWD (regression in 1.4.46) (fixes #2835)
* [core] fix implicit wildcard IPv4 and IPv6 listen
* [autobuild] remove obsolete warning about mmap use
* [core] isolate sock_addr manipulation
* [stat_cache] remove debug code littered in file
* [core] cleanup unused ifndef
* [core] cleanup: consolidate FAM code in stat_cache
* [core] consolidate backend network write handlers
* [autobuild] allow sendfile() in cross-compile (fixes #2836)
* [core] quiet pedantic cc warning for excess comma
* [core] isolate backend fdevent handler defs
* [mod_openssl] error if ssl.engine in wrong section (fixes #2837)
* [core] fix lighttpd -1 one-shot graceful shutdown
* [mod_cgi] quiet trace if mod_cgi sends SIGTERM (fixes #2838)
* [build] fix link of test_configfile.c
* [core] quiet coverity false positive
* [mod_openssl] more pedantic check of return values
* [mod_openssl] allow specifying server cert chain (fixes #2692)
* [mod_openssl] ssl.openssl.ssl-conf-cmd (fixes #2758)
* [doc] NEWS - fix improper format line breaks
* [mod_authn_ldap] replace use of deprecated funcs
* [mod_authn_sasl] SASL auth (new) (fixes #2275)
* [mod_openssl] quiet trace from TCP probes (#2784)
* [core] fix dup typedef compiler warning
* [scons] fix various python2/3 incompatibilities
* [doc] fix doc/config/conf.d/fastcgi.conf example
- 1.4.47 - 2017-10-22
* [mod_authn_gssapi] needs -lcom_err under Darwin
* [core] stricter validation of request-URI begin
* [core] fix 1.4.46 regression in config match (fixes #2830)
* [core] normalize config addrs for != match (#2830)
* [core] normalize config addrs for eq and ne (#2830)
* [doc] use https:// URLs to .lighttpd.net resources
* [core] fix 1.4.46 regression in Last-Modified
- 1.4.46 - 2017-10-21
* [TLS] mark code that uses -lcrypto but not -lssl
* remove redundant calls to end-of-request hooks
* [mod_mysql_vhost] remove dev debug code
* [core] con interface for read/write; isolate SSL
* [core] new plugin hooks to help isolate SSL
* [mod_openssl] new module (preliminary layout)
* [core] move network_open_file_chunk() to chunk.c
* [mod_openssl] move openssl code into mod_openssl
* [mod_openssl] move openssl config into mod_openssl
* [core] move connection_read_cq() to connections.c
* [mod_geoip] call from handle_request_env hook
* [build] only mod_openssl depends on -lssl
* [mod_auth] enable optional authz if extern authn (fixes #2481)
* [mod_openssl] allow ssl.verifyclient on url paths (fixes #2245)
* [core] do not emit req/response hdrs w/ blank val
* [mod_setenv] directives to overwrite/remove hdrs (fixes #650, fixes #2295)
* [mod_secdownload] new directives modify hash path (fixes #646, fixes #1904)
* [core] move con throttling to connections-glue.c
* [core] support Expect: 100-continue with HTTP/1.1 (fixes #377, #1017, #1953, #2438)
* [mod_openssl] use TLS SNI to set host-based certs
* [mod_ssi] send #exec cmd="..." output to temp file
* [mod_scgi] tests/mod-scgi.t unit tests
* [mod_auth] support LDAP groups for HTTP auth (fixes #1817)
* [core] use getaddrinfo,inet_pton vs gethostbyname (fixes #2783)
* [mod_auth] LDAP escape username in DN and filters
* mod_vhostdb* (dbi,mysql,pgsql,ldap) (fixes #485, fixes #1936, fixes #2297)
* [mod_auth] have LDAP template replace '?'
* apply debian/patches/spelling.patch
* [core] permit connection-level state in modules
* [TLS] include <openssl/opensslv.h> in rand.c
* [core] config match w/ arbitrary HTTP request hdrs (fixes #1556)
* [mod_flv_streaming] add end pos param (fixes #1887)
* [core] X-LIGHTTPD-KBytes-per-second from backends (fixes #954)
* [core] improve accuracy of bandwidth write limits
* [core] quicker graceful shutdown
* [tests] remove unused file depending on CGI.pm
* [doc] doc/initscripts.txt (fixes #2782)
* [core] check issetugid() early in main()
* [core] combine duplicated getrlimit, network_init
* [core] move interval timer near worker event loop
* [core] initialize globals at top of main()
* [core] graceful restart with SIGUSR1 (fixes #2785)
* [mod_authn_mysql] fix minor memleak at shutdown
* [mod_rrdtool] no error if loaded but no config
* [doc] SIGUSR1 doc and lighttpd-angel SIGUSR1
* [mime.conf] add text/markdown to utf-8 list, regenerate mime.conf
* [mod_cgi] RFC3875 CGI local-redir strict adherence (#2108)
* [mod_cgi] do not send "Status" back to client
* [core] add label for 308 Permanent Redirect
* [mod_openssl] inherit ssl.* from global scope
* [core] handle if backend sends Transfer-Encoding (#2786)
* [core] use kqueue in level-triggered mode (fixes #2788)
* [mod_fastcgi,mod_scgi] backend spawn EINTR retry (#2788)
* [core] config opt to intercept dynamic handler err (fixes #974)
* [core] set default server_tag in server.c
* [core] include lighttpd vers in server started msg
* [core] move version.h logic into server.c
* [core] issue trace if max-fds too large (fixes #2789)
* [mod_fastcgi,mod_scgi] consistent waitpid handling (fixes #2791)
* [mod_cgi] fix CGI local-redir w/ url.rewrite-once (fixes #2793)
* [mod_scgi] fix unused_procs bidirectional-links
* [mod_scgi] fix potential repeated use of proc->id
* [mod_fastcgi,mod_scgi] consolidate backend process accounting (#2788)
* [mod_cgi] status 200 OK if no hdrs (deprecated) (#2786)
* [core] fix regex condition subst w/ mod_extforward (fixes #2794)
* [tests] correct skip count for mod-scgi.t
* [mod_vhostdb_ldap] fix inverted logic (coverity)
* [mod_cgi] cgi.local-redir = [enable|disable] (#2108, #2793)
* [core] $REQUEST_HEADER[...] subsumes other config (#1556)
* [mod_usertrack] usertrack.cookie-attrs config opt (fixes #2795)
* [core] default server.max-fds=4096 if unspecified (#2789)
* update .gitignore, add .gitattributes
* [core] reduce con allocation for small max_conns
* [config] more specific checks for array lists
* [mod_authn_gssapi] needs -lcom_err under cygwin
* [mod_cgi,fastcgi,scgi,proxy] fix streaming response (fixes #2796)
* [mod_auth] Digest nonce on system with time <=1978
* [doc] simple-vhost.debug takes an integer value (fixes #2797)
* [core] fix crash if invalid config file (fixes #2798)
* [core] remove unused member con->in_joblist
* [mod_proxy] remove use of con->got_response
* [core] consolidate dynamic handler response parse
* [core] remove now-unused buffer_search_string_len
* [mod_cgi] eliminate warning when compiled -Os
* [mod_scgi] do not reconnect after connect succeeds
* [tests] reduce time waiting for backends to start
* [core] server.syslog-facility (fixes #2800)
* [core] server.syslog-facility (use -1 for unset) (#2800)
* [core] allow overriding prior config values (fixes #2799)
* [mod_proxy] set Content-Length, if available
* [mod_proxy] set X-Forwarded-Host (fixes #418)
* [core] remove redundant Content-Length digit check
* [core] remove some unused header includes
* [core] use con->dst_addr_buf instead of ip recalc
* [core] include "fdevent.h" where needed
* [core] make stat_cache private to stat_cache.c
* [core] collect ioctl FIONREAD code
* [core] include <netdb.h> where needed
* [core] report file path when mkstemp() fails (fixes #2802)
* [core] export http_request_host_policy() for reuse
* [mod_extforward] simplify header search
* [mod_extforward] consolidate ipstr_to_sockaddr()
* [mod_extforward] upd scheme after ipstr validated
* [mod_extforward] rearrange code; prep Forwarded
* [mod_extforward] support Forwarded HTTP Extension (#2703)
* [mod_proxy] support Forwarded HTTP Extension (fixes #2703)
* [core] inet_pton(), inet_ntop() on (sock_addr *)
* [core] save connection-level proto in con->proto
* [mod_extforward] support HAProxy "PROXY" protocol (fixes #2804)
* [mod_extforward] fix typos in Forwarded handling
* [core] fix stat_cache initialization error
* [core] perf: stat_cache_mimetype_by_ext()
* [core] inet_ntop_cache now 4-element cache
* [mod_openssl] free local_send_buffer at exit
* [core] extend mimetype search w/o leading '.'
* [core] no SOCK_CLOEXEC on Linux kernel < 2.6.27
* [core] inline simple buffer is empty checks
* [core] buffer_substr_replace()
* [core] sys-strings.h abstraction for strings.h
* [mod_proxy] fix backslash escaping
* [core] omit default port from normalized host str
* [core] fix build issue without ipv6 support
* [core] permit strings and integers in config array
* [mod_accesslog] flag high precision ts for %T (fixes #2807)
* [core] permit strings,ints,arrays in config array
* [core] calloc plugin_config for consistent init
* [mod_proxy] simple host/url mapping in headers (fixes #152)
* [mod_uploadprogress] handle query str progress ID (fixes #2808)
* [mod_fastcgi] consolidate backend read code
* [mod_proxy,mod_scgi] fix truncated error trace
* [core] skip socket shutdown() if con->fd negative
* [core] act as transparent proxy after con Upgrade
* [core] remove redundant resets of fde_ndx
* [core] configparser: fix resource handling in error cases (fixes #2809)
* [core] fix crash for invalid syntax in config file (fixes #2810)
* [core] prep mod transitions to transparent proxy
* [mod_proxy] basic support for Upgrade: websocket (fixes #2811)
* [mod_extforward] compile on OSX
* [core] set server.max-keep-alive-requests = 100 (fixes #2205)
* [core] perf: skip redundant strlen() if len known
* [core] optional condition in config "else" clause (fixes #1268)
* [mod_cgi] basic support for Upgrade: websocket
* [core] buffer to disk streaming to slow backends
* [core] silence compiler warnings if !HAVE_FORK
* [build] -Werror if --enable-extra-warnings=error
* [build] autotools use AC_PROG_CC_STDC macro
* [mod_openssl] ssl.ca-crl-file for CRL (fixes #2319)
* [mod_openssl] ssl.ca-dn-file (fixes #2694)
* [mod_proxy] fix typo identified by coverity
* [mod_openssl] ignore client verification error if not enforced
* [mod_openssl] fix compile with openssl 1.1.0
* [mod_extforward] quiet clang compiler warning
* [mod_dirlisting] sort "../" to top of names
* [mod_openssl] safer_X509_NAME_oneline() (fixes #2693)
* [core] allow earlier plugin init for SSL/TLS
* [mod_openssl] adjust use of ssl.ca-dn-file
* [core] fix compiler warnings on Mac OS X
* [core] server.socket-perms to set perms on unix (fixes #656)
* [core] get port from sock_addr if AF_INET,AF_INET6
* [core] server.error_handler_404 X-Sendfile ENOENT (#2474)
* [core] consolidate fork()/execve() code (#1393)
* [core] mv log_error_{open,cycle.close} to server.c
* [core] rename fd_close_on_exec()
* [core] remove unused includes of stat_cache.h
* [core] add missing include of stdlib.h
* [core] reduce exposure of unistd.h, other includes
* [core] sock_addr_from_str_hints reusable name res
* [core] continue collecting use of netdb.h
* [core] continue collecting use of netdb.h
* [core] continue collecting use of netdb.h
* [core] fdevent_connect_status() shared code
* [core] add const to reduce .data segment size
* [mod_proxy] move data_fastcgi into mod_proxy.c
* [mod_proxy] store address family at config time
* [mod_fastcgi] slightly simplify counters
* [mod_fastcgi] consolidate connect() error handling
* [mod_fastcgi] set request_id in fcgi_create_env()
* [mod_fastcgi] move delayed connect() into switch()
* [mod_fastcgi,mod_scgi] consistent connect() error
* [mod_scgi] remove unused parse_response member
* [mod_fastcgi,mod_scgi] struct member consistency
* [mod_fastcgi,mod_scgi] parse bin_path at startup
* [mod_fastcgi,mod_scgi] use temp buffer for cgi_env
* [core] shared code for socket backends
* [core] spread load on socket backend procs
* [core] store sockaddr for socket backend procs
* [core] resolve DNS at startup for socket backends
* [core] adaptive spawning for socket backend procs (fixes #1162)
* quell compiler warnings for -Wimplicit-fallthrough
* [doc] update README
* [core] fdevent_cycle_logger()
* [core] reap lighttpd worker pids precisely
* [core] restart piped loggers if they exit (fixes #1393)
* [mod_webdav] PROPFIND getetag attr must match GET
* [core] consistent behavior w/ and w/o SA_SIGINFO
* [core] do not remove pid-file in test mode
* [core] add public domain SHA1() if no crypto
* [mod_wstunnel] websocket tunnel to other protocol
* [core] forward SIGHUP only to lighttpd workers
* [mod_dirlisting] treat README and HEADER as paths (fixes #2818)
* [core] set one-shot mode fd O_NONBLOCK, FD_CLOEXEC
* [core] remove fdevent fcntl_set hook
* [mod_extforward] typo in comment
* [mod_cgi] add missing #include
* [core] fix invalid sizeof() identified by coverity
* [core] add missing #include
* [core] base_decls.h to quiet compiler warnings
* [core] set socket perms after bind, before listen
* [core] warn if backend server config contains '_'
* [mod_extforward] PROXY proto and SSL_CLIENT_VERIFY
* [core] workaround for AIX mmap define
* [mod_accesslog] flush access logs every 4 seconds
* [mod_cgi] fix bug to properly exec interpreter
* [mod_fastcgi] fix return when streaming min buffer
* [core] attempt to quiet coverity false positives
* [core] attempt to quiet coverity false positives
* [core] attempt to quiet compiler warning in LEDE
* [core] SIGCHLD handle_waitpid hook for modules
* [mod_rrdtool] handle_trigger returns HANDLER_GO_ON
* [mod_openssl] ssl.read-ahead="disable" for stream
* [mod_cgi] add FDEVENT_IN upon CGI exit
* [mod_cgi] omit cgi_handle_fdevent after proc exit
* [mod_webdav] check HAVE_UUID for -luuid
* [core] adjust li_rand_pseudo* interfaces
* [mod_wstunnel] fix config parsing bug
* [core] fdevent setsockopt() helper functions
* [core] make strftime_cache_get() 16-element cache
* [core] disable Nagle if streaming to backend
* [core] fix triggered assert on HTTP chunked input (fixes #2822)
* [mod_wstunnel] fix NULL ptr deref
* [algo_sha1] fix compile break and warnings
* [lemon] fix gcc implicit-fallthrough warning
* [core] URI scheme is case-insensitive
* [network] do not append port to unix socket paths
* [unittests] consolidate base64 test code
* [core] use sun_path for addr string for AF_UNIX (fixes #2826)
* [core] cleaner code; remove goto from network.c
* [core] /dev/stdin listener for inetd wait yes
* [core] compare listen addrs after DNS resolution
* [core] inline chunkqueue_is_empty()
* [core] limit use of TCP_CORK
* [core] return from http_response_read if small rd
* [core] gateways might Upgrade con before body read
* [mod_wstunnel] set Sec-WebSocket-Protocol if bin
* [mod_wstunnel] remove invalid appended '\0'
* [core] quiet coverity warning
* [core] handle fds pending close after poll timeout (fixes #2827)
* [core] fix $REQUEST_HEADER[...] parsing in config (#1556)
* [mod_dirlisting] custom js date parse func (fixes #2823)
* [core] remove fd interest if create_env returns
* [mod_openssl] copy data for larger SSL packets
* [mod_openssl] remove erroneous SSL_set_shutdown()
* [core] permit LF to end lines if !header-strict
* [core] add back REQUEST_SCHEME for backends
* [core] remove fdevent_sched_run from fdevent_libev (#2827)
* [mod_openssl] ssl.read-ahead="disable" by default
* [core] adjust parser for valid variable expansion
* [cmake] handle WITH_WEBDAV_LOCKS option
* [cmake] fix attr header detection and linking
* [cmake] link mod_cml with memcached
* [core] reproducible build: hide __DATE__ __TIME__ (fixes #2828)
* [core] perf: more efficient fdevent_sched_run()
* [core] translate DNS to IP str for cond socket cmp
- 1.4.45 - 2017-01-14
* [mod_cgi] skip local-redir handling if to self (fixes #2779, #2108)
* [mod_webdav] fix crash when plugin_ctx cleaned up (fixes #2780)
* [mod_fastcgi] detect child exit, restart proactively
* [mod_scgi] detect child exit, restart proactively
* [TLS] ssl.read-ahead = "disable" for low mem (fixes #2778)
- 1.4.44 - 2016-12-24
* [mod_scgi] fix segfault (fixes #2762)
* [mod_authn_gssapi] fix memory leak
* [config] warn if mod_authn_ldap,mysql not listed
* [mod_magnet] fix magnet_cgi_set() set of env vars (fixes #2763)
* [mod_cgi] FreeBSD 9.3/MacOSX does not have pipe2() (fixes #2765)
* [mod_extforward] fix crash on invalid IP (fixes #2766)
* [mod_fastcgi] fix segfault if all backends down (fixes #2768)
* [mod_cgi] fix out of sockets error for POST to CGI (fixes #2771)
* [mod_auth] compile fix for Mac OS X XCode (fixes #2772)
* [mod_authn_gssapi] better resource cleanup
* [core] compile fix for Mac OS X 10.6 (old) (fixes #2773)
* fix race in dynamic handler configs (reentrancy) (fixes #2774)
* [mod_authn_mysql] close mysql_conn in cleanup
* [mod_webdav] compile fix when locking not enabled
* load mod_auth & mod_authn_file in sample/test.conf
* comment out auth.backend.ldap.* in tests/*.conf
* [mod_fastcgi,mod_scgi] warn if invalid "bin-path"
* RAND_pseudo_bytes() is deprecated in openssl 1.1.0
* openssl 1.1.0 init and cleanup
* [mod_cgi] remove direct calls to network_backend*
* [build] build network_*.c into lighttpd executable
* suggest inclusion of mod_geoip... before mod_ssi.
* set systemd settings similar to lighttpd2
* [doc] remove reference to Linux rt-signals
* [mod_authn_gssapi] fix missing error ret, coverity
* [core] rename li_rand() to li_rand_pseudo_bytes()
* remove #include "stream.h" where not used
* [mod_cml] include lua headers before base.h
* [core] combine duplicated connection reset code
* [mod_ssi] produce content in subrequest hook
* [core] remove srv->entropy[]
* [core] defer li_rand_init() until first use
* [core] permit connection-level state in modules
* [mod_dirlisting] render dirlisting as HTML (fixes #2767)
* [mod_proxy] replace HTTP Host sent to backend (fixes #2770)
* [mod_ssi] basic recursive SSI include virtual (fixes #536)
* [mod_ssi] implement, ignore <!--#comment ... -->
* [core] consolidate duplicated read-to-close code
* [core] fix segfault when parsing a bad config file
* [core] support Transfer-Encoding: chunked req body (fixes #2156)
* [autobuild] set NO_RDYNAMIC=yes for midipix
* [mod_proxy] proxy.balance = "sticky" option (fixes #2117)
* [mod_secdownload] warn if SHA used w/o SSL crypto
* [build] compile fixes for AIX
* [build] check for pipe2() at configure time
* [mod_evhost] fix an incorrect error trace
* [tests] mark tests/docroot/www/*.pl scripts a+x
* [mod_cgi] fall back to pipe() if pipe2() fails
* fix SCons fullstatic build with glibc pthreads
* [TLS] openssl 1.1.0 makes SSL_OP_NO_SSLv2 no-op
- 1.4.43 - 2016-10-31
* [autobuild] remove mod_authn_gssapi dep on resolv
* [mod_deflate] ignore '*' in deflate.mimetypes
* [autobuild] omit module stubs when missing deps
* [TLS] openssl 1.1.0 hides struct bignum_st
* [autobuild] move http_cgi_ssl_env() for Mac OS X (fixes #2757)
* [core] use paccept() on NetBSD (replace accept4())
* [TLS] remote IP conditions are valid for TLS SNI (fixes #2272)
* [doc] lighttpd-angel.8 (fixes #2254)
* [cmake] build fcgi-auth, fcgi-responder for tests
* [mod_accesslog] %{ratio}n logs compression ratio (fixes #2133)
* [mod_deflate] skip deflate if loadavg too high (fixes #1505)
* [mod_expire] expire by mimetype (fixes #423)
* [mod_evhost] partial matching patterns (fixes #1194)
* build: use CC_FOR_BUILD for lemon when cross-compiling
* [mod_dirlisting] config header and readme files
* [config] warn if mod_authn_ldap,mysql not listed
* fix FastCGI, SCGI, proxy reconnect on failure
* [core] network_open_file_chunk() temp file opt
* [mod_rewrite] add more info in error log msg
* [core] fix fd leak when using libev (fixes #2761)
* [core] fix potential streaming tempfile corruption (fixes #2760)
* [mod_scgi] fix prefix matching to always match url
* [autobuild] adjust Makefile.am for FreeBSD
* [build] move some build scripts to scripts/
* [autotools] fix configure.ac for opensuse 13.2
- 1.4.42 - 2016-10-16
* [TLS] SSL_shutdown() only if handshake finished
* [mod_proxy,mod_scgi] shutdown remote only if local (#2743)
* [core] check if client half-closed TCP if POLLHUP (#2743)
* [core] enforce wait for POLLWR after EINPROGRESS (fixes #2744)
* [core] do not enter handler twice after read body
* [core] proxy,scgi omit shutdown() to backend (fixes #2743)
* [mod_dirlisting] dirlist does not handle POST
* [mod_dirlisting] js column sort for dirlist table (fixes #613, fixes #2315)
* [mod_auth] Digest auth fails after rewrite (fixes #2745)
* [mod_auth] refactor out auth backend code
* [mod_auth] extensible interface for auth backends
* [core] better DragonFlyBSD support (fixes #2746)
* [mod_auth] include base.h for USE_OPENSSL def
* [mod_auth] support CRYPT-MD5-NTLM algorithm (fixes #1743)
* [mod_auth] terminate salt for CRYPT-MD5-NTLM
* [core] fix crash if ready events on abandoned fd (fixes #2748)
* [mod_auth] http_auth_md5_hex2bin()
* [mod_auth] remove empty mod_auth.h
* [mod_auth] mod_authn_mysql.c MySQL auth backend (fixes #752, fixes #1845)
* [mod_cgi] permit CGI exec of unreadable files (fixes #2374)
* [mod_uploadprogress] add to default build
* [mod_geoip] add to default build (fixes #2705, fixes #2101, fixes #2092, fixes #2025, fixes #1962, fixes #1938)
* [mod_fastcgi] Authorizer support with Responder (fixes #321, fixes #322)
* [tests] test coverage for issues (#321, #322)
* dynamic handlers store debug flag in handler_ctx
* [mod_fastcgi] allow authorizer, responder for same path/ext (#321)
* backport mod_deflate to lighttpd 1.4 (fixes #1824, fixes #2753)
* [autobuild] test_configfile might need vector.c (fixes #2752)
* [mod_deflate] fix longjmp clobber compiler warning
* remove unused array type TYPE_COUNT data_count
* [mod_auth] structured data, register auth schemes
* [mod_auth] mod_authn_gssapi Kerberos auth backend (fixes #1899)
* [autobuild] skip two new tests if no fcgi-auth
* [SCons] define with_krb5 for SCons build
* [SCons] fix syntax error in SConstruct
* [SCons] define with_geoip for SCons build
* [CMake] fix clang -Wcast-align warnings in lemon.c
* remove excess initializers (fix compiler warnings)
* fix errors detected by Coverity Scan
* performance: use Linux extended syscalls and flags
* [mod_scgi] add uwsgi protocol support
* [mod_auth] refactor LDAP code into smaller funcs
* [mod_auth] HTTP Basic auth backends also do authz (#1817)
* [mod_auth] ldap filter subst user for multiple '$' (fixes #1508)
* [mod_auth] permit specifying ldap DN; skip search (fixes #1248)
* [autobuild] update module/feature report
* [cmake] build mod_authn_gssapi if WITH_KRB5
* [mod_auth] fix printing of IP in error trace
* [mod_mysql_vhost] support multiple '?' replacement (fixes #2163)
* [core] make server.max-request-size scopeable (#1901)
* [core] server.max-request-field-size (fixes #2130)
* [core] optional condition in config "else" clause (fixes #1268)
* [core] restrict where config "else" clauses occur (#1268)
* silence warnings from clang ccc-analyzer
* consistent, shared code to create CGI env
* [TLS] replace env entries in https_add_ssl_entries
* [TLS] set SSL_CLIENT_M_SERIAL w/ client cert SN (fixes #2268)
* [TLS] set SSL_CLIENT_VERIFY w/ client cert (#1288, #2693)
* [TLS] set SSL_PROTOCOL, SSL_CIPHER* (fixes #2511)
* [core] rand.[ch] to use better RNGs when available
* [mod_cgi] fix pipe_cloexec() when no O_CLOEXEC
* ignore return value from fcntl() FD_CLOEXEC
* build w/o compiler warnings if no zlib or bz2lib
- 1.4.41 - 2016-07-31
* remove long-deprecated, non-functional config opts
* [config] inherit server.use-ipv6 and server.set-v6only (fixes #678)
* [mod_auth] fix Digest auth to be better than Basic (fixes #1844)
* [mod_ssi] fix #config sizefmt="bytes"
* [autobuild] move inet_pton detection later
* [core] #include <sys/filio.h> for FIONREAD (fixes #2726)
* [autobuild] clock_gettime() -lrt with glibc < 2.17
* [security] do not emit HTTP_PROXY to CGI env
* [build_cmake] clock_gettime() -lrt w/ glibc < 2.17 (fixes #2737)
* [core] avoid spurious trace and error abort
* [core] stay in CON_STATE_CLOSE until done with req
* [core] $HTTP["remoteip"] must handle IPv6 w/o []
* [mod_status] show keep-alive status w/ text output (fixes #2740)
* do not set REDIRECT_URI in mod_magnet, mod_rewrite (#2738)
* revert 1.4.40 swap of REQUEST_URI, REDIRECT_URI (fixes #2738)
* [core] permit IPv6 address scope identifier
* [TLS] better handling of SSL_ERROR_WANT_READ/WRITE
* [TLS] read all available records from SSL_read()
* [core] try AF_INET after AF_INET6 if use-ipv6
* [core] set chunkqueue tempdirs at startup
* [security] ensure gid != 0 if server.username set (fixes #2725)
* [security] disable stat_cache if !follow-symlink (fixes #2724)
* [core] fix buffer_copy_string_hex() assert (fixes #2742)
* [security] encode quoting chars in HTML and XML
* [cmake] always define _GNU_SOURCE
* [cmake] enable warnings for GCC and Clang
* [cmake] set cmake_minimum_required to 2.8.2
- 1.4.40 - 2016-07-16
* [mod_ssi] enhance support for ssi vars (thx fbrosson)
* add handling for lua 5.2 and 5.3 (fixes #2674)
* use libmemcached instead of deprecated libmemcache
* add force_assert for more allocation results
* [mod_cgi] use MAP_PRIVATE to mmap temporary file (fixes #2715)
* [core] do not send SIGHUP to process group unless server.max-workers is used (fixes #2711)
* [mod_cgi] edge case chdir "/" when docroot "/" (fixes #2460)
* [mod_cgi] issue trace and exit if execve() fails (closes #2302)
* [configparser] don't continue after parse error (fixes #2717)
* [core] never evaluate else branches until the previous branches are ready (fixes #2598)
* [core] fix conditional cache handling
* [core] improve conditional enabling (thx Gwenlliana, #2598)
* [mod_compress] case-insensitive content-codings (fixes #2645)
* [plugins] don't include dlfcn.h if not needed (fixes #2548)
* [mod_fastcgi] 404 for X-Sendfile file not found (fixes #2474)
* [mod_cgi] send 500 if CGI ends and there is no response (fixes #2542)
* [mod_cgi] consolidate CGI cleanup code
* [mod_cgi] simplify mod_cgi_handle_subrequest()
* [mod_cgi] kill CGI if fail to write request body
* [mod_proxy] use case-insensitive comparison to filter headers, send Connection: Close to backend (fixes #421)
* [mod_dirlisting] dir-listing.hide-dotfiles = "enabled" by default (fixes #1081)
* [mod_secdownload] fix buffer overflow in secdl_verify_mac (reported by Fortify Open Review Project)
* [mod_fastcgi,mod_scgi] fix leaking file-descriptor when backend spawning failed (reported by Fortify Open Review Project)
* [core] improve array API to prevent memory leaks
* [core] refactor array search; raise array size limit to SSIZE_MAX
* [core] fix memory leak in configparser_merge_data
* [core] provide array_extract_element and use it
* [core] configparser: error on duplicate keys in array merge (fixes #2685)
* [core] more careful parse of $SERVER["socket"] config str (prepare #2204)
* [core] accept $SERVER["socket"] without port, use server.port as fallback (fixes #2204)
* [mod_magnet] define lua_pushglobaltable (for lua5.1) and use it (fixes #2719)
* [ssl] support disabling ssl.verifyclient.activate in SNI callback (fixes #2531)
* restart (some) syscalls after SIGCHLD interrupted them; should fix LDAP problems (fixes #2464)
* [core] log remote address on request timeouts (fixes #652)
* [autobuild] use AC_CANONICAL_HOST instead of AC_CANONICAL_TARGET (fixes #1866)
* [core] fix request_start in keep-alive requests to mark time when received first byte (fixes #2412)
* [core] truncate pidfile on exit (fixes #2695)
* consistent inclusion of config.h at top of files (fixes #2073)
* [core] add generic vector implementation
* [core] replace array weakref with vector
* [base64] fix crash due to broken force_assert
* [unittests] add test_buffer and test_base64 unit tests
* [buffer] refactor buffer_path_simplify (fixes #2560)
* validate return values from strtol, strtoul (fixes #2564)
* [mod_ssi] Add SSI vars SCRIPT_{URI,URL} and REQUEST_SCHEME (fixes #2721)
* [config] warn if server.upload-dirs has non-existent dirs (fixes #2508)
* [mod_proxy] accept LF delimited headers, not just CRLF (fixes #2594)
* [core] wait for grandchild to be ready when daemonizing (fixes #2712, thx pasdVn)
* [core] respond 411 Length Required if request has Transfer-Encoding: chunked (fixes #631)
* [core] fixed the loading for default modules if they are specified explicitly
* [core] lighttpd -tt performs preflight startup checks (fixes #411)
* [stat] mimetype.xattr-name global config option (fixes #2631)
* [mod_webdav] allow Depth: Infinity lock on file (fixes #2296)
* [mod_status] use snprintf() instead of sprintf()
* pass buf size to li_tohex()
* use li_[iu]tostrn() instead of li_[iu]tostr()
* [stream] fstat() after open() to obtain file size
* [core] clean up srv before exiting for lighttpd -[vVh]
* [mod_fastcgi,mod_scgi] check for spawning on same unix socket (fixes #319)
* [mod_cgi] always set QUERY_STRING (fixes #1339)
* [mod_auth] send charset="UTF-8" in WWW-Authenticate (fixes #1468)
* [mod_magnet] rename var for clarity (fixes #1483)
* [mod_extforward] reset cond_cache for scheme (fixes #1499)
* [mod_webdav] readdir POSIX compat (fixes #1826)
* [mod_expire] reset caching response headers for error docs (fixes #1919)
* [mod_status] page refresh option (fixes #2170)
* [mod_status] table w/ count of con states (fixes #2427)
* [mod_dirlisting] class for dir <tr> (fixes #2304)
* [core] define __STDC_WANT_LIB_EXT1__ (fixes #2722)
* [core] setrlimit max-fds <= rlim_max for non-root (fixes #2723)
* [mod_ssi] config ssi.conditional-requests
* [mod_ssi] config ssi.exec (fixes #2051)
* [mod_redirect,mod_rewrite] short-circuit if blank replacement (fixes #2085)
* [mod_indexfile] save physical path to env (fixes #448, #892)
* [core] open fd when appending file to cq (fixes #2655)
* [config] server.listen-backlog option (fixes #1825, #2116)
* [core] retry tempdirs on partial write, ENOSPC (fixes #2588)
* [core] compile with upcoming openssl 1.1.0 release (fixes #2727)
* [core] improve dynamic handler control flow logic
* [core] defer reading request body until handle subrequest (fixes #2541)
* [core] always poll for client POLLHUP/POLLERR events (fixes #399)
* [mod_fastcgi,mod_scgi,mod_proxy] handlers can read response before sending req body (fixes #131, #2566)
* [mod_cgi] asynchronous send of request body to CGI
* [core] compile with upcoming openssl 1.1.0 release (fixes #2727)
* [core] set REDIRECT_STATUS to error_handler_saved_status (fixes #1828)
* [core] server.error-handler new directive for error pages (fixes #2702)
* [core] support IPv6 in $HTTP["remote-ip"] CIDR cond match (fixes #2706)
* [core] http_response_send_file() shared code (#2017)
* [mod_fastcgi] use http_response_xsendfile() (fixes #799, fixes #851, fixes #2017, fixes #2076)
* [mod_scgi] X-Sendfile feature (fixes #2253)
* [mod_cgi] X-Sendfile feature (fixes #2313)
* [mod_webdav] lseek,read if fs can not mmap (#2666, fixes #962)
* [mod_compress] use mmap and trap SIGBUS (#2666, fixes #1879)
* fallback to lseek()/read() if mmap() fails (#fixes 2666)
* [mod_auth] skip blank lines and comment lines (fixes #2327)
* [core] fallback to write if sendfile not supported (fixes #471, #987)
* [core] preserve PATH_INFO case on case-insensitive fs (fixes #406)
* [mod_ssi, mod_cml] set DOCUMENT_ROOT to basedir (fixes #2383)
* [core] cmd line opt to shutdown after idle time limit (fixes #2696)
* [core] lighttpd -1 handles single request on stdin socket (fixes #1584)
* [mod_fastcgi,mod_scgi] IPv6 support (fixes #2372)
* [mod_status] add JSON output option (fixed #2432)
* [mod_webdav] map COPY/MOVE Destination to aliases (fixes #1787)
* [mod_webdav] improve PROPFIND,PROPPATCH (#1818, #1953)
* [core] reset response headers, write_queue for error docs
* build with libressl
* static build instructions using SCons or make
* [mod_auth] preserve WWW-Authenticate for error docs (fixes #2730)
* check close() return code after writing to file
* adjustments for openssl 1.1.0 pre-release
* [config] support include file glob (fixes #1221)
* [mod_evasive] 302 redirect option if limit reached (fixes #2199)
* [build] enhancements for cross-compiling (fixes #2276)
* [mod_accesslog] report aborted con state with %X (fixes #1890)
* [mod_ssi] fix SSI statement parser
* [mod_ssi] include relative to alias,userdir (fixes #222)
* [mod_ssi] add PCRE_* options to constrain regex
* [mod_ssi] more flexible quoting (fixes #1768)
* [core] wrap IPv6 literal in "[]" in redirect URL
* [mod_ssi] fix parse of tag across buf boundary (fixes #2732)
* [mod_cgi,mod_scgi] X-Sendfile sets file_started (fixes #2733)
* [mod_fastcgi] no chunked response w/ X-Sendfile (fixes #2733)
* [config] opts for http header parsing strictness (fixes #551, fixes #1086, fixes #1184, fixes #2143, #2258, #2281, fixes #946, fixes #1330, fixes #602, #1016)
* [config] normalize IP strings in lighttpd.conf
* [build_cmake] use MODULE on Mac OS X (fixes #1761)
* [config] server.bsd-accept-filter option
* [mod_webdav] create file w/ LOCK request if ENOENT
* [core] buffer large responses to tempfiles (fixes #758, fixes #760, fixes #933, fixes #1387, #1283, fixes #2083)
* [core] stream response to client (#949)
* [TLS] release openssl buffers as used (fixes #1265, fixes #1283, #881)
* [config] config options to stream request/response (#949, #376)
* [core] option to stream request body to backend (fixes #376)
* [core] option to stream response body to client (fixes #949, #760, #1283, #1387)
* drain backend socket/pipe bufs upon FDEVENT_HUP
* remove excess calls to joblist_append()
* defer choosing "Transfer-Encoding: chunked"
* asynchronous, bidirectional streaming options
* fix errors detected by Coverity Scan
* [cygwin] fix mod_proxy and mod_fastcgi ioctl use
* [mod_webdav] remove excess SQL param to UNLOCK
* graceful shutdown without unnecessary 1 sec delay
* [core] disable Nagle algorithm (TCP_NODELAY)
* [core] add declarations to fdevent.h (#2373)
* [tests] remove dependency on CGI.pm
* [TLS] fix return value checks during cert init
* [core] fix server.max-request-size to be precise (fixes #2131)
* [mod_webdav] fix proppatch mem leak, other fixes (#fixes 1334, #fixes 2000)
* [autobuild] CMake check for struct tm tm_gmtoff (fixes #2014)
* [mod_uploadprogress] fix mem leak (#1858)
* [core] make server.max-request-size scopeable (fixes #1901)
* [mod_fastcgi,mod_scgi] check for spawning on same unix socket (#319)
* [mod_accesslog] %a %A %C %D %k %{}t %{}T (fixes #1145, fixes #1415, fixes #2081)
* [mod_access] new directive url.access-allow (fixes #1421)
* [core] fdevent_libev: update use of ev_timer
* [mod_cgi] handle local redirect response (fixes #2108)
- 1.4.39 - 2016-01-02
* [core] fix memset_s call (fixes #2698)
* [chunk] fix use after free / double free (fixes #2700)
- 1.4.38 - 2015-12-05
* [stat-cache] fix handling of collisions, might have returned wrong data (fixes #2669)
* [core] allocate at least 4k buffer for incoming data
* [core] fix search for header end if split across chunks (fixes #2670)
* [core] check configparserAlloc() result with force_assert
* [mod_auth] implement and use safe_memclear, using memset_s or explicit_bzero if available (thx loganaden)
* [core] don't buffer request bodies smaller than 64k on disk
* add force_assert for many allocations and function results
* [mod_secdownload] use a hopefully constant time comparison to check hash (fixes #2679)
* [config] check config option scope; warn if server option is given in conditional
* [core] revert increase of temp file size back to 1MB, provide a configure option "server.upload-temp-file-size" instead (fixes #2680)
* [core] add '~' to safe characters in ENCODING_REL_URI/ENCODING_REL_URI_PART encoding
* [core] encode path with ENCODING_REL_URI in redirect to directory (fixes #2661, thx gstrauss)
* [mod_secdownload] add required algorithm option; old behaviour available as "md5", new options "hmac-sha1" and "hmac-sha256"
* [mod_fastcgi/mod_scgi] zero sockaddr structs before use (fixes #2691, thx Kyle J. McKay)
* [network] add darwin-sendfile backend (fixes #2687, thx Kyle J. McKay)
* [core] show correct crypt support result (fixes #2690, thx Kyle J. McKay)
- 1.4.37 - 2015-08-30
* [mod_proxy] remove debug log line from error log (fixes #2659)
* [mod_dirlisting] fix dir-listing.set-footer not showing
* fix out-of-filedescriptors when uploading "large" files (fixes #2660, thx rmilecki)
* increase upload temporary chunk file size from 1MB to 16MB
* fix undefined integer shift
* rewrite network sendfile/mmap/writev/write backends
* fix some unchecked return value warnings
* [kqueue] fix kevent call
* [autoconf] define HAVE_CRYPT when crypt() is present
* [bsd xattr] fix compile break with BSD extended attributes in stat_cache
* [mod_cgi] rewrite mmap and generic (post body) send error handling
* [mmap] fix mmap alignment
* [plugins] when modules are linked statically still only load the modules given in the config
* [mmap] handle SIGBUS in network; those get triggered if the file gets smaller during reading
* fix some warnings found by coverity ("leak" in setup phase, not catching too long unix socket paths in mod_proxy)
- 1.4.36 - 2015-07-26
* use keep-alive timeout while waiting for HTTP headers; use always the read timeout while waiting for the HTTP body
* fix bad shift in conditional netmask ".../0" handling
* add more mime types and a script to generate mime.conf (fixes #2579)
* add support for (Free)BSD extended attributes
* [build] use fortify flags with "extra-warnings"
* [mod_dirlisting,mod_redirect,mod_rewrite] abort config parsing if pcre-compile fails or isn't available
* [ssl] disable SSL3.0 by default
* fixed typo in example config found by openSUSE user (boo# 907709)
* [network] fix compile break in calculation of sockaddr_un size if SUN_LEN is not defined (fixes #2609)
* [connections] fix bug in connection state handling
* print backtrace in assert logging with libunwind
* major refactoring of internal buffer/chunk handling
* [mod_auth] use crypt_r instead of crypt if available
* fix error message for T_CONFIG_ARRAY config values if an entry value is not a string
* fix segfaults in many plugins if they failed configuration
* escape all strings for logging (fixes #2646 log file injection, reported by Jaanus Kääp)
* fix hex escape in accesslog (fixes #2559)
* show extforward re-run warning only with debug.log-request-handling (fixes #2561)
* parse If-None-Match for ETag validation (fixes #2578)
* fix memory leak in mod_status when no counters are set (found by coverity)
* [mod_magnet] fix segfault when accessing not existing lighty.req_env[] entry (found by coverity)
* fix segfault when temp file for upload couldn't be created (found by coverity)
* mime.conf: add some new mime types, remove .dat, .sha1, .md5, update .vcf
* [mod_proxy] add unix domain socket support (fixes #2653)
* [configfile] fix reading uninitialized variable (found by Willian B.)
- 1.4.35 - 2014-03-12
* [network/ssl] fix build error if TLSEXT is disabled
* [mod_fastcgi] fix use after free (only triggered if fastcgi debug is active)
* [mod_rrdtool] fix invalid read (string not null terminated)
* [mod_dirlisting] fix memory leak if pcre fails
* [mod_fastcgi,mod_scgi] fix resource leaks on spawning backends
* [mod_magnet] fix memory leak
* add comments for switch fall throughs
* remove logical dead code
* [buffer] fix length check in buffer_is_equal_right_len
* fix resource leaks in error cases on config parsing and other initializations
* add force_assert() to enforce assertions as simple assert()s are disabled by -DNDEBUG (fixes #2546)
* [mod_cml_lua] fix null pointer dereference
* force assertion: setting FD_CLOEXEC must work (if available)
* [network] check return value of lseek()
* fix unchecked return values from stream_open/stat_cache_get_entry
* [mod_webdav] fix logic error in handling file creation error
* check length of unix domain socket filenames
* fix SQL injection / host name validation (thx Jann Horn)
- 1.4.34 - 2014-01-20
* [mod_auth] explicitly link ssl for SHA1 (fixes #2517)
* [mod_extforward] fix compilation without IPv6, (not) using undefined var (fixes #2515, thx mm)
* [ssl] fix SNI handling; only use key+cert from SNI specific config (fixes #2525, CVE-2013-4508)
* [doc] update ssl.cipher-list recommendation
* [stat-cache] FAM: fix use after free (CVE-2013-4560)
* [stat-cache] fix FAM cleanup/fdevent handling
* [core] check success of setuid,setgid,setgroups (CVE-2013-4559)
* [ssl] fix regression from CVE-2013-4508 (client-cert sessions were broken)
* maintain physical.basedir (the "acting" doc-root as prefix of physical.path) in more places
* [core] decode URL before rewrite, enabling it to work in $HTTP["url"] conditionals (fixes #2526)
* [auto* build] remove -no-undefined from linker flags, as we actually link modules with undefined symbols (fixes #2533)
* [mod_mysql_vhost] fix memory leak on config init (#2530)
* [mod_webdav] fix fd leak found with parfait (fixes #2530, thx kukackajiri)
- 1.4.33 - 2013-09-27
* mod_fastcgi: fix mix up of "mode" => "authorizer" in other fastcgi configs (fixes #2465, thx peex)
* fix handling of If-Modified-Since if If-None-Match is present (don't return 412 for date parsing errors);
follow current draft for HTTP/1.1, which tells us to ignore If-Modified-Since if we have matching etags.
* [mod_fastcgi,log] support multi line logging (fixes #2252)
* call ERR_clear_error only for ssl connections in CON_STATE_ERROR
* reject non ASCII characters in HTTP header names
* [mod_auth] use crypt() on encrypted password instead of extracting salt first (fixes #2483)
* [mod_auth] add htpasswd -s (SHA1) support if openssl is used (needs openssl for SHA1). This doesn't use any salt, md5 with salt is probably better.
* [mod_auth] fix base64_decode (#2484)
* fix some bugs found with canalyze (fixes #2484, thx Zhenbo Xu)
* fix undefined stuff found with clang
* [cmake] Use TARGET_LINK_LIBRARIES instead of LINK_FLAGS for library dependencies, also add -Wl,--as-needed to extra warnings (fixes #2448)
* [mod_auth] fix invalid read in digest qop=auth-int handling (fixes #2478)
* [auto* build] simplify autogen.sh, handle automake 1.13 test running (fixes #2490)
* [mod_userdir] add userdir.active option, "enabled" by default
* [core] return 501 Not Implemented in static file mode for all methods except GET/POST/HEAD/OPTIONS
* [core] recognize more http methods to forward to backends (fixes #2346)
* [ssl] use DH only if openssl supports it (fixes #2479)
* [network] use constants available at compile time for maximum number of chunks for writev instead of calling sysconf (fixes #2470)
* [ssl] Fix $HTTP["scheme"] conditional, could be "http" for ssl connections if the ssl $SERVER["socket"] conditional was nested (fixes #2501)
* [ssl] accept ssl renegotiations if they are not disabled (fixes #2491)
* [ssl] add option ssl.empty-fragments, defaulting to disabled (fixes #2492)
* [auth] put REMOTE_USER into cgi environment, making it accessible to lua via lighty.req_env (fixes #2495)
* [auth] new method "extern" to use already present REMOTE_USER (from magnet, ssl, ...) (fixes #2436)
* [core] remove requirement that default doc-root has to exist, there are reasonable scenarios not requiring static files at all
* [core] check whether server.chroot exists
* [mod_simple_vhost] fix cache; skip module if simple-vhost.server-root is empty (thx rm for reporting)
* [mod_accesslog] add accesslog.syslog-level option (fixes #2480)
* [core] allow files to be used as document-root (fixes #2475)
* [core] set signal handlers before forking child processes in modules/plugins_call_set_defaults (fixes #2502)
- 1.4.32 - 2012-11-21
* Code cleanup with clang/sparse (fixes #2437, thx kibi)
* Ignore EPIPE/ECONNRESET after SSL_shutdown
* Handle ENAMETOOLONG, return 404 Not Found (fixes #2396, thx dererkazo)
* configure.ac: remove old stuff, add some new to fix warnings in automake 1.12 (fixes #2419, thx blino)
* add PATCH method (fixes #2424)
* fix :port handling in $HTTP["host"] checks (fixes #2135. thx liming)
* network_server_init: fix double free and memleak on error (fixes #2440, thx kyprizel)
* detect "x-gzip"/"x-bzip2" as separate encodings, more strict encoding matching (fixes #2443)
* tests: make sure mod_proxy doesn't leave running processes (fixes #2435, thx kibi)
* mod_extforward: log address of untrusted proxy with debug.log-request-handling
* fix DoS in Connection header value split (reported by Jesse Sipprell, CVE-2012-5533)
* remove whitespace at end of header keys
- 1.4.31 - 2012-05-31
* [ssl] fix segfault in counting renegotiations for openssl versions without TLSEXT/SNI (thx carpii for reporting)
* Move fdevent subsystem includes to implementation files to reduce conflicts (fixes #2373)
* [mod_compress] fix handling if etags are disabled but cache-dir is set - may lead to double response
* disable mmap by default (fixes #2391)
* buffer_caseless_compare: always convert letters to lowercase to get transitive results, fixing array lookups (fixes #2405)
* Fix handling of empty header list entries in http_request_split_value, fixing invalid read in valgrind (fixes #2413)
* Fix access log escaping of " and \\ (fixes #1551)
* [mod_auth] Fix digest "md5-sess" implementation (Errata ID 1649, RFC 2617) (fixes #2410)
* [auth] Add "AUTH_TYPE" environment (for *cgi), remove fastcgi specific workaround, add fastcgi test case (fixes #889)
* [mod_*cgi,mod_accesslog] Fix splitting :port with ipv6 (fixes #2333, thx simoncpu)
* Detect multiple -f options: show error message instead of assert (fixes #2416)
* [mod_extforward] Support ipv6 addresses (fixes #1889)
* [mod_redirect] Support url.redirect-code option (fixes #2247)
* Fix --enable-mmap handling in configure.ac
- 1.4.30 - 2011-12-18
* Always use our 'own' md5 implementation, fixes linking issues on MacOS (fixes #2331)
* Limit amount of bytes we send in one go; fixes stalling in one connection and timeouts on slow systems.
* [ssl] fix build errors when Elliptic-Curve Diffie-Hellman is disabled
* Add static-file.disable-pathinfo option to prevent handling of urls like .../secret.php/image.jpg as static file
* Don't overwrite 401 (auth required) with 501 (unknown method) (fixes #2341)
* Fix mod_status bug: always showed "0/0" in the "Read" column for uploads (fixes #2351)
* [mod_auth] Fix signedness error in http_auth (fixes #2370, CVE-2011-4362)
* [ssl] count renegotiations to prevent client renegotiations
* [ssl] add option to honor server cipher order (fixes #2364, BEAST attack)
* [core] accept dots in ipv6 addresses in host header (fixes #2359)
* [ssl] fix ssl connection aborts if files are larger than the MAX_WRITE_LIMIT (256kb)
* [libev/cgi] fix waitpid ECHILD errors in cgi with libev (fixes #2324)
- 1.4.29 - 2011-07-03
* Fix mod_proxy waiting for response even if content-length is 0 (fixes #2259)
* Silence annoying "connection closed: poll() -> ERR" error.log message (fixes #2257)
* mod_cgi: make read buffer as big as incoming data block
* [build] Fix detection of libev (fixes #2300)
* ssl: Support for Diffie-Hellman and Elliptic-Curve Diffie-Hellman key exchange (fixes #2301)
add ssl.use-sslv3 (fixes #2246)
load all algorithms (fixes #2239)
* [ssl/md5] prefix our own md5 implementation with li_ so it doesn't conflict with the openssl one (fixes #2269)
* [ssl/build] some minor fixes; fix compile without ssl, cleanup ssl config buffers
* [proc,include_shell] log error if exec shell fails (fixes #2280)
* [*cgi] Use physical base dir (alias, userdir) as DOCUMENT_ROOT in cgi environments (fixes #2216)
* [doc] Move docs to outdated/ subdir and refer to wiki instead (fixes #2248)
* fdevent: add solaris eventports (fixes #2171)
- 1.4.28 - 2010-08-22
* Rename fdevent_event_add to _set to reflect what the function does. Fix some handlers. (fixes #2249)
* Fix buffer.h to include stdio.h as it is needer for SEGFAULT() (fixes #2250)
- 1.4.27 - 2010-08-13
* Fix handling return value of SSL_CTX_set_options (fixes #2157, thx mlcreech)
* Fix mod_proxy HUP handling (send final chunk, fix usage counter)
* mod_proxy: close connection on write error (fixes #2114)
* Check uri instead of physical path for directory redirect
* Fix detecting git repository (fixes #2173, thx ncopa)
* [mod_compress] Fix segfault when etags are disabled (fixes #2169)
* Reset uri.authority before TLS servername handling, reset all "keep-alive" data in connection_del (fixes #2125)
* Print double quotes properly when dumping config file (fixes #1806)
* Include IP addresses on error log on password failures (fixes #2191)
* Fix stalls while reading from ssl sockets (fixes #2197)
* Fix etag formatting on boxes with 32-bit longs
* Fix two compiler warnings
* mod_accesslog: fix %p for ipv6 sockets (fixes #2228, thx jo.henke)
* mod_fastcgi: Send 502 "Bad Gateway" if we couldn't open the file for X-Sendfile (fixes #2226)
* mod_staticfile: add debug output if we ignore a file with static-file.exclude-extensions (fixes #2215)
* mod_cgi: fix race condition leaving response not forwarded to client (fixes #2217)
* mod_accesslog: Fix var declarations mixed in source (fixes #2233)
* mod_status: Add version to status page (fixes #2219)
* mod_accesslog: optimize accesslog_append_escaped (fixes #2236, thx crypt)
* openssl: silence annoying error messages for errno==0 (fixes #2213)
* array.c: improve array_get_unused_element to check data type; fix mem leak if unused_element didn't find a matching entry (fixes #2145)
* add check to stop loading plugins twice
* cleanup fdevent code, removed linux-rtsig handler, replaced some fprintf calls
* only require FDEVENT_IN bit to be set for listening connections (fixes #2227)
* add libev fdevent handler: server.event-handler = "libev"
* mod_proxy: return response as soon as it is available (fixes #2196)
* don't overwrite global server.force-lowercase-filenames setting (fixes #2042)
* bind to IPV6-only if ipv6 address was specified (https://redmine.lighttpd.net/projects/lighttpd/wiki/IPv6-Config)
- 1.4.26 - 2010-02-07
* Fix request parser to handle packets split on \r\n\r\n (fixes #2105)
* Remove dependency on automake >= 1.11 with m4_ifdef check
* mod_accesslog: support %e (fixes #2113, thx presbrey)
* Fix mod_cgi cgi.execute-x-only option in global block
* mod_fastcgi: x-sendfile2 parse error debugging
* Fix mod_proxy dead host detection if connect() fails
* Fix fd leaks in mod_cgi (fds not closed on pipe/fork failures, found by Rodrigo, fixes #2158, #2159)
* Fix segfault with broken rewrite/redirect patterns (fixes #2140, found by crypt)
* Append to previous buffer in con read, fix DoS/OOM vulnerability (fixes #2147, found by liming, CVE-2010-0295)
* Fix HUP detection in close-state if event-backend doesn't support FDEVENT_HUP (like select or poll on FreeBSD)
- 1.4.25 - 2009-11-21
* mod_magnet: fix pairs() for normal tables and strings (fixes #1307)
* mod_magnet: add traceback for printing lua errors
* mod_rewrite: fix compile error if compiled without pcre
* disable warning "CLOSE-read" (fixes #2091)
* mod_rrdtool: fix creating file if it doesn't exist (#1788)
* reset tlsext_server_name in connection_reset - fixes random hostnames in the $HTTP["host"] conditional
* export some SSL_CLIENT_* vars for client cert validation (fixes #1288, thx presbrey)
* mod_fastcgi: fix mod_fastcgi packet parsing
* mod_fastcgi: Don't reconnect after connect() succeeded (fixes #2096)
* Fix configure.ac to allow autoreconf, also enables make V=0
- 1.4.24 - 2009-10-25
* Add T_CONFIG_INT for bigger integers from the config (needed for #1966)
* Use unsigned int (and T_CONFIG_INT) for max_request_size
* Use unsigned int for secdownload.timeout (fixes #1966)
* Keep url/host values from connection to display information while keep-alive in mod_status (fixes #1202)
* Add server.breakagelog, a "special" stderr (fixes #1863)
* Fix config evaluation for debug.log-timeouts option (#1529)
* Add "cgi.execute-x-only" to mod_cgi, requires +x for cgi scripts (fixes #2013)
* Fix FD_SETSIZE comparison warnings
* Add "lua-5.1" to searched pkg-config names for lua
* Fix unused function webdav_lockdiscovery in mod_webdav
* cmake: Fix crypt lib check
* cmake: Add -export-dynamic to link flags, fixes build on FreeBSD
* Set FD_CLOEXEC for bound sockets before pipe-logger forks (fixes #2026)
* Reset ignored signals to SIG_DFL before exec() in fastcgi/scgi (fixes #2029)
* Show "no uri specified -> 400" error only when "debug.log-request-header-on-error" is enabled (fixes #2030)
* Fix hanging connection in mod_scgi (fixes #2024)
* Allow digits in hostnames in more places (fixes #1148)
* Use connection_reset instead of handle_request_done for cleanup callbacks
* Change mod_expire to append Cache-Control instead of overwriting it (fixes #1997)
* Allow all comparisons for $SERVER["socket"] - only bind for "=="
* Remove strptime failed message (fixes #2031)
* Fix issues found with clang analyzer
* Try to fix server.tag issue with localized svnversion
* Fix handling network-write return values (#2024)
* Use disable-time in fastcgi for all disables after errors, default is 1sec (fixes #2040)
* Remove adaptive spawning code from fastcgi (was disabled for a long time)
* Allow mod_mysql_vhost to use stored procedures (fixes #2011, thx Ben Brown)
* Fix ipv6 in mod_proxy (fixes #2043)
* Print errors from include_shell to stderr
* Set tm.tm_isdst = 0 before mktime() (fixes #2047)
* Use linux-epoll by default if available (fixes #2021, thx Olaf van der Spek)
* Print an error if you use too many captures in a regex pattern (fixes #2059)
* Combine Cache-Control header value in mod_expire to existing HTTP header if header already added by other modules (fixes #2068)
* Remember keep-alive-idle in separate variable (fixes #1988)
* Fix header inclusion order, always include "config.h" before any system header
* mod_webdav: Patch to skip login information for domain part of Destination field (fixes #1793)
* mod_webdav: Delete old properties before updating new for MOVE (fixes #1317)
* Read hostname from absolute uris in the request line (fixes #1937)
* mod_fastcgi: don't disable backend if disable-time is 0 (fixes #1825)
* mod_compress: match partial+full content-type (fixes #1552)
* mod_fastcgi: fix is_local detection, respawn backends if bin-path is set (fixes #897)
* Fix linger-on-close behaviour to avoid rare failure conditions (was r2636, fixes #657)
* mod_fastcgi: restart local procs immediately after they terminated, fix local procs handling
* Fix segfault on invalid config "duplicate else conditions" (fixes #2065)
* mod_usertrack: Use T_CONFIG_INT for max-age, solves range problem (#1455)
* mod_accesslog: configurable timestamp logging (fixes #1479)
* always define _GNU_SOURCE
* Add some iterators for mod_magnet (fixes #1307)
* Fix close_timeout_ts trigger (should finally fix lingering close)
* mod_rewrite: add url.rewrite-[repeat-]if-not-file to rewrite if file doesn't exist or is not a regular file (fixes #985, thx lucas aerbeydt)
* Add TLS servername indication (SNI) support (fixes #386, thx Peter Colberg <peter@colberg.org>)
* Add SSL Client Certificate verification (#1288)
* mod_fastcgi: Fix host->active_procs counter, return 503 if connect wasn't successful after 5 tries (fixes #1825)
* mod_accesslog: escape special characters (fixes #1551, thx icy)
* fix mod_webdav crash from #1793 (fixes #2084, thx hiroya)
* Don't print ssl error if client didn't support TLS SNI
* Fix linger close timeout handling, drop timeout to 5 seconds (fixes #2086)
* Fix broken return values from int to enum in mod_fastcgi
- 1.4.23 - 2009-06-19
* Added some extra warning options in cmake and fix the resulting warnings (unused/static functions)
* New lighttpd man page (moved it to section 8) (fixes #1875)
* Create rrd file for empty rrdfile in mod_rrdtool (#1788)
* Fix workaround for incorrect path info/scriptname if fastcgi prefix is "/" (fixes #729)
* Finally removed spawn-fcgi
* Allow xattr to overwrite mime type (fixes #1929)
* Remove link from errormsg about fastcgi apps (fixes #1942)
* Strip trailing dot from "Host:" header
* Remove the optional port info from SERVER_NAME (thx Mr_Bond)
* Fix mod_proxy RoundRobin (off by one problem if only one backend is up)
* Rename configure.in to configure.ac, with small cleanups (fixes #1932)
* Add proper SUID bit detection (fixes #416)
* Check for regular file in mod_cgi, so we don't try to start directories
* Include mmap.h from chunk.h to fix some problems with #define mmap mmap64 (fixes #1923)
* Add support for pipe logging for server.errorlog (fixes #296)
* Add revision number to package version for svn/git checkouts
* Use server.tag for SERVER_SOFTWARE if configured (fixes #357)
* Fix trailing zero char in REQUEST_URI after "strip-request-uri" in mod_fastcgi
* mod_magnet: Add env["request.remote-ip"] (fixes #1740)
* mod_magnet: Add env["request.path-info"]
* Change name/version separator back to "/" (affects every place where the version is printed)
* Fix bug with FastCGI request id overflow under high load; just use always id 1 as we don't use multiplexing. (thx jgray)
* Add some dirlisting enhancements (fixes #1458)
* Add option to enable TCP_DEFER_ACCEPT (fixes #1447)
* Limit amount of bytes read for one read-event (fixes #1070)
* Add evasive.silent option (fixes #1438)
* Make mod_extforward headers configurable (fixes #1545)
* Add '%_' pattern for complete hostname in mod_evhost (fixes #1737)
* Add IPv6 support to mod_proxy (fixes #1537)
* mod_ssi printenv: print cgi env, add environment vars to cgi env (fixes #1713)
* Fix error message if no auth backend was set
* Fix SERVER_NAME port stripping (fixes #1968)
* Fix x-sendfile 2gb limiting (fixes #1970)
* Fix mod_cgi environment keys mangling (fixes #1969)
* Fix workaround for incorrect path info/scriptname if scgi prefix is "/" (fixes #729)
* Fix max-age value in mod_expire for 'modification' (fixes #1978)
* Fix evasive.silent option (#1438)
* Fix mod-fastcgi counters
* Modify fastcgi error message
* Backup errno for later usage (reported by Guido Reina via mailinglist)
* Improve FastCGI performance (fixes #1999)
* Workaround broken operating systems: check for trailing '/' in filenames (fixes #1989)
* Allow using pcre with cross-compiling (pcre-config got fixed; fixes #1986)
* Add "lighty.req_env" table to mod_magnet for setting/getting environment values for cgi (fixes #1967, thx presbrey)
* Fix segfault in mod_expire after failed config parsing (fixes #1992)
* Add ssi.content-type option (default text/html, fixes #615)
* Add support for "real" entropy from /dev/[u]random (fixes #1977)
* Adding support for additional chars in LDAP usernames (fixes #1941)
* Ignore multiple "If-None-Match" headers (only use first one, fixes #753)
* Fix 100% cpu usage if time() < 0 (thx to gaspa and cate, fixes #1964)
* Allow max-keep-alive-requests to depend on conditional (fixes #1881)
* Make dependency on svnversion/git optional (for devel versionstamp, fixes #2009)
- 1.4.22 - 2009-03-07
* Fix wrong lua type for CACHE_MISS/CACHE_HIT in mod_cml (fixes #533)
* Fix default vhost in mod_simple_vhost (fixes #1905)
* Handle EINTR in mod_rrdtool (fixes #604)
* Fix rrd error after graceful restart (fixes #419)
* Fix EAGAIN handling for freebsd sendfile (fixes #1913, thx AnMaster for spotting the problem)
* Fix segfault in mod_scgi (fixes #1911)
* Treat EPIPE as connection-closed error in network_freebsd_sendfile.c (another fix from #1913)
* Fix useless redirection of stderr in mod_rrdtool, as it gets redirected to /dev/null later. (fixes #1922)
* Fix some problems with more strict compilers (#1923)
* Fix segfault if siginfo_t* is NULL in sigaction handler (fixes #1926)
- 1.4.21 - 2009-02-16
* Fix base64 decoding in mod_auth (#1757, thx guido)
* Fix mod_cgi segfault when bound to unix domain socket (#653)
* Do not rely on ioctl FIONREAD (#673)
* Now really fix mod auth ldap (#1066)
* Fix leaving zombie process with include_shell (#1777)
* Removed debian/, openwrt/ and cygwin/; they weren't kept up-to-date, and we decided to remove dist. specific stuff
* Try to convert string options to shorts for numeric options in config file; allows to use env-vars for numeric options. (#1159, thx andrewb)
* Do not cache default vhost in mod_simple_vhost (#709)
* Trust pcre-config, do not check for pcre manually (#1769)
* Fix fastcgi authorization in subdirectories with check-local=disabled; don't split pathinfo for authorizer. (#963)
* Add possibility to disable methods in mod_compress (#1773)
* Fix duplicate connection keep-alive/transfer-encoding headers (#960)
* Fixed fix for round-robin in mod_proxy (forgot to increment the index) (#1715)
* Fix fastcgi-authorizer handling; Status: 200 is now accepted as the doc requests
* Compare address family in inet_ntop_cache
* Revert CVE-2008-4359 (#1720) fix "encoding+simplifying urls for rewrite/redirect": too many regressions.
* Use FD_CLOEXEC if possible (fixes #1821)
* Optimized buffer usage in mod_proxy (fixes #1850)
* Fix uninitialized value in time struct after strptime
* Do not pass Proxy-Connection: header from client to backend http server in mod_proxy (#1877)
* Fix wrong malloc sizes in mod_accesslog (probably nothing bad happened...) (fixes #1855, thx ycheng)
* Some small buffer.c fixes (closes #1837)
* Remove floating point math from server.c (fixes #1402)
* Disable SSLv2 by default
* Use/enforce sane max-connection values (fixes #1803)
* Allow mod_compress to return 304 (Not Modified); compress ignores the static-file.etags option.(fixes #1884)
* Add option to ignore the "Expect: 100-continue" header instead of returning 417 Expectation failed (closes #1017)
* Use modified etags in mod_compress (fixes #1800)
* Fix max-connection limit handling/100% cpu usage (fixes #1436)
* Fix error handling in freebsd-sendfile (fixes #1813)
* Silenced the annoying "request timed out" warning, enable with the "debug.log-timeouts" option (fixes #1529)
* Allow tabs in header values (fixes #1822)
* Added Language conditional (fixes #1119); patch by petar
* Fix wrong format strings (#1900, thx stepancheg)
- 1.4.20 - 2008-09-30
* Fix mod_compress to compile with old gcc version (#1592)
* Fix mod_extforward to compile with old gcc version (#1591)
* Update documentation for #1587
* Fix #285 again: read error after SSL_shutdown (thx marton.illes@balabit.com) and clear the error queue before some other calls (CVE-2008-1531)
* Fix mod_magnet: enable "request.method" and "request.protocol" in lighty.env (#1308)
* Fix segfault for appending matched parts if there was no regex matching (just give empty strings) (#1601)
* Use data_response_init in mod_fastcgi x-sendfile handling for response.headers, fix a small "memleak" (#1628)
* Don't send empty Server headers (#1620)
* Fix conditional interpretation of core options
* Enable escaping of % and $ in redirect/rewrite; only two cases changed their behaviour: "%%" => "%", "$$" => "$"
* Fix accesslog port (should be port from the connection, not the "server.port") (#1618)
* Fix mod_fastcgi prefix matching: match the prefix always against url, not the absolute filepath (regardless of check-local)
* Overwrite Content-Type header in mod_dirlisting instead of inserting (#1614), patch by Henrik Holst
* Handle EINTR in mod_cgi during write() (#1640)
* Allow all http status codes by default; disable body only for 204,205 and 304; generate error pages for 4xx and 5xx (#1639)
* Fix mod_magnet to set con->mode = p->id if it generates content, so returning 4xx/5xx doesn't append an error page
* Remove lighttpd.spec* from source, fixing all problems with it ;-)
* Do not rely on PATH_MAX (POSIX does not require it) (#580)
* Disable logging to access.log if filename is an empty string
* Implement a clean way to open /dev/null and use it to close stdin/out/err in the needed places (#624)
* merge spawn-fcgi changes from trunk (from @2191)
* let spawn-fcgi propagate exit code from spawned fcgi application
* close connection after redirect in trigger_b4_dl (thx icy)
* close connection in mod_magnet if returned status code
* fix bug with IPv6 in mod_evasive (#1579)
* fix scgi HTTP/1.* status parsing (#1638), found by met@uberstats.com
* [tests] fixed system, use foreground daemons and waitpid
* [tests] removed pidfile from test system
* [tests] fixed tests needing php running (if not running on port 1026, search php in env[PHP] or /usr/bin/php-cgi)
* fixed typo in mod_accesslog (#1699)
* replaced buffer_{append,copy}_string with the _len variant where possible (#1732) (thx crypt)
* case insensitive match for secdownload md5 token (#1710)
* Handle only HEAD, GET and POST in mod_dirlisting (same as in staticfile) (#1687)
* fixed mod_secdownload problem with unsigned time_t (#1688)
* handle EAGAIN and EINTR for freebsd sendfile (#1675)
* Use filedescriptor 0 for mod_scgi spawn socket, redirect STDERR to /dev/null (#1716)
* fixed round-robin balancing in mod_proxy (#1715)
* fixed EINTR handling for waitpid in mod_fastcgi
* mod_{fast,s}cgi: overwrite environment variables (#1722)
* inserted many con->mode checks; they should prevent two modules to handle the same request if they shouldn't (#631)
* fixed url encoding to encode more characters (#266)
* allow digits in [s]cgi env vars (#1712)
* fixed dropping last character of evhost pattern (#161)
* print helpful error message on conditionals in global block (#1550)
* decode url before matching in mod_rewrite (#1720) -- (reverted for 1.4.21)
* fixed conditional patching of ldap filter (#1564)
* Match headers case insensitive in response (removing of X-{Sendfile,LIGHTTPD-*}, catching Date/Server) [2281]
* fixed bug with case-insensitive filenames in mod_userdir (#1589), spotted by "anders1" (CVE-2008-4360)
* fixed format string bugs in mod_accesslog for SYSLOG
* replaced fprintf with log_error_write in fastcgi debug
* fixed mem leak in ssi expression parser (#1753), thx Take5k
* hide some ssl errors per default, enable them with debug.log-ssl-noise (#397)
* do not send content-encoding for 304 (#1754), thx yzlai
* fix segfault for stat_cache(fam) calls with relative path (without '/', can be triggered by x-sendfile) (#1750)
* fix splitting of auth-ldap filter
* workaround ldap connection leak if a ldap connection failed (restarting ldap)
* fix auth.backend.ldap.bind-dn/pw problems (only read from global context for temporary ldap reconnects, thx ruskie)
* fix memleak in request header parsing (#1774, thx qhy) (CVE-2008-4298)
* fix mod_rewrite memleak/endless loop detection (#1775, thx phy - again!)
* use decoded url for matching in mod_redirect (#1720) (CVE-2008-4359) -- (reverted for 1.4.21)
- 1.4.19 - 2008-03-10
* added support for If-Range: <date> (#1346)
* added support for matching $HTTP["scheme"] in configs
* fixed initgroups() called after chroot (#1384)
* fixed case-sensitive check for Auth-Method (#1456)
* execute fcgi app without /bin/sh if used as argument to spawn-fcgi (#1428)
* fixed a bug that made /-prefixed extensions being handled also when
matching the end of the uri in fcgi,scgi and proxy modules (#1489)
* print error if X-LIGHTTPD-send-file cannot be done; reset header
Content-Length for send-file. Patches by Stefan Buehler
* prevent crash in certain php-fcgi configurations (#841)
* add IdleServers and Scoreboard directives in ?auto mode for mod_status (#1507)
* open log immediately after daemonizing, fixes SIGPIPEs on startup (#165)
* HTTPS env var should be "on" when using mod_extforward and the X-Forwarded-Proto header is set. (#1499)
* generate ETag and Last-Modified headers for mod_ssi based on newest modified include (#1491)
* support letterhomes in mod_userdir (#1473)
* support chained proxies in mod_extforward (#1528)
* fixed bogus "cgi died ?" if we kill the CGI process on shutdown
* fixed ECONNRESET handling in network-openssl
* fixed handling of EAGAIN in network-linux-sendfile (#657)
* reset conditional cache (#1164)
* create directories in mod_compress (was broken with alias/userdir) (#1027)
* fixed out of range access in fd array (#1562, #372) (CVE-2008-0983)
* mod_compress should check if the request is already handled, e.g. by fastcgi (#1565)
* remove broken workaround for buggy Opera version with ssl/chunked encoding (#285)
* generate etag/last-modified header for on-the-fly-compressed files (#1171)
* req-method OPTIONS: do not insert default response if request was denied, do not deny OPTIONS by default (#1324)
* fixed memory leak on windows (#1347)
* fixed building outside of the src dir (#1349)
* fixed including of stdint.h/inttypes.h in etag.c (#1413)
* do not add Accept-Ranges header if range-request is disabled (#1449)
* log the ip of failed auth tries in error.log (enhancement #1544)
* fixed RoundRobin in mod_proxy (#516)
* check for symlinks after successful pathinfo matching (#1574)
* fixed mod-proxy.t to run with a builddir outside of the src dir
* do not suppress content on "307 Temporary Redirect" (#1412)
* fixed Content-Length header if response body gets removed in connections.c (#1412, part 2)
* do not generate a "Content-Length: 0" header for HEAD requests, added test too
* remove compress cache file if compression or write failed (#1150)
* fixed body handling of status 300 requests
* spawn-fcgi: only try to connect to unix socket (not tcp) before spawning (#1575)
* fix sending source of cgi script instead of 500 error if fork fails (CVE-2008-1111)
* fix min-procs handling in mod_scgi.c, just set to max-procs (patch from #623)
* fix sending "408 - Timeout" instead of "410 - Gone" for timedout urls in mod_secdownload (#1440)
* workaround #1587: require userdir.path to be set to enable mod_userdir (empty string allowed) (CVE-2008-1270)
* make configure checks for --with-pcre, --with-zlib and --with-bzip2 failing if the headers aren't found
* fixed handling of waitpid() == EINTR mod_ssi on solaris
- 1.4.18 - 2007-09-09
* fixed compile error on IRIX 6.5.x on prctl() (#1333)
* fixed forwarding a SIGINT and SIGHUP when using max-workers (#902)
* fixed FastCGI header overrun in mod_fastcgi (reported by mattias@secweb.se)
* fixed hanging redirects with keep-alive due to missing
"Content-Length: 0" headers
* fixed crashing when using undefined environment variables in the config
* fixed compilation of mod_mysql_vhost on irix (#1341)
- 1.4.17 - 2007-08-29
* added dir-listing.set-footer in mod_dirlisting (#1277)
* added sending UID and PID for SIGTERM and SIGINT to the logs
* fixed hardcoded font-sizes in mod_dirlisting (#1267)
* fixed different ETag length on 32/64 platforms (#1279)
* fixed compression of files < 128 bytes by disabling compression (#1241)
* fixed mysql server reconnects (#518)
* fixed disabled keep-alive for dynamic content with HTTP/1.0 (#1166)
* fixed crash on mixed EOL sequences in mod_cgi
* fixed key compare (#1287)
* fixed invalid char in header values (#1286)
* fixed invalid "304 Not Modified" on broken timestamps
* fixed endless loop on shrunk files with sendfile() on BSD (#1289)
* fixed counter overrun in ?auto in mod_status (#909)
* fixed too aggressive caching of nested conditionals (#41)
* fixed possible overflow in unix-socket path checks on BSD (#713)
* fixed extra Content-Length header on 1xx, 204 and 304 (#1002)
* fixed handling of duplicate If-Modified-Since to return 304
* fixed extracting status code from NPH scripts (#1125)
* fixed prctl() usage (#1310)
* removed config-check if passwd files exist (#1188)
* fixed crash when etags are disabled but the client sends one (#1322)
* fixed crash when freeing the config in mod_alias
* fixed server.error-handler-404 breakage from 1.4.16 (#1270)
* fixed entering 404-handler from dynamic content (#948)
* added more debug infos for FAM based stat-cache
* use more LSB like paths in the sample config (#1242)
- 1.4.16 - 2007-07-25
* added static-file.etags, etag.use-inode, etag.use-mtime, etag.use-size
to customize the generation of ETags for static files. (#1209)
(patch by <Yusufg@gmail.com>)
* fixed typecast of NULL on execl() (#1235)
(patch by F. Denis)
* fixed circumventing url.access-deny by trailing slash (#1230)
* fixed crash on duplicate headers with trailing WS (#1232)
* fixed accepting more connections then requested (#1216)
* fixed mem-leak in mod_auth (reported by Stefan Esser)
* fixed crash with md5-sess and cnonce not set in mod_auth (reported by Stefan Esser)
* fixed missing check for base64 encoded string in mod_auth and Basic auth
(reported by Stefan Esser)
* fixed possible crash in Auth-Digest header parser on trailing WS in
mod_auth (reported by Stefan Esser)
* fixed check on stale errno values, which broke handling of broken fastcgi
applications. (#1245)
* fixed crash on 32bit archs when debug-msgs are printed in mod_scgi, mod_fastcgi
and mod_webdav (#1263)
- 1.4.15 - 2007-04-13
* fixed broken Set-Cookie headers
- 1.4.14 - 2007-04-13
* fix crash if gethostbyaddr() failed on redirect [1718]
* properly handle 206 responses generated by *cgi scripts. (#755) [1716]
* added HTTPS=on to the environment of cgi scripts (#861) [1684]
* fix handling of 303 (#1045) [1678]
* made the configure check for lua more portable [1677]
* added mod_extforward module [1665]
* references to the fam stat cache engine should be conditional (#1039) [1664]
* fix http 500 errors (colin.stephen/at/o2.com) #1041 [1663]
* prevent wrong pidfile unlinking on graceful restart (Chris Webb) [1656]
* ignore empty packets from STDERR stream. #998
* fix a crash for files with an mtime of 0 reported by cubiq on irc [1519]
CVE-2007-1870
* allow empty passwords with ldap (Jörg Sonnenberger) [1516]
* mod_scgi.c segfault fix #964 [1501]
* Added round-robin support to mod_fastcgi [1500]
* Handle DragonFlyBSD the same way as Freebsd (Jörg Sonnenberger) [1492,1676]
* added now and weeks support to mod_expire. #943
* fix cpu hog in certain requests [1473] CVE-2007-1869
* fix for handling hostnames with trailing dot [1406]
* fixed header-injection via server.tag (#1106)
* disabled caching of files without a content-type to solve the
aggressive caching of FF
* remove trailing white-spaces from HTTP-requests before parsing (#1098)
* fixed accesslog.use-syslog in a conditional and the caching of the
accesslog for files (fixes #1064)
* fixed various crashes at startup on broken accesslog.format strings (#1000)
* fixed handling of %% in accesslog.format
* fixed conditional dir-listing.exclude (#930)
* reduced default PATH_MAX to 255 (#826)
* ECONNABORTED is not known on cygwin (#863)
* fixed crash on url.redirect and url.rewrite if %0 is used in a global context
(#800)
* fixed possible crash in debug-message in mod_extforward
* fixed compilation of mod_extforward on glibc < 2.3.4
* fixed include of empty in the configfiles (#1076)
* send SIGUSR1 to fastcgi children before SIGTERM. libfcgi wants SIGUSR1. (#737)
* fixed missing AUTH_TYPE entry in the fastcgi environment. (#889)
* fixed compilation in network_writev.c on MacOS X 10.3.9 (#903)
* added kill-signal as another setting for fastcgi backends. See the wiki for more.
- 1.4.13 - 2006-10-09
* added initgroups in spawn-fcgi (#871)
* added apr1 support htpasswd in mod-auth (#870)
* added lighty.stat() to mod_magnet
* fixed segfault in split CRLF CRLF sequences
(introduced in 1.4.12) (#876)
* fixed compilation of LOCK support in mod-webdav
* fixed fragments in request-URLs (#869)
* fixed pkg-config check for lua5.1 on debian
* fixed Content-Length = 0 on HEAD requests without
a known Content-Length (#119)
* fixed mkdir() forcing 0700 (#884)
* fixed writev() on FreeBSD 4.x and older (#875)
* removed warning about a 404-error-handler
returned 404
* backported and fixed the buildsystem changes for
webdav locks
* fixed plugin loading so we can finally load lua
extensions in mod_magnet scripts
* fixed large uploads if xattr is enabled
- 1.4.12 - 2006-09-23
* added experimental LOCK support for webdav
* added Content-Range support for PUT in webdav
* added support for += on empty arrays in config-files
* added ssl.cipher-list and ssl.use-sslv2
* added $HTTP["querystring"] conditional
* added mod_magnet as long-term replacement for mod_cml
* added work-around for a Opera Bug with SSL + Chunked-Encoding
* changed --print-config to print to stdout instead of stderr
* changed no longer use 0600 for new files with webdav. umask is
honored. Make sure you have set a proper umask.
* fixed upload hangs with SSL
* fixed connection drops with SSL (aka bad retry)
* fixed path traversal with \ on cygwin
* fixed mem-leak in mod_flv_streaming
* fixed required trailing newline in configfiles (#142)
* fixed quoting the autoconf files (#466)
* fixed empty Host: + $HTTP["host"] handling (#458)
* fixed handling of If-Modified-Since if ETag is not set
* fixed default-shell if SHELL is not set (#441)
* fixed appending and assigning of env.* vars
* fixed empty FCGI_STDERR packets
* fixed conditional server.allow-http-11
* fixed handling of follow-symlink + lstat()
* fixed SIGHUP handling if max-workers is used
* fixed "Software caused connection abort" messages on FreeBSD
- 1.4.11 - 2006-03-09
* added ability to specify which ip address spawn-fci listens on
(agkr/at/pobox.com)
* added mod_flv_streaming to streaming Flash Movies efficiently
* fixed handling of error codes returned by mod_dav_svn behind a
mod_proxy
* fixed error-messages in mod_auth and mod_fastcgi
* fixed re-enabling overloaded local fastcgi backends
* fixed handling of deleted files in linux-sendfile
* fixed compilation on BSD and MacOSX
* fixed $SERVER["socket"] on a already bound socket
* fixed local source retrieval on windows
(secunia)
* fixed hanging cgi if remote side is dying while reading
from the pipe (sandy/at/meebo.com)
- 1.4.10 - 2006-02-08
* added docs for mod_dirlisting
* added fastcgi.map-extensions to mod_fastcgi
* fixed load balancing for mod_fastcgi
* fixed extra newline for syslog() in mod_accesslog
* fixed user-track cookie for IE in mod_usertrack
* fixed crash in digest handling in mod_auth
* fixed handling of 301 response-bodies from a mod_proxy backend
* fixed loading of base modules if server.modules is not set
* fixed broken cgi if mod_scgi is loaded
- 1.4.9 - 2006-01-14
* added server.core-files option (sandy <sandy/at/meebo.com>)
* added docs for mod_status
* added mod_evasive to limit the number of connections by IP (<w1zzard/at/techpowerup.com>)
* added the power-magnet to mod_cml
* added internal statistics to mod_fastcgi
* added server.statistics-url to get internal statistics from mod_status
* added support for conditional range-requests through If-Range
* added static building via scons
* fixed 100% cpu loops in mod_cgi ("sandy" <sjen/at/cs.stanford.edu>)
* fixed handling for secure-download.timeout (jamis/at/37signals.com)
* fixed IE bug in content-charset in the output of mod_dirlisting (sniper/at/php.net)
* fixed typos and language in the docs (ryan-2005/at/ryandesign.com)
* fixed assertion in mod_cgi on HEAD request is Content-Length (<sandy/at/meebo.com>)
* fixed handling if equal but duplicate If-Modified-Since request headers
* fixed endless loops in mod_fastcgi if backend is dead
* fixed Depth: 1 handling in PROPFIND requests on empty dirs
* fixed encoding of UTF8 encoded dirlistings (Jani Taskinen <sniper/at/iki.fi>)
* fixed initial bind to a unix-domain socket through server.bind
* fixed handling of lowercase filesystems
* fixed duplicate request headers cause by mod_setenv
- 1.4.8 - 2005-11-23
* added auto-reconnect to ldap-server in mod_auth
(joerg/at/netbsd.org)
* changed auth.ldap-cafile to be optional
(joerg/at/netbsd.org)
* added strip_request_uri in mod_fastcgi
* added more X-* headers to mod_proxy
(Ben Grimm <bengrimm/at/gmail.com>)
* added 'debug' to simple-vhost to suppress the
(mod_simple_vhost.c.157) No such file or directory /servers/ww.lighttpd.net/pages/
messages by default
* added support to let the server listen on UNIX-socket
* changed default stat-cache-engine to 'simple'
* removed debian/ dir from source package on request by packager
* fixed max-age timestamps in mod_expire
* fixed encoding the filenames in PROPFIND in mod_webdav
* fixed range request handling in network_writev
* fixed retry on connect error in mod_fastcgi
(Robert G. Jakabosky <bobby/at/alphatrade.com>)
* fixed possible crash in mod_webdav if sqlite3 support
is available but not use
* fixed fdvent-handler init if server.max-worker was used
(Siddharth Vijayakrishnan <mail/at/bluefireworks.net>)
* fixed missing cleanup in mysql_vhost
* fixed assert() in "connections.c:962:
connection_handle_read_state: Assertion 'c->mem->used' failed."
* fixed 64bit issue in md5
* fixed crash in mod_status
* fixed duplicate headers in mod_proxy
* fixed Content-Length in HEAD request in mod_proxy
* fixed unsigned/signed comparisons
* fixed streaming in mod_cgi
* fixed possible overflow in password-salt handling
(reported on slashdot by james-web/at/and.org)
* fixed server-traffic-limit if connection limit is not set
- 1.4.7 - 2005-11-02
* added FD_CLOEXEC to fds which are kept open for a longer time
* added smaller, moving mmaped windows to network_writev
* added madvise() to instruct the kernel the do proper read-ahead in network_writev
* added support for %I in mod_accesslog
* added better compat to Apache for ?auto in mod_status
* added support for userdirs without a entry in /etc/passwd in mod_userdir
(rob/at/inversepath.com)
* added startup-time selectable network-backend
* added location of upload-files to config as array
* added webdav.log-xml for logging xml-content in mod_webdav
* added Cache-Control: max-age to mod_expire
* workaround missing client-bug by assuming we received a close-notify on
non-keep-alive requests in SSL request
* disabled kerberos5 support by default to fix compilation on RHEL
* fixed order of library checks to fix compilation on Solaris 9
* fixed open file-descriptors on read-error
* fixed crash if /var/tmp is not writable
- 1.4.6 - 2005-10-09
* fixed compilation on MacOS X and cygwin
* fixed compressed output if caching was disabled (seen in IE and Opera)
* fixed range-request option
* fixed mysql-vhost module (was broken in 1.4.5)
* fixed false positive in the detection of case-insensitive FS
- 1.4.5 - 2005-10-02
* added all DeltaV methods as known methods
* added buffer-to-disk of request content
* added warning for unused variables in conditionals
* added global index-generators to mod_indexfile
* fixed caching for remote-ip conditionals with keep-alive
* fixed redirects with content
* fixed infinite loop in exec-cmd in mod_ssi
* fixed segfault in config handling for mod_mysql_vhost
* fixed segfault on FIFOs/Sockets
* fixed possible crash on uninit memory if If-Modified-Since was too long
* fixed accounting of mem-chunks
* fixed starving of connections on high load
* fixed crc errors in mod_compress on 64bit platforms
* fixed handling of overlapping fastcgi packets (bug added in 1.4.4)
* fixed logic of conditionals if a header was not set
* fixed a segfault in mod_rewrite if %1 references were used
* fixed handling of empty request URIs in HTTP requests
- 1.4.4 - 2005-09-16
* added support for %V in mod_accesslog
* added a option for a FastCGI responder to send static files
* added md5 and blowfish hashes to htpasswd
* fixed METHOD in mod_accesslog of WebDAV methods
* fixed check for permission before files in sent
* fixed mod-proxy and content for non-POST requests
* fixed compilation of mod_cml on MacOS X
* fixed SSL errmsg after accept()
* fixed memleak in stat-cache
* fixed aborted connections if file was moved while in transfer
* fixed mem-usage for large FastCGI transfers
- 1.4.3 - 2005-09-01
* added graceful shutdown
* added server.max-connections
* fixed compilation on all BSD platforms
* fixed init of kqueue and /dev/poll after daemonize
* fixed segfault if select() is event-handler and more than FD_SETSIZE
fds are opened
* fixed compilation of mod_cml
* fixed bin-copy-env in mod_fastcgi
- 1.4.2 - 2005-08-29
* fixed mimetype detection on uppercase extensions
* fixed memleak in stat-cache
* fixed infinite loop in mod_cgi
* fixed alignment crashes on sparc64 and alpha64
* fixed test system for gentoo ebuild
* fixed infinite loop in SSL
* fixed range request for files > 2Gb
- 1.4.1 - 2005-08-22
* added a complete Class 1 compliant mod_webdav
* fixed ssl support (especially on OpenBSD)
* fixed response header in body problem in mod_cgi
* fixed numbers before body problem
* fixed compilation on Solaris and FreeBSD
* fixed conditional options in mod_dirlisting
* fixed segfault in mod_dirlisting for NFS directories
* fixed check for docroot in change-root environments
- 1.4.0 - 2005-08-17
* added nested conditionals
* added remote-ip to $HTTP
* added support for stat-cache via FAM
* added a read-only WebDAV module
* fixed cleanup in mod_proxy and mod_fastcgi
* fixed handling of filenames on case-insensitive filesystems
- 1.3.16 - 2005-07-31
* added Date: headers to dynamic HTTP/1.0 requests
* added support for OPTION * HTTP/1.1
* added support for accesslog to syslog
* added support for PATH_INFO guessing if check-local is disabled in
mod_fastcgi
* added switch to disable range-requests
* added valid-user option for mod_auth (tigger at gentoo.org)
* added JavaScript based sorting to mod_status (erik)
* added selective TCP_CORK (Christian von Roques)
* break up endless loops with Status: 500
* fixed endless loops in mod_rewrite
* mapped url.rewrite and url.rewrite-final to uri.rewrite-once
* fixed compilation for mod_trigger_b4_dl
* fixed 'can't reach host' in mod_proxy
* error-handler-404 defaults to Status: 200 and static files work now
- 1.3.15 - 2005-07-15
* added mod_cml
* added mod_trigger_b4_dl
* added encoding to mod_dirlisting
* added ?auto to mod_status
* relaxed handling of characters in URIs even more
* fixed detection of sendfile() on Linux 2.4.x
* fixed comparison of buffers for short strings
* server.errorfile-prefix is now conditional
* fixed mod_rrdtool to close STDERR
- 1.3.14 - 2005-06-15
* added SCGI support via mod_scgi
* added hash-based and round-robin load balancing to mod_proxy
* fixed range requests larger than 2Gb
* fixed compilation on Solaris
* fixed endless loops in mod_fastcgi, mod_cgi and mod_proxy
* fixed handling of URIs for '+' and characters > 127
- 1.3.13 - 2005-03-06
* added customizable directory listings
* fixed compile error on all BSD unixes
* fixed PATHINFO handling for FastCGI
* fixed handling of remote-close on FreeBSD and OpenSSL
- 1.3.12 - 2005-03-02
* added ssl.ca-file
* added support for \n\n as terminator
* rewrote test-framework and added more tests
* fixed cgi.assign with empty handler
* fixed segfault in debug-code
* fixed mod_expire if modification-timestamps are used
* fixed segfault on duplication Host-headers
* fixed endless loop in mod_fastcgi
* fixed handling of dead fastcgi-processes
- 1.3.11 - 2005-02-20
* added REMOTE_PORT and SERVER_ADDR to CGI-env
* relaxed handling of newlines before keep-alive requests
* relaxed uri-parser again
* fixed PHP_SELF for php
* fixed compilation on MacOS X
* fixed handling of EPIPE and ECONNRESET
* fixed crash in mod_auth if config-options are missing
* fixed handling of missing trailing / in mod_userdir
* fixed conditional secdownload.secret
* fixed REPORT ME error due to failed reconnects in mod_fastcgi
* fixed cmdline handling in mod_fastcgi
- 1.3.10 - 2005-02-06
* added support for full commandline in spawn-fcgi
* fixed missing check for IP-address in mod_fastcgi
* fixed compile error with openssl in mod_fastcgi
* removed a debug-message from network-functions
- 1.3.9 - 2005-02-06
* added a stricter URI parser
* added a check to the CGI spawner if the cgi-handler exists
* added documentation for SSL and mod_status
* added handling of startup environment to FastCGI
* improved performance in FastCGI in buildind the FastCGI header
* fixed min-procs and max-procs in FastCGI on PowerPC
* fixed crash in setenv.add-response-header
* fixed handling of nph-scripts in CGI
* fixed accidentally sending out physical file in CGI on error
* fixed cygwin support
* fixed handling of missing files
* fixed HEAD requests for dynamic requests
- 1.3.8 - 2005-01-30
* added traffic shaping by remote host and virtual server
* added auto-spawning of FastCGI process on demand
* added virtual host based on MySQL
* added mod_setenv to add environment and http headers on the fly
* added support for syslog in mod_accesslog
* improved output of mod_status
* improved debug output in request handling
* fixed build problems on netbsd 1.4.x and 1.5.x
* fixed status.url configuration
* fixed handling of != and !~ in configutation
* fixed special cases in keep-alive handling
* fixed timeout handling in handling POST requests
* fixed mode AUTHORIZER in FastCGI
* fixed handling if internal redirects if no Host: is supplied
* fixed mod_alias + pathinfo
* fixed directory indexes and permissions
* enabled sending errorlog to syslog again
- 1.3.7 - 2004-12-11
* added retries for a fastcgi connect if a php-childs
dies at startup
* update the debian directory
* added setgroups() to drop all group-privs
* added native port to windows via mingw32
* added server.tag = '...'
* added support for ${...} in mod_ssi
* ported all plugins to conditional support
* fixed multipart handling in cgi
* fixed kqueue event-handler
* fixed wrap-around in mod_status
* fixed crash with SSL + FastCGI
* fixed detection of SSL headers
* fixed handling of dangling SSL_shutdown
* fixed detection of keep-alive of Firefox
- 1.3.6 - 2004-11-03
* added spawn-fcgi to the distribution
* added support in fastcgi module to spawn fastcgi
processes itself
* fixed logfile cycling if external logging is used
* fixed connection handling in fastcgi if no chunk
encoding is used
* fixed internal redirects on directories if a query
string is supplied
* fixed cgi-module for POST request above 4k
* fixed mod_alias and follow-symlink
- 1.3.5 - 2004-10-31
* added mod_alias
* added mod_userdir
* added the exec command to the SSI handler
* added a switch to disable follow-symlinks
* added a switch to disable IPv6 at compile-time
* fixed compilation on FreeBSD and NetBSD 1.3.x
* fixed segfault in pipelining
* fixed a segfault in writev() handler if LFS is used
- 1.3.4 - 2004-10-24
* added limiter for open files
* added logging of user supplied data to accesslogs
* added build target for OpenWRT
* added plain backend support for auth-digest
* fixed handling the external accesslog processes
* fixed SERVER_NAME in CGI and FastCGI
- 1.3.3 - 2004-10-16
* added support for NL terminators in CGI-scripts
* added support for conditionals in mod_auth,
mod_simple_vhost and mod_evhost
* added a error-handler for 404 codes
* fixed request counter in the rrdtool module
* fixed log-file cycling
* fixed seg-fault
- 1.3.2 - 2004-09-30
* fixed file-cache
- 1.3.1 - 2004-09-30
* fixed file-cache
* fixed parsing of IPv6 addresses
* fixed cgi for cygwin
* fixed test-suite for FreeBSD and IRIX
* fixed handling of shrunken files
* fixed handling of REQUEST_URI after rewrite
- 1.3.0 - 2004-09-17
* added build for MacOS X and Cygwin
* added handling of more than one socket
* added config-conditions for User-Agent and Referer
* added final rewrite-rules
- 1.2.8 - 2004-09-11
* added a cache for mimetypes
* added X-Forwarded-For for mod_proxy
* fixed handling of comments in If-Modified-Since
* fixed error handling in FastCGI code
* fixed expire plugin for second Expire header
- 1.2.7 - 2004-09-04
* added mod_rrdtool for internal statistics
* added xattr support
* added user-controlable timeouts
* improved documentation for many plugins
* fixed POST requests for mod_proxy
* fixed rare hang with CGI
* fixed seg-fault if no configfile is specified
* fixed rare problem in FastCGI header generation
- 1.2.6 - 2004-08-26
* added apache-like accesslog definition
* enabled timestamp cache again
* improved performance in the string compare functions
* fixed double-free in fastcgi handler
* fixed error-handling in cgi handler
- 1.2.5 - 2004-08-10
* added skeleton for solaris 10 port-API
* added compression support even if no cachedir is set
* added conditional configoptions
* fixed compilation on OpenBSD
* fixed kqueue support
* fixed pipelining bug
* fixed parallel build (triggered by Gentoo)
* updated debian postinst
- 1.2.4 - 2004-07-31
* added kqueue support
* added server-side includes (mod_ssi)
* fixed large post uploads in fastcgi
* fixed rt-signals handling of delayed events
- 1.2.3 - 2004-07-10
* added a proxy module for Java and friends
* added support to pass accesslog through an external program
* added mimetypes for text/css and text/javascript
* fixed index-files for FastCGI if webserver is in chroot
* fixed error messages of CGI process fails to exec()
* fixed detection of pcre on IRIX and FreeBSD
* fixed timestamps in Last-Modified checks
* fixed 64bit builds
* fixed mmap-caching of large files
* relaxed the HTTP parser on empty headerfields
- 1.2.2 - 2004-06-15
* added support for unix domain sockets in FastCGI
* fixed mmap caching
* fixed compile-time check for linux sendfile()
* fixed check for pcre.h on Fedora Core 2
- 1.2.1 - 2004-05-30
* added experimental support for AIX send_file()
* added an mmap cache to the filehandle cache
* enabled FreeBSD sendfile support again
* added support for calling CGI binaries directly
* fixed pipelining for POST requests
* fixed some seg-faults if no configfile is used
- 1.2.0 - 2004-05-17
* added conforming Expect: handling
* added a module for secure and fast downloading
* rewrote the event handling interface
* fixed array handling which might lead to 'missing header'
* fixed pipelining support
* fixed build of the localizer extension
* fixed cgi handling for headers which are flushed to often
* fixed compilation on Solaris 2.5
- 1.1.9 - 2004-04-29
* added AUTHORIZER mode to the FastCGI module
* added 'check-local' option to disable local stat() in the FastCGI module
* added prefix-notation for FastCGI module
* added 'mod_usertrack'
* improved CGI/FastCGI spec conformance
* more code cleanup
* fixed HTTP/1.1 chunk headers
* fixed POST handling
* fixed SSL network handler
* fixed writev() network handler
- 1.1.8 - 2004-04-16
* code cleanup
* limiting the size of the request-body and the request-header
* minor speed improvements
* tightend the HTTP-Parser again
- 1.1.7 - 2004-04-12
* added REMOTE_USER to the Server->FastCGI parameters
* added bzip2 compression
* improved the error-messages from the new configfile parser
* fixed accesslog writing for erroneous requests
* fixed LFS (64bit filesizes) handling
* fixed Content-Length for HEAD requests
* fixed some memory leaks in the configfile parser
- 1.1.6 - 2004-04-10
* tightend the HTTP-Parser
* rewrote the configfile parser (based on lemon)
* fixed openssl support
* fixed mmap+write support
* use localtime in accesslog if possible
- 1.1.5 - 2004-04-07
* added ldap backend to the auth
* added a mod_expire
* added debian packaging structure
* merged redhat and suse spec-file
* fixed eventhandler for solaris
* fixed 64bit fileoffsets
* fixed permissions of the PID-file
- 1.1.4 - 2004-04-04
* added server.pid-file
* added support for solaris /dev/poll and solaris sendfilev()
* added support for writev()
* added PATHINFO support (again)
* fixed CLF logfile writing
- 1.1.3 - 2004-03-25
* set default event-handler to 'poll'
* fixed logcycling in chroot()
* fixed hostname detection
* added syslog() as fallback for error-logging
- 1.1.2 - 2004-03-22
* added a "docroot" setting for fastcgi processes
* performance improvements
* improved configure script
* rewrote the fastcgi config parser
* added a rc-script for RedHat
* added epoll() support for Linux 2.6.x
- 1.1.1 - 2004-03-15
* added localizer module
* performance improvements
* code cleanup
- 1.1.0 - 2004-03-06
* changed some configuration keys for better readability
* moved the virtual-host code to mod_simple_vhost
* added enhanced virtual host plugin from Christian Kruse
* added two new auth-backends (htpasswd, htdigest)
* fixed and improved authentication
* stricter parsing of the Host: field
* added a warning for unused configuration keys
* improved FastCGI documentation
- 1.0.3 - 2004-02-13
* a startup script has been added (LSB compliant)
* HEAD requests were submitting the content like a GET request
* the virtual directory listing got a face-lifting and fixes
* request-headers are now handled case-in-sensitive as required
by the standard. this fixes POST requests for w3m and some Proxies.
- 1.0.2 - 2004-02-07
* rearrangement of the default configfile
* some updates in the documentation
* a entry in the error-log for a 404
* stdout is no longer the default for the accesslog
|