Отобразить http страницу блокировки из LSP с хромом

Я изменил пример Microsoft LSP (Winsosk Layered Service Provider), чтобы сделать приложение веб-фильтра для настольных компьютеров. Я могу заблокировать доступ к сайтам, сравнив хост в заголовке http со списком запрещенных сайтов в файле. Если сеть заблокирована, LSP заполнит буфер html-страницей, показывая, что эта страница заблокирована. Я проверил на Firefox 4, Opera 11 и IE 6, и отображается страница блока. Тем не менее, такая страница не отображается в Chrome 11 (последний).

Мне стало интересно, справится ли 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-страницы.

Спасибо.

1 ответ

Chrome использует перекрывающийся ввод-вывод, поэтому вам нужно поместить свой код, где WSPRecv вызывается в overlap.cpp в дополнение к spi.cpp. (Имена файлов из примера nonifslsp SDK.)

Другие вопросы по тегам