anchor.diff:  %% using Nagle.
   
   %% Receive packets until a full message is received,
  -recv(Bin, #transport{frag = Head} = S) ->
  -    case acc(Head, Bin) of
  -        {Msg, B} ->         %% have a complete message ...
  -            message(recv, Msg, S#transport{frag = B});
  -        Frag ->              %% read more on the socket
  -            start_fragment_timer(setopts(S#transport{frag = Frag,
  -                                                     flush = false}))
  -    end.
  +
  +recv({Msg, Rest}, S) ->  %% have a complete message ...
  +    recv(acc(Rest), message(recv, Msg, S));
  +
  +recv(Frag, S) ->         %% or not
  +    start_fragment_timer(setopts(S#transport{frag = Frag,
  +                                             flush = false})).
   
   %% acc/2
   
  
positive.code:     S;
  
  message(Dir, Msg, #transport{message_cb = CB} = S) ->
      recv(<<>>, actions(cb(CB, Dir, Msg), Dir, S)).
  
  %% actions/3
  
  
negative.code: 
  %% Incoming packets.
  transition({P, Sock, Bin}, #transport{socket = Sock,
                                        ssl = B,
                                        frag = Frag}
                             = S)
    when P == ssl, true == B;
         P == tcp ->
      recv(acc(Frag, Bin), S#transport{active = false});
  
  %% Capabilties exchange has decided on whether or not to run over TLS.
  transition({diameter, {tls, Ref, Type, B}}, #transport{parent = Pid}
  