zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

response.ex (1023B)


      1 defmodule Mint.HTTP1.Response do
      2   @moduledoc false
      3 
      4   alias Mint.Core.Util
      5 
      6   def decode_status_line(binary) do
      7     case :erlang.decode_packet(:http_bin, binary, []) do
      8       {:ok, {:http_response, version, status, reason}, rest} ->
      9         {:ok, {version, status, reason}, rest}
     10 
     11       {:ok, _other, _rest} ->
     12         :error
     13 
     14       {:more, _length} ->
     15         :more
     16 
     17       {:error, _reason} ->
     18         :error
     19     end
     20   end
     21 
     22   def decode_header(binary) do
     23     case :erlang.decode_packet(:httph_bin, binary, []) do
     24       {:ok, {:http_header, _unused, name, _reserved, value}, rest} ->
     25         {:ok, {header_name(name), value}, rest}
     26 
     27       {:ok, :http_eoh, rest} ->
     28         {:ok, :eof, rest}
     29 
     30       {:ok, _other, _rest} ->
     31         :error
     32 
     33       {:more, _length} ->
     34         :more
     35 
     36       {:error, _reason} ->
     37         :error
     38     end
     39   end
     40 
     41   defp header_name(atom) when is_atom(atom), do: atom |> Atom.to_string() |> Util.downcase_ascii()
     42   defp header_name(binary) when is_binary(binary), do: Util.downcase_ascii(binary)
     43 end