2011-05-20 81 views
0

我已经修改了Microsoft的LSP(Winsosk分层服务提供程序)示例,以便为桌面应用网页过滤器。我可以通过将http头中的主机与文件中被禁止的网站列表进行比较来阻止访问网站。如果一个网页被阻塞,LSP会用HTML页面填充缓冲区,表明这个页面被禁止。我在Firefox 4,Opera 11和IE 6上进行了测试,并显示了一个块页面。但是,此类页面未在Chrome 11中显示(最新版本)。显示来自LSP的http阻止页面(铬)

我想知道Chrome是否处理LSP的方式不同。

这是我送入LSP WSPRecv函数的缓冲区。

string strBufferHdr; 
    char len[10]; 
    _itoa_s (strBufferHTML.size(), len, 10); 

    strBufferHdr += "HTTP/1.1 200 OK\r\n"; 
    strBufferHdr += "content-type: text/html; charset=UTF-8\r\n"; 
    strBufferHdr += "connection: close\r\n"; 
    strBufferHdr += "content-length: "; 
    strBufferHdr += len; 
    strBufferHdr += "\r\n\r\n"; 
    strBufferHdr += strBufferHTML; 
    strBufferHdr += "\n\n\n"; 

strBufferHTML是一个html页面的内容。

谢谢。

回答

0

Chrome使用重叠I/O,因此除了spi.cpp之外,您还需要将代码放在overlap.cpp中调用WSPRecv的位置。 (来自nonifslsp SDK示例的文件名。)