操作
发布信息¶
- 版本: 1.4.70
- 上一版本: 1.4.69
- 分支: 1.4
- 状态: 稳定版
- 发布目的: 错误修复
- 发布经理: gstrauss
- 发布日期: 2023-05-10
1.4.69 的重要变更¶
- 加速 CGI 生成
- 原生 Windows 构建 (实验性) (未打包; 无安装程序)
- 支持 HTTP/2 下游代理,在单个连接上服务多个客户端
(mod_extforward, mod_maxminddb) - 重构代码以隔离 HTTP/2
下载¶
- https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.70.tar.gz
- GPG 签名: https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.70.tar.gz.asc
- SHA256:
bc96e5571d937279aa7cfdc9c9de95bcc457ab6feafff6264aa8832d026068bc
- https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.70.tar.xz
- GPG 签名: https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.70.tar.xz.asc
- SHA256:
921ebe1cf4b6b9897e03779ab7a23a31f4ba40a1abe2067525c33cd3ce61fe85
- SHA256 校验和: https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.70.sha256sum
- SHA512 校验和: https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.70.sha512sum
行为变更 (此前已宣布):¶
- 不再为内置模块单独构建模块
lighttpd 1.4.70 移除了为以下模块单独构建(未使用的)模块:
mod_access mod_alias mod_evhost mod_expire mod_fastcgi mod_indexfile
mod_redirect mod_rewrite mod_scgi mod_setenv mod_simple_vhost mod_staticfile
未来计划的行为变更:¶
- HTTP/2 支持将被拆分为可选的独立模块 (mod_h2)
(静态构建需要在 plugin-static.h 中列出 mod_h2 以包含 mod_h2)
1.4.69 的变更¶
- [autotools] chmod u+w configparser.c for lemon
- [build] 跳过为内置模块单独构建模块
- [核心] 为高精度错误日志缓存格式秒数
- [mod_maxminddb] 每次请求检查远程 IP (修复 #3191)
- [多处] 在 request_st 中存储指向远程地址的指针 (#3192)
- [mod_extforward] 管理每个请求的远程地址 (修复 #3192)
- [核心] 如果可用,使用 C23 memset_explicit()
- [mod_accesslog] %{mask}a 以掩码/匿名化 IP
- [核心] 类型转换以修复之前提交中的编译器错误
- [scons] 修复静态构建以包含 builtin_mods
- [核心] h2_recv_headers() 调整以减少代码大小
- [核心] h2_get_stream_req() 代码重用
- [核心] h2: 移除过时的注释
- [核心] h2 标记 :status 匹配 lsxpack 枚举值
- [核心] h2 仅与 lsxpack 伪头键匹配
- [核心] 限制 server.max-request-field-size <=65535
- [核心] 允许 shell HERE 文档指定配置
- [核心] 为 http_header_parse_ctx 添加成员
- [mod_extforward] 注释中的拼写错误
- [mod_openssl] SSL_CTX_set_options() 接受 uint64_t
- [核心] 重新排序枚举 handler_t
- [核心] connection_handle_request_start_state()
- [核心] 在 mmap viewadj 中提早检查块文件打开 (修复 #3197)
- [核心] h2 http_request_parse_header() 调整
- [mod_extforward] 识别 Unix 域套接字 (修复 #3198)
- [mod_magnet] 支持 ./configure --with-lua=luajit (#3199)
- [核心] 移除开发调试代码实例
- [核心] 消除 Coverity 警告
- [核心] connection_check_upgrade() h2_upgrade_h2c()
- [核心] CON_STATE_REQUEST_END 瞬时状态
- [核心] 暴露 request_set_state() 供内部使用
- [核心] h2_send_goaway_graceful()
- [核心] h2_check_timeout()
- [核心] h2_process_streams()
- [核心] h2_recv_reqbody()
- [核心] HTTP_VERSION_3 枚举值
- [核心] r->x union w/ structs for r->x.{h1}
- [核心] r->x union w/ structs for r->x.{h1,h2}
- [核心] http_dispatch[] 表用于 HTTP 协议版本
- [核心] hxcon "基类" 用于 h2con
- [mod_h2] HTTP/2 模块: mod_h2
- [多处] 仅当 HTTP/1.x 时才乐观地读取客户端
- [核心] _WIN32 端口兼容性头文件
- [核心] _WIN32 setenv(), unsetenv() 实现
- [多处] _WIN32 使用 HAVE_SYSLOG_H 保护代码
- [多处] _WIN32 使用 HAVE_FORK 保护代码
- [核心] _WIN32 使用 HAVE_IPV6 保护代码
- [多处] _WIN32 使用 HAVE_SYS_UN_H 保护代码
- [多处] _WIN32 stat() 兼容 sys-stat.h
- [核心] _WIN32 uid, gid 兼容
- [核心] _WIN32 信号相关兼容
- [多处] _WIN32 杂项兼容
- [核心] _WIN32 configfile.c 的最小 glob() 实现
- [核心] _WIN32 使用 gmtime_s(), localtime_s()
- [mod_dirlisting] _WIN32 Find*File()
- [多处] _WIN32 Find*File() sys-dirent.h
- [核心] _WIN32 sys-unistd.h 封装 <unistd.h>
- [核心] _WIN32 sys-wait.h 封装 <sys/wait.h>
- [核心] _WIN32 socketpair() 实现
- [核心] _WIN32 fdevent_createprocess()
- [核心] _WIN32 socket 兼容, filesystem 兼容
- [核心] _WIN32 使用 WSAGetLastError() 检查套接字
- [mod_cgi] _WIN32 使用 socketpair 而非 pipe
- [核心] _WIN32 时钟滴答和时间
- [核心] _WIN32 Windows 的备用 fdarray
- [核心] _WIN32 基础 (非常有限的) getopt() 实现
- [测试] _WIN32 fcgi-responder.c, scgi-responder.c
- [核心] _WIN32 将 __WIN32 重命名为 _WIN32
- [核心] _WIN32 强制类型转换以消除某些 VS 警告
- [测试] _WIN32 将 TMPDIR (或 TEMP) 用于测试文件
- [构建] _WIN32 mingw 构建
- [多处] MINGW32 缺少 strftime() "%F %T"
- [测试] _WIN32 LightyTest.pm 中的调整
- [核心] _WIN32 启动时重置标准流
- [核心] _WIN32 log_perror() 与 GetLastError()
- [核心] _WIN32 log_serror() 用于 WSAGetLastError()
- [核心] _WIN32 使用 log_serror() 用于 WSAGetLastError
- [核心] _WIN32 使用 rand_s() 初始化伪随机数生成器
- [核心] _WIN32 fdevent_kill()
- [多处] _WIN32 使用 fdevent_kill()
- [核心] _WIN32 stat(), '/' 和 '\' 调整
- [测试] _WIN32 cygwin 测试支持
- [mod_deflate] _WIN32 禁用 deflate.cache-dir
- [mod_dirlisting] _WIN32 在 unlink 前关闭文件
- [测试] _WIN32 在 unlink 前关闭文件
- [核心] _WIN32 在 unlink 前关闭 chunk 临时文件
- [核心] _WIN32 优先使用 WSAPoll()
- [核心] _WIN32 lighttpd winsvc
- [核心] _WIN32 UTF-8 路径上的自定义文件系统函数
- [核心] _WIN32 对 MS 狂喊 UTF-8 (不重要)
- [cmake] _WIN32 使用 BUILD_STATIC 构建更多模块
- [cmake] _WIN32 移除旧的构建配置
- [核心] _WIN32 使用 WSASend 实现套接字上的 writev-equiv
- [meson] cygwin 下的静态构建选项
- [构建] _WIN32 __declspec(dllexport) *_plugin_init
- [构建] _WIN32 共享 dll 构建 (autotools, cmake)
- [测试] _WIN32 在 CI 期间跳过时间敏感测试
- [核心] 如果可用,使用 posix_spawn()
- [mod_cgi] 关于缓存目标目录名的注释
- [meson] 更新带构建标志的注释
- [meson] 检查 FORCE_{WOLFSSL,MBEDTLS}_CRYPTO
- [mod_auth] 如果 auth.require 路径从不匹配则警告
- [核心] h1.[ch] 收集一些 HTTP/1.x 特定代码
- [核心] noinline 连接关闭,重置
- [TLS] $SERVER["socket"] 继承全局 ssl.engine
- [mod_proxy] "map-host-response" "-" 与 Host 匹配
- [核心] noinline stat_cache_sptree_find()
- [核心] 重命名 http_kv 函数,重新排序 http_versions
- [mod_cgi] 将 fd 计数移动到 cgi_create_env()
- [mod_cgi] 减少代码大小
- [mod_cgi] 如果 CGI 关闭输入,则不发出跟踪
- [mod_cgi] cgi_create_err() 冷错误处理函数
- [核心] 套接字 close() 时始终递减 fd 计数
- [mod_mbedtls] 检查 MBEDTLS_DEBUG_C 以进行调试函数
- [核心] fdevent_waitpid() 返回 pid_t
- [核心] _WIN32 编译修复
- [meson] builtin_mods 的构建修复
- [核心] 将一些共享函数移动到模块调用
- [构建] 将一些文件移动到模块调用
- [mod_cgi] CGI pids 的双向链表
- [mod_cgi] 重用已打开到 /dev/null 的 fd
- [mod_cgi] 在 CGI 关闭时重置 upload_temp_file_size
- [测试] 复制配置文件以在备用目录中运行测试
- [scons] 避免在静态构建中重复 mod_h2 模块
- [autoconf] 为 dpkg 在 hdrs 中包含 fs_win32.h
- [构建] 在包含 fs_win32.h 之前 ifdef _WIN32
- [mod_openssl] SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE
- [mod_dirlisting] _WIN32 修复 close() 后的 fstat()
- [核心] 消除 Coverity 警告
- [mod_openssl] FreeBSD: 检查 "kern.ipc.tls.enable"
- [核心] 修复 HTTP/2 对 http_response_loop() 的使用
- [mod_openssl] 检查内核是否支持 KTLS
- [核心] QNX 上的 posix_spawnattr_setcwd_np()
- [核心] posix_spawn_file_actions_addclosefrom_np()
- [核心] Mac OS POSIX_SPAWN_CLOEXEC_DEFAULT
- [核心] 修改 posix_spawnattr_setsigdefault 的使用
- [mod_dirlisting] _WIN32 编译修复
- [核心] fdevent_load_file() 检查是否超出限制
- [测试] tests/prepare.sh 附带替代构建根目录的注释
- [核心] 将 mod_h2 视为内置模块 (目前)