anchor.diff:      Size = send_chunk(Socket, IsChunked, Data),
       send_chunk(Socket, IsChunked, <<>>),
       Size + SoFar;
  +send_stream_body(Socket, IsChunked, {{file, Filename}, Next}, SoFar) ->
  +    Length = filelib:file_size(Filename),
  +    send_stream_body(Socket, IsChunked, {{file, Length, Filename}, Next}, SoFar);
  +send_stream_body(Socket, IsChunked, {{file, Size, Filename}, Next}, SoFar) ->
  +    Bytes = send_file_body(Socket, IsChunked, Size, Filename),
  +    send_stream_body(Socket, IsChunked, {<<>>, Next}, Bytes + SoFar);
   send_stream_body(Socket, IsChunked, {<<>>, Next}, SoFar) ->
       send_stream_body(Socket, IsChunked, Next(), SoFar);
   send_stream_body(Socket, IsChunked, {[], Next}, SoFar) ->
  
positive.code: send_device_body(Socket, Length, IO) ->
      send_file_body_loop(Socket, 0, Length, IO).
  
  send_file_body(Socket, Length, Filename) ->
      send_file_body(mochiweb_socket:type(Socket), Socket, Length, Filename).
  
  send_file_body(ssl, Socket, Length, Filename) ->
      send_file_body_read(Socket, Length, Filename);
  send_file_body(plain, Socket, Length, Filename) ->
      case use_sendfile() of
          erlang ->
              {ok, FD} = file:open(Filename, [raw,binary]),
  
negative.code:     Length = filelib:file_size(Filename),
      send_response_bodyfun({file, Length, Filename}, Code, Parts, ReqData, LogData);
  send_response_bodyfun({file, Length, Filename}, Code, all, ReqData, LogData) ->
      Writer = fun() -> send_file_body(ReqData#wm_reqdata.socket, false, Length, Filename) end,
      send_response_headers(Code, Length, undefined, Writer, ReqData, LogData);
  send_response_bodyfun({file, _Length, Filename}, Code, Parts, ReqData, LogData) ->
      Writer = fun() -> send_file_body_parts(ReqData#wm_reqdata.socket, Parts, Filename) end,
  