anchor.diff:      Size = size(Data1),
       _ = send(Socket, Data1),
       Size.
  +
  +send_chunk_start(Socket, true, Size) when is_integer(Size) ->
  +    _ = send(Socket, mochihex:to_hex(Size)),
  +    _ = send(Socket, <<"\r\n">>);
  +send_chunk_start(_Socket, false, _Size) ->
  +    nop.
  +
  +send_chunk_end(Socket, true) ->
  +    _ = send(Socket, <<"\r\n">>);
  +send_chunk_end(_Socket, false) ->
  +    nop.
  +
   
   send(undefined, _Data) ->
       ok;
  
positive.code:     Size = send_chunk(Socket, IsChunked, Data),
      send_chunk(Socket, IsChunked, <<>>),
      Size + SoFar;
  send_stream_body(Socket, IsChunked, {<<>>, Next}, SoFar) ->
      send_stream_body(Socket, IsChunked, Next(), SoFar);
  send_stream_body(Socket, IsChunked, {[], Next}, SoFar) ->
  
negative.code: send_device_body(Socket, Length, IO) ->
      send_file_body_loop(Socket, 0, Length, IO).
  
  send_file_body(Socket, IsChunked, Length, Filename) ->
      send_chunk_start(Socket, IsChunked, Length),
      Bytes = send_file_body_1(mochiweb_socket:type(Socket), Socket, Length, Filename),
      send_chunk_end(Socket, IsChunked),
      Bytes.
  
  
  send_file_body_1(ssl, Socket, Length, Filename) ->
      send_file_body_read(Socket, Length, Filename);
  send_file_body_1(plain, Socket, Length, Filename) ->
      case use_sendfile() of
          erlang ->
              {ok, FD} = file:open(Filename, [raw,binary]),
  