anchor.diff:    Sender = fun(Data) -> gen_tcp:send(Socket, Data) end,
   
     case read_prefix() of
  -    {"DIST", V, S} when V =:= 1; V =:= 2; V =:= 3 ->
  +    {<<"DIST">>, V, S} when V =:= 1; V =:= 2; V =:= 3 ->
         ok = Sender(list_to_binary(S)),
         format_log("distcc protocol version: ~w", [V])
     end,
  
positive.code: 
  io_read(Number) ->
    case file:read(group_leader(), Number) of
      {ok, Data}      -> Data;
      eof             -> exit(normal);
      {error, Reason} -> exit(file:format_error(Reason))
    end.
  
  format_log(Format) -> format_log(Format, []).
  
negative.code:   rx(Socket).
  
  read_prefix() ->
    <<Req:4/binary, BN/binary>> = BP = case io_read(12) of
      P when is_binary(P) -> P;
      P when is_list(P)   -> list_to_binary(P)
    end,
    N = list_to_integer(binary_to_list(BN), 16),
    io:format(standard_error, "Req: ~s, Len: ~w, prefix: ~s -> ", [Req, N, BP]),
    {Req, N, BP}.
  
  transfar_request(3, Sender, R = {Req, Len, Orig}) ->
    ok = if
      Req =:= <<"NFIL">> ->
        Sender(Orig),
        format_log("done");
      Req =:= <<"CDIR">>; Req =:= <<"NAME">>;
      Req =:= <<"FILE">>; Req =:= <<"LINK">> ->
        Data = io_read(Len),
        Sender(list_to_binary([Orig, Data])),
        format_log("done");
  