anchor.diff:  %%
   %% %CopyrightBegin%
   %%
  -%% Copyright Ericsson AB 1997-2020. All Rights Reserved.
  +%% Copyright Ericsson AB 1997-2021. All Rights Reserved.
   %%
   %% Licensed under the Apache License, Version 2.0 (the "License");
   %% you may not use this file except in compliance with the License.
  
positive.code: decode_query_section(Rest, 0, _Buffer, Qs) ->
      {Rest,reverse(Qs),false};
  decode_query_section(Bin, N, Buffer, Qs) ->
      case decode_name(Bin, Buffer) of
  	{<<Type:16,Class:16,Rest/binary>>,Name} ->
  	    DnsQuery =
  		#dns_query{domain=Name,
  			   type=decode_type(Type),
  			   class=decode_class(Class)},
  	    decode_query_section(Rest, N-1, Buffer, [DnsQuery|Qs]);
  	_ ->
  	    %% Broken question
  	    throw(?DECODE_ERROR)
      end.
  
  decode_rr_section(Bin, N, Buffer) ->
      decode_rr_section(Bin, N, Buffer, []).
  
negative.code:     {Rest,String} = decode_string(Bin),
      [String|decode_txt(Rest)].
  
  decode_string(Data) ->
      ?MATCH_ELSE_DECODE_ERROR(
         Data,
         <<Len,Bin:Len/binary,Rest/binary>>,
         {Rest,binary_to_list(Bin)}).
  
  decode_characters(Data, Encoding) ->
      ?MATCH_ELSE_DECODE_ERROR(
         Data,
         <<Len,Bin:Len/binary,Rest/binary>>,
         {Rest,unicode:characters_to_list(Bin, Encoding)}).
  
  %% One domain name only, there must be nothing after
  %%
  decode_domain(Bin, Buffer) ->
      ?MATCH_ELSE_DECODE_ERROR(decode_name(Bin, Buffer), {<<>>,Name}, Name).
  
  %% Domain name -> {RestBin,Name}
  %%
  