4.3.2

优化

  • 动态化ipc_size, 极大提升Process模式下进程间通讯性能 (48c1b2b) (3e85511) (@matyhtf)
  • 完善Runtime::enableCoroutine的API设计, 第一参数支持直接传入flag, 且其表现与error_reporting一致(由标志位控制开关) (464ad65) (7d4be65) (@twose)
  • 使用SSL连接时如使用了host_name, 将自动传入ssl_host_name参数 (563e677) (@twose)
  • 一些NOTICE级别的信息将改为INFO级别, 如服务器重启信息等 (d87d63a) (@twose)
  • dispatch_func返回值新增常量SWOOLE_DISPATCH_RESULT_DISCARD_PACKET, SWOOLE_DISPATCH_RESULT_USERFUNC_FALLBACK, 分别代表丢弃数据包, 从用户dispatch方法回归到为底层dispatch_mode所指定的模式 (#2451) (@windrunner414)
  • swoole_strerror支持自动识别系统错误码和swoole错误码 (d89c565) (#2458) (@twose) (@mabu233)
  • 增加 http_parse_cookie 选项用于关闭cookie解析 (dce290ef) (@twose)
  • 对path_info进行url解码 (82f8e4fc) (@twose)
  • 支持了 PHP_STREAM_OPTION_CHECK_LIVENESS (6ff292da) (@twose)

修复

  • 修复CID-1478883, CID-1478887, CID-1478891, CID-1478894 (688713f) (17805af) (e8f1473) (58a098f) (@matyhtf)
  • 修复由于fd复用导致的非法内存访问 (08b37fd) (@twose)
  • 修复由于fd复用导致的错误的连接关闭 (#2444) (@twose)
  • 修复由于PHP内核问题引起的, 脚本在shutdown期间Object-GC不工作的问题(导致内存泄漏) (836ea23) (15ba9f7) (@twose)
  • 修复协程迭代器在迭代期间产生协程调度操作导致迭代器失效的问题 (db9e155) (@twose)
  • 修复Co::exec可能导致的进程卡死 (8a1d776) (22252d7) (@matyhtf)
  • 修复由于导出Socket导致的多次close(BADF) (ebbce67) (c7af14c) (c717122) (@matyhtf)
  • 补全Swoole\Buffer的默认属性定义 (2f66319) (@twose)
  • 补全Co::exec遗漏的方法参数定义 (7da1376) (@twose)
  • 修复MySQL客户端连接无效的主机时错误码不正确的问题 (#2367) (@twose)
  • 修复同步客户端被信号打断的问题 (#2448) (@liues1992)
  • 修复i?86/aarch64下的编译检查 (#2460) (@dixyes)
  • 修复协程poll时timeout参数为0的处理 (1143743) (@matyhtf)
  • 修复协程化后的stream_select的timeout参数为null时的无限挂起问题(未初始化结构体)和纳秒超时不生效问题 (e8a58d5) (c166b7a) (@twose)
  • 修复协程化后的stream_select在各种场景下的非常规表现 (d8e7a41) (3ce877d) (2819232) (cd8e4c7) (@twose) (@matyhtf)
  • PHP层面无法处理的错误将不再产生PHP Warning, 而是产生一条Swoole的警告日志 (955d021) (@twose)
  • 修复Co\Client构造失败时未抛出异常导致后续操作访问了无效内存的问题 (#2466) (@twose)
  • 修复HTTP2服务器和客户端的cookie解析问题 (e18d66b) (@twose)
  • 修复Process->getProcess方法导致的无效内存访问 (fe1ca17) (@matyhtf)
  • 修复Server只配置open_http2_protocol时无法设置onRequest回调的问题, 但使用Server而不是Http\Server来启用HTTP相关协议, 将会产生一个警告提示 (#2469) (@twose)
  • 修复协程化文件函数后, 文件上锁死锁问题 (23401d8) (86cf0c9) (@matyhtf)
  • 修复Co\Http2\Client连接失败产生错误事件时空指针 (66c31ee) (@twose)
  • 修复Socket->accept构造的socket未初始化类型(可能会导致tcp_nodelay等属性失效) (5d26b00) (@twose)
  • 修复Co\Http\Client升级为websocket客户端后无法读写分离的问题 (#2477) (523c588) (@twose)
  • 补全Event::dispatch, Event::isset方法定义 (#2491) (@deminy)
  • 修复非法构造的连接迭代器导致内存错误 (#2492) (@matyhtf)
  • 修复了 reload_async 选项在有定时器时无法生效 (9eaf32cc) (bacb5228) (@matyhtf) (@twose)
  • 开启 task_enable_coroutine 时将不再允许使用msgqueue (#2497) (@matyhtf)
  • 修复 read_eof 内存无限扩容问题 (e936c764) (@matyhtf)
  • Sockets C++ 兼容性修复 (3cf7dcba) (@twose)