sptunnel运行时的一些不该出现的日志

11 views
Skip to first unread message

netone.z

unread,
Dec 17, 2008, 8:06:24 AM12/17/08
to spserver, steph...@gmail.com
以下是对sptunnel进行简单试用时打印出的日志 (此现象100%重现):
firefox(windows) -> sptunnel(linux 2.6.18/openssl-0.9.8/
spserver-0.9.3)->web server(apache2/linux)

......Firefox通过sptunnel浏览页面, 页面已经成功显示.........................
......等待1-2秒后, sptunnel打印出下面的日志.................................
sptunnel[15807]: session(1025.0) read error, errno 0, status 0
sptunnel[15807]: session(1025.0) error, r 320(0), w 492(0), i 0, o 0,
s 1(1023)
sptunnel[15807]: session(1025.0) invalid, unknown FROM
sptunnel[15807]: session(1024.0) read error, errno 0, status 0
sptunnel[15807]: session(1024.0) error, r 492(0), w 320(0), i 0, o 0,
s 0(1024)
sptunnel[15807]: session(1024.0) invalid, unknown FROM

进一步查看日志的来源, 是在speventcb.cpp的179行, void SP_EventCallback :: onRead()函数
内.

从日志可以看出, 此时errno==0, 跟踪进去, 也可以看到len==0.

当len==0 && errno == 0的时候, 通常意味着数据已经全部读完, 此时似乎不应该再调用addEvent( session,
EV_READ, -1 ); 而应该停止read, 设置标志位, 等待write结束后, 关闭session.

上面这些日志显然并不应该出现.

我刚刚接触spserver, 对event-driven i/o并不熟悉, 上面说的也不知道对不对, 请指教.

stephen.nil

unread,
Dec 20, 2008, 11:47:04 AM12/20/08
to spserver
Hi, netone.z

你的理解是对的,这里的确存在问题。
最近比较忙,有时间改代码,估计没时间做测试。
我可能要等一段时间才能把这个修改做上去。

Best regards,

stephen.nil
2008-12-21
Reply all
Reply to author
Forward
0 new messages