http + recv + return 0
От: ryglman  
Дата: 27.10.07 20:25
Оценка:
Есть web-сервер, конкретно apache2.2.6, есть клиентское приложение шлет HTTP 1.1
POST запрос, с флагом Connnection: Close, сервер отвечает, и закрывает соеденение.
Проблема в том что клинтское приложение получает ответ, вызовом блокирующей функции recv,
recv(sock, pool, POOL_SIZE, 0), буфер pool заполняется, но функкция возращает 0,
хотя может возращать -1 или же число записанных байт.
Вроде бы все выглядит логично, но если этот самый pool не заполнен нулями, а скажем заполнен cc(опкод инструкции int3, или же другой опкод напртимер неверная инструкция) в отладочных целях, то обработка полученного буфера как строки привеет к переполнению буфера.
Не использовать отладочные примочки не хорошо, и заполнять 0, тоже не красиво, что делать, как сделать это красиво?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.