Release 8.11.2719 / 版本发布 8.11.2719
Release 8.11.2719
This release includes significant improvements and bug fixes since version 7.10.2082.
🚀 Major Features
Portal Authentication Enhancements
- Add portal authentication configuration and checks in API handlers and firewall operations
- Skip firewall checks and domain parsing when portal authentication is disabled
- Implement direct firewall reload mechanism with proper locking and error handling
- Add portal authentication check before updating counters
WebSocket & Real-time Communication
- Enhance auth server status detection via WebSocket connection
- Add WebSocket client information query interface
- Improve WebSocket key generation and message processing with enhanced validation
- Enhance WebSocket message processing and heartbeat management
DNS Monitoring & xDPI
- Implement DNS statistics export functionality for aw-bpfctl integration
- Add program array map for tail calls and refactor DNS egress handler
- Enhance domain entry structure with access count and timestamps for improved tracking
- Relax DNS header validation and enhance logging for better debugging
- Add domain whitelist settings in firewall initialization
- Improve DNS event handling with enhanced input validation and size checks
- Implement loading of predefined L7 protocols
System Information & Monitoring
- Enhance status reporting with detailed system, network, and firewall information
- Add system information retrieval handler for WebSocket requests
- Add CPU temperature retrieval and integrate into system info
- Add JSON status endpoints for client, auth, and wifidogx
- Add online time calculation to status text output
WiFi Configuration
- Complete WiFi configuration interface with full OpenWrt wireless and mesh configuration support
- Update WiFi configuration interface documentation based on latest implementation
- Limit available_networks to return only proto=static network interfaces
- Remove network interface IP configuration functionality, keep only interface list retrieval
- Remove mesh_fwding and mesh_rssi_threshold fields
Documentation & GitHub Pages
- Add initial HTML structure and CSS styles for the ApFree WiFiDog portal
- Add new documentation files and translate to Chinese
- Create xDPI overview and quick start guide in Chinese
- Update README files to include links to English and Chinese versions
- Add Chinese version of README with project overview and contribution guidelines
- Optimize contact section UI
🐛 Bug Fixes
Kernel Compatibility
- Update device class creation for kernel 6.6+ compatibility
- Update proc_ops to file_operations for compatibility
- Replace _IOW/_IOR macros with simple integer constants for IOCTL commands to enhance kernel module compatibility
Memory & Safety
- Allocate memory for domain list in xdpi_proc_ioctl to prevent stack overflow
- Enhance DNS question and answer parsing to prevent unaligned access issues
- Fix DNS egress processing SEC marking to ensure correct packet handling
IOCTL Operations
- Update ioctl operations to use character device instead of proc file
- Enhance permissions for ioctl operations
- Include ioctl.h for proper IOCTL command definitions
- Improve code structure in xdpi_proc_ioctl for better readability and maintainability
Client Management
- Improve client disconnection handling and status response logging
- Fix wifidog_uptime being 0 issue in get_sys_info
- Initialize first_login to current time if not set
- Use int64 for client counters in JSON object creation
- Update client info when get client info
- Improve command parameter handling and status reporting in wdctl_cmd_process
Authentication & Firewall
- Skip HTTPS and HTTP services if portal authentication is disabled, with appropriate logging
- Skip applying auth server firewall rule during local auth
- Add null check for auth_server->ips_auth_server in firewall functions
- Enhance firewall rule checking with debouncing and failure tracking
URL Handling
- Update wd_get_orig_url to accept is_ssl parameter for scheme determination
- Improve URL reconstruction logic in wd_get_orig_url function
- Fix URI joining check in wd_get_orig_url function
Error Handling & Logging
- Enhance error logging for domain synchronization and addition in xDPI kernel module
- Improve JSON request handling and update auth server configuration logic
- Change logging level to DEBUG for top domains reporting
- Reduce unnecessary logs in dns_monitor
- Remove redundant checks for zero rates in SID statistics printing and JSON parsing
♻️ Refactoring & Code Quality
Architecture Improvements
- Remove enable_dhcp_cpi configuration and DHCP-related functionality
- Remove enable_dns_forward configuration and DNS forwarding functionality
- Remove SSH client implementation files
- Remove proc file operations and related code from xdpi-bpf.c
- Remove unused xDPI constants and structures from dns_monitor.c
Code Organization
- Enhance thread termination and signal handling with improved error checks
- Improve UCI configuration handling with input validation and error checks
- Enhance documentation in safe.c/h for memory management functions
- Add SPDX license identifiers and copyright notices to multiple source files
- Remove redundant _GNU_SOURCE definitions from multiple source files
- Update debug.h for improved documentation and use of pragma once
- Improve documentation in http.h and reorganize callback function declarations
WebSocket Thread
- Refactor ws_thread with improved structure
- Enhance handle_kickoff_response, handle_auth_response, handle_tmp_pass_response functions
- Improve ws_read_cb documentation and input handling
- Enhance create_ws_bufferevent documentation and code readability
- Simplify input buffer reading logic and improve overflow handling in ws_read_cb
Authentication System
- Enhance process_auth_server_roam with improved documentation and error handling
- Improve process_auth_server_login_v2 function with enhanced error handling
- Enhance get_auth_counter_v2_uri function with improved documentation
- Enhance parse_auth_server_response and process_auth_server_logout functions
- Streamline error handling in authentication functions and enhance documentation
- Reorganize and clarify request and response definitions in centralserver.h
General Refactoring
- Rename ssl_redir to tls_thread and update related references
- Update CMake configuration for improved structure and clarity
- Simplify ECDH setup in ssl_redirect_loop function
- Add cleanup function for firewall destruction before exit
- Optimize substring replacement logic in HTTP processing
- Update domain management to use ioctl for loading domains and improve domain entry handling
- Add function to set inner domains as trusted and enable GNU extensions in safe.c
Build & CI/CD
- Add libmosquitto-dev installation to build-on-ubuntu.yml workflow
- Rename linux.yml to build-on-ubuntu.yml and enhance workflow with firewall version input
📊 Statistics
- Total Commits: 638
- Version Range: 7.10.2082 → 8.11.2719
- Intermediate Versions: 8.10.2701, 8.09.2681
🙏 Contributors
Thanks to all contributors who made this release possible!
For complete commit history, see: https://github.com/liudf0716/apfree-wifidog/compare/7.10.2082...8.11.2719
版本发布 8.11.2719
此版本包含自 7.10.2082 版本以来的重大改进和错误修复。
🚀 主要功能
Portal 认证增强
- 在 API 处理器和防火墙操作中添加 portal 认证配置和检查
- 当 portal 认证禁用时跳过防火墙检查和域名解析
- 实现直接防火墙重载机制,具有适当的锁定和错误处理
- 在更新计数器之前添加 portal 认证检查
WebSocket 和实时通信
- 通过 WebSocket 连接增强认证服务器状态检测
- 添加 WebSocket 客户端信息查询接口
- 改进 WebSocket 密钥生成和消息处理,增强验证
- 增强 WebSocket 消息处理和心跳管理
DNS 监控和 xDPI
- 实现 DNS 统计导出功能,用于 aw-bpfctl 集成
- 添加程序数组映射用于尾调用,并重构 DNS 出口处理器
- 增强域名条目结构,添加访问计数和时间戳以改进跟踪
- 放宽 DNS 头验证并增强日志记录以便更好地调试
- 在防火墙初始化中添加域名白名单设置
- 改进 DNS 事件处理,增强输入验证和大小检查
- 实现预定义 L7 协议的加载
系统信息和监控
- 增强状态报告,提供详细的系统、网络和防火墙信息
- 为 WebSocket 请求添加系统信息检索处理器
- 添加 CPU 温度检索并集成到系统信息中
- 为客户端、认证和 wifidogx 添加 JSON 状态端点
- 在状态文本输出中添加在线时间计算
WiFi 配置
- 完善 WiFi 配置接口,支持完整的 OpenWrt 无线和 mesh 配置
- 根据最新实现更新 WiFi 配置接口文档
- 限制 available_networks 只返回 proto=static 的网络接口
- 移除网络接口 IP 配置功能,只保留接口列表获取
- 移除 mesh_fwding 和 mesh_rssi_threshold 字段
文档和 GitHub 页面
- 为 ApFree WiFiDog portal 添加初始 HTML 结构和 CSS 样式
- 添加新文档文件并翻译成中文
- 创建中文版 xDPI 概述和快速入门指南
- 更新 README 文件,包含英文和中文版本链接
- 添加中文版 README,包含项目概述和贡献指南
- 优化联系部分 UI
🐛 错误修复
内核兼容性
- 更新设备类创建以兼容 kernel 6.6+
- 将 proc_ops 更新为 file_operations 以提高兼容性
- 将 _IOW/_IOR 宏替换为简单整数常量以增强内核模块兼容性
内存和安全性
- 在 xdpi_proc_ioctl 中为域名列表分配内存以防止栈溢出
- 增强 DNS 问题和应答解析以防止未对齐访问问题
- 修正 DNS egress 处理程序的 SEC 标记,确保正确处理数据包
IOCTL 操作
- 更新 ioctl 操作以使用字符设备而不是 proc 文件
- 增强 ioctl 操作的权限
- 包含 ioctl.h 以获取正确的 IOCTL 命令定义
- 改进 xdpi_proc_ioctl 中的代码结构以提高可读性和可维护性
客户端管理
- 改进客户端断开连接处理和状态响应日志记录
- 修复 get_sys_info 中 wifidog_uptime 为 0 的问题
- 如果未设置,则将 first_login 初始化为当前时间
- 在 JSON 对象创建中使用 int64 作为客户端计数器
- 获取客户端信息时更新客户端信息
- 改进 wdctl_cmd_process 中的命令参数处理和状态报告
认证和防火墙
- 如果 portal 认证被禁用,则跳过 HTTPS 和 HTTP 服务,并进行适当的日志记录
- 在本地认证期间跳过应用认证服务器防火墙规则
- 在防火墙函数中为 auth_server->ips_auth_server 添加空检查
- 通过防抖和失败跟踪增强防火墙规则检查
URL 处理
- 更新 wd_get_orig_url 以接受 is_ssl 参数进行 scheme 确定
- 改进 wd_get_orig_url 函数中的 URL 重建逻辑
- 修复 wd_get_orig_url 函数中的 URI 连接检查
错误处理和日志记录
- 增强 xDPI 内核模块中域名同步和添加的错误日志记录
- 改进 JSON 请求处理并更新认证服务器配置逻辑
- 将顶级域名报告的日志级别更改为 DEBUG
- 减少 dns_monitor 中的不必要日志
- 移除 SID 统计打印和 JSON 解析中对零速率的冗余检查
♻️ 重构和代码质量
架构改进
- 移除 enable_dhcp_cpi 配置和 DHCP 相关功能
- 移除 enable_dns_forward 配置和 DNS 转发功能
- 移除 SSH 客户端实现文件
- 从 xdpi-bpf.c 中移除 proc 文件操作和相关代码
- 从 dns_monitor.c 中移除未使用的 xDPI 常量和结构
代码组织
- 通过改进的错误检查增强线程终止和信号处理
- 通过输入验证和错误检查改进 UCI 配置处理
- 增强 safe.c/h 中内存管理函数的文档
- 向多个源文件添加 SPDX 许可证标识符和版权声明
- 从多个源文件中删除冗余的 _GNU_SOURCE 定义
- 更新 debug.h 以改进文档并使用 pragma once
- 改进 http.h 中的文档并重新组织回调函数声明
WebSocket 线程
- 重构 ws_thread,改进结构
- 增强 handle_kickoff_response、handle_auth_response、handle_tmp_pass_response 函数
- 改进 ws_read_cb 文档和输入处理
- 增强 create_ws_bufferevent 文档和代码可读性
- 简化 ws_read_cb 中的输入缓冲区读取逻辑并改进溢出处理
认证系统
- 增强 process_auth_server_roam 的文档和错误处理
- 改进 process_auth_server_login_v2 函数,增强错误处理
- 增强 get_auth_counter_v2_uri 函数的文档
- 增强 parse_auth_server_response 和 process_auth_server_logout 函数
- 简化认证函数中的错误处理并增强文档
- 重新组织和澄清 centralserver.h 中的请求和响应定义
通用重构
- 将 ssl_redir 重命名为 tls_thread 并更新相关引用
- 更新 CMake 配置以改进结构和清晰度
- 简化 ssl_redirect_loop 函数中的 ECDH 设置
- 在退出前添加防火墙销毁的清理函数
- 优化 HTTP 处理中的子字符串替换逻辑
- 更新域名管理以使用 ioctl 加载域名并改进域名条目处理
- 添加将内部域名设置为可信的功能,并在 safe.c 中启用 GNU 扩展
构建和 CI/CD
- 在 build-on-ubuntu.yml 工作流中添加 libmosquitto-dev 安装
- 将 linux.yml 重命名为 build-on-ubuntu.yml 并通过防火墙版本输入增强工作流
📊 统计信息
- 总提交数: 638
- 版本范围: 7.10.2082 → 8.11.2719
- 中间版本: 8.10.2701, 8.09.2681
🙏 贡献者
感谢所有为此版本做出贡献的开发者!
完整提交历史,请查看:https://github.com/liudf0716/apfree-wifidog/compare/7.10.2082...8.11.2719