Commit Graph

84 Commits

Author SHA1 Message Date
luwenpeng
8d29fe5cbc #175 http compress destroy mem leak 2019-09-26 15:38:34 +08:00
luqiuwen
ce8c8cd899 #174 修正HTTP1解析层在解析HTTP头部时,误采用前缀匹配判断头部是否为标准定义的问题。
* 原实现在判断请求/应答头部字段是否为标准头部时,没有判断传入字符串长度是否相等,导致当传入字符串为标准头部的前缀时误将其解析为标准头部;
* 现修正,增加判断字符串长度的流程,当字符串长度完全相等时再执行字符串匹配。
2019-09-23 19:07:32 +08:00
luqiuwen
cd0fd187ad #165 调整TFE进程的启动方式,使用notify方式启动;
* 调整notify超时时间为300秒;
* 调整日志的记录方式,当使用notify方式启动时,初始化完毕后不在向标准输出写入日志。
2019-09-23 16:10:53 +08:00
luwenpeng
de16d2da87 整理 http/http2 公共的 header 字段,存储到 tfe_http.cpp 文件中 2019-09-16 14:27:11 +08:00
luqiuwen
d94c397776 修正HTTP解析层在上层设置请求/应答后,需要等待源站消息完整后才将上层构建的请求/应答发出的问题。
* 继续修正,设置请求/应答的初始化状态不为COMPLETE,待应用层设置BODY为NULL再转为COMPLETE,避免应答体提前发出。
2019-09-10 11:54:24 +08:00
luqiuwen
18be5ab07f 修正HTTP解析层在上层设置请求/应答后,需要等待源站消息完整后才将上层构建的请求/应答发出的问题。
* 现修正,每次调用HTTP解析函数后,无论是否到达消息边界,都检查是否上层是否构建了请求/应答。
2019-09-10 11:54:24 +08:00
luqiuwen
e40cd3ba7f 修正HTTP解析层在上层设置请求/应答后,需要等待源站消息完整后才将上层构建的请求/应答发出的问题。
* 原实现在HTTP解析过程中,只在HTTP消息的边界返回http_entry中的流程,故只能在站消息完整后才执行发出上层的请求/应答;
* 现修正,在HTTP的解析过程中,发现上层设置了请求/应答,则在HTTP头部完整后执行PAUSE动作,触发上层请求/应答的发送流程。
2019-09-04 17:20:25 +08:00
luqiuwen
3a33de4b7c 修正重复写入Content-Length的问题 2019-08-26 10:12:14 +08:00
luqiuwen
b689485fea 修正HTTP1构建新头部时处理多个具有相同名称头部字段的处理逻辑。
* 原实现假设头部字段名称不重复,因此在构建具有同名称头部字段时,后设置的值会替换先设置的值;
* 现修正,构建具有同名称头部字段时不覆盖原来的值,而是在头部追加。
2019-08-26 10:12:14 +08:00
luqiuwen
a02fe27f17 修正当HTTP Session被Kill时没有调用HTTP Session End、Stream Close接口的问题。 2019-08-21 14:53:12 +08:00
fengweihao
4b64e5bfe1 1.删除缓存测试无效代码
2.修改header链表结构为TQ
3,重构h2_half_ops_field_read,h2_half_ops_field_write等接口
2019-05-31 10:21:40 +08:00
fengweihao
fcde7bfbf3 *修改nghttp2对于控制帧(set ping等)自动回复数据,造成原服务数据冗余发送goaway帧
*修改下发替换规则后,csdn页面数据图片无法显示问题
(原因:由于数据Header,在不同流中,且不同流中存在多个流id)
*修改模拟C对推送承诺帧drop处理,造成当前流中数据丢失
*修改页面访问新浪sinaere.js失败
*修改流id数据未及时释放造成页面刷新延缓
2019-05-24 18:45:44 +08:00
luqiuwen
f6c1ea0e28 Close #115 升级http-parser到2.9.0版本并增加对以\r\n起始的HTTP应答执行HTTP解析的单元测试用例 2019-01-29 14:45:57 +06:00
luqiuwen
f01fd2adc7 Close #109 修正302重定向在Firefox浏览器下跳转缓慢的问题
* Firefox要求302应答体必须包含Content-Length,否则无法正确处理消息体
* 增加302应答的Content-Length字段,填为0.
2019-01-10 15:48:22 +06:00
luqiuwen
a3beec84f9 修正执行gzip/br压缩时,不能动态申请缓冲区导致压缩缓冲区不足的问题 2019-01-08 19:25:17 +06:00
luqiuwen
dd223d547d Close #107 不能正确处理502 Bad Gateway的问题
* 修正为当HTTP请求未完成时,认为整个HTTP Session非法,不处理。
2019-01-05 18:18:39 +06:00
luqiuwen
8713da2d81 修正Http-kill位置过完的问题,增加TCP链接摘要日志功能 2018-12-14 03:06:34 +06:00
luqiuwen
8c93f7203d 增加HTTP日志等级配置功能 2018-12-13 23:40:36 +06:00
luqiuwen
fd09f249b6 增加HTTP-Kill/TCP-Kill功能 2018-12-12 15:01:18 +06:00
luqiuwen
1d89768160 增加对BR压缩编码的支持及对应的单元测试用例 2018-12-09 18:02:43 +06:00
zhengchao
a5ca97d91e 重构key keeper创建keyring的代码。修复除 #97 外的valgrind definitely lost。 2018-11-29 19:02:07 +08:00
zhengchao
f76a8c5ca2 修复多处内存泄漏。 2018-11-29 16:24:45 +08:00
Lu Qiuwen
4d326c5c52 Close #83 去掉resume()中的gc断言,当session在gc中resume时,立即返回等待session销毁。 2018-11-26 11:29:23 +08:00
Lu Qiuwen
691e1b83a1 #93 增加GZIP解压缩失败后Passthrough整个连接的功能 2018-11-26 10:58:10 +08:00
Lu Qiuwen
86884e807a #85 连接层与HTTP解析层Warning已消除。 2018-11-22 16:27:51 +08:00
Lu Qiuwen
fbff32673f Close #76 修正HTTP Upgrade后没有正确Detach该连接的问题
* 原实现没有正确处理Upgrade标志位,导致连接再次进入HTTP解析流程从而无法解析,报#76所列之问题。
* 现修正,亦增加#76所示日志之五元组信息。
2018-11-22 13:47:17 +08:00
zhengchao
67edf968f6 #86 修正在HTTP请求在Resume()操作后设置HTTP应答,没有丢弃原始HTTP请求的问题。
* 原实现在用户调用resume()后,没有将用户设置的user_stream_action传递到原始HTTP请求,导致该原始请求没有被丢弃,现修正。@luqiuwen
2018-11-20 16:46:15 +08:00
Lu Qiuwen
88e9eecf09 调整目录结构,增加RPM打包功能
* 调整目录结构,原conf目录分拆为conf和resource目录。其中,conf目录在软件更新时不会更新,resource则更新;
* 增加RPM打包功能,利用CI发布软件的RPM,对应调整GitLAB-CI脚本。
2018-11-16 20:59:49 +08:00
Lu Qiuwen
6bcd2cb9a6 Close #77 修正http_half_private结构体未完全释放的问题 2018-11-14 15:55:51 +08:00
Lu Qiuwen
4320971285 修正执行HTTP Pass-through动作时错误的assert 2018-11-08 19:13:52 +08:00
Lu Qiuwen
571f7cd12e Close #72 修正在HTTP-REQ/RESP-BEGIN事件执行detach动作时段错误。 2018-11-07 14:14:03 +08:00
Lu Qiuwen
2d02343b50 Close #65 修正进入GC队列的HTTP Session写日志时触发的连接非法段错误 2018-11-04 18:30:33 +08:00
Lu Qiuwen
b677d8ad0f 支持在应答侧suspend/resume功能,合并http_entry中处理request/response的流程 2018-10-28 20:13:17 +08:00
Lu Qiuwen
cf64f01f7f 修正suspend/resume语义实现的若干问题,增加自行构建request/response的header标志 2018-10-26 20:30:06 +08:00
Lu Qiuwen
0cd191b9e6 Close #60 修正POST请求无Content-Length字段时无法转发请求的问题
* 部分HTTP POST请求中无有Content-Length字段,导致无法确定请求的边界。
* 现修正为,当发现Content-Length字段缺失时,Passthrough整个TCP连接。
* TODO: 解析POST编码或回应411应答。
2018-10-25 16:47:19 +08:00
Lu Qiuwen
2cea50f48c 修正HTTP Early Answer功能在HTTP头部带有Body时的引发assert的问题。
* 原实现无法正确处理HTTP请求带有Body时,业务层执行Early Answer动作;
* 现修正为HTTP请求头完整时,检查是否需要Early-Answer。如果请求已经向真实服务器转发,则不执行Early-Answer动作。
2018-10-25 10:54:53 +08:00
Lu Qiuwen
f87e21d323 改进HTTP访问日志格式 2018-10-24 20:53:29 +08:00
Lu Qiuwen
62b8089166 Close #33 增加HTTP Upgrade透明转发的功能 2018-10-24 15:40:26 +08:00
Lu Qiuwen
bcfe14055f 增加HTTP Session延迟回收机制,完善HTTP Session销毁流程 2018-10-22 21:22:59 +08:00
Lu Qiuwen
0f31b948ba 增加test-addr的MESA_handle_logger依赖 2018-10-22 15:33:24 +08:00
zhengchao
c5f5ee2655 不cache包含Set-cookie的应答。修改多处日志细节。 2018-10-21 15:03:04 +08:00
zhengchao
8a0f3c8c3c http resume后应给tcp层返回当前数据的处理结果。 2018-10-19 18:01:53 +08:00
zhengchao
aa4629ca31 todo:http 写文件的bug。 2018-10-18 16:20:44 +08:00
Lu Qiuwen
26d537b67a 修正基于请求侧构建应答侧时的假设条件 2018-10-18 16:20:44 +08:00
Lu Qiuwen
cb6c522298 修正HTTP流式发送应答时,Content-Length填写错误的问题。 2018-10-18 13:44:17 +08:00
Lu Qiuwen
af9b36eecb 增加HTTP Early-Answer功能,用户在请求侧设置应答侧数据时,立即发送到线路。 2018-10-18 13:44:17 +08:00
zhengchao
00a0ec675a 修复忘记初始化tailq的bug 2018-10-16 21:30:52 +08:00
zhengchao
1723fa1029 大文件流式缓存联调通过。UNDEFINE类型100KB以上进行缓存。 2018-10-16 21:16:58 +08:00
Lu Qiuwen
37b4f3a644 修正由于HTTP流式构建应答时,由于真实应答晚于构建应答到达触发的问题
* 原实现在真实应答晚于构建应答到达时,仍然触发流式TCP写操作;
* 现修正为该情况时,直接发送完整的构建应答而不是流式写。
2018-10-16 20:01:25 +08:00
Lu Qiuwen
01ec332844 修正流式构建HTTP响应时,重新申请write_ctx的问题 2018-10-16 17:24:52 +08:00