打印

救急!LWIP-1.4.1 中SSI动态数据发送问题!

[复制链接]
4322|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
coolala584520|  楼主 | 2012-12-27 18:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不带SSI标签的SHTML网页和HTML网页都能正常发送和访问!
可是带SSI标签的SHTML网页,在发送数据时,由于有多个SS标签,所以会多次调用tcp_write()函数,到最后才一起发送整个数据包。可是数据包怎么发不出去……将tcp_write()的cpoy改为0也不行,此功能主要在http_send_data_ssi()中;请问是什么问题啊?或者说,LWIP中要怎么才能连续发送几段数据拼起来的数据包?

附上LWIP-1.4.1源码下载地址:download.savannah.gnu.org/releases/lwip/
下载:contrib-1.4.1.zip 和 lwip-1.4.1.zip

我用的是contrib-1.4.1中 apps\httpserver_raw 这个例程!
打开了SSI功能:#define  LWIP_HTTPD_SSI    1

求助!谢谢大虾们了!

相关帖子

沙发
jlass| | 2012-12-28 08:42 | 只看该作者
会不会是发送时间限制设的太短了,一超时就返回了。所以大的数据包发不出去。

使用特权

评论回复
板凳
coolala584520|  楼主 | 2012-12-29 21:56 | 只看该作者
可是打开了LWIP_DEBUG,没有超时错误啊。

使用特权

评论回复
地板
coolala584520|  楼主 | 2014-10-17 18:43 | 只看该作者
好久没来了,问题早已解决!修改和SSI相关的多处bug !

1、修改httpd.c中1360、1409、1449行,注解掉if判断,解决了文件存SSI TAG时,len不断减小,最终连续发送len=1个字节的题!

2、修改tcp_out.c中第474、534行(tcp_write()函数),修改httpd.c中第1366、1416、1458行(http_send_data_ssi()函数),增加了TCP_WRITE_FLAG_MORE的用法!
   解决了第一个SSI TAG出现在文件前面(小于TCP_MSS个字节)时的问题!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

1

粉丝