HTTPゲットのバグ

なでしこのHTTPゲットやHTTPポストに、ファイルの途中までしか落とせないバグがあるようです。*1
で、nakonet.dllの該当部を覗いてみました。
問題の命令は、WinSockをクラスで隠して使っていました。
処理は、

  • リクエスト生成
  • 送信&受信
  • 受信バッファからヘッダ確認
  • Content-Lengthがあればその値分だけ受信バッファから読み込み、なければ残りのバッファ全部読み込み。
  • Resultにセットして終了

という具合。
怪しいのは受信処理。
これでは、適当なサイズのバッファを用意して、そこにWinSockのrecvで読み込み、その返り値から判断して、バッファの長さが十分ならバッファを短く切る。足りなければバッファのばしてもう一回。
ここでなんですが、どうもWinSockのrecvが「ファイルサイズはこんだけ」と示す値がやたら小さいみたいです。
WinINetで実装されているHTTPダウンロードやHTTPデータ取得は問題なく取得できています。
……さて、原因は何なんでしょうか?

*1:リンク先のスレッドにはHTTPダウンロードも書かれていますが、私の環境では再現せず。