anchor.diff:  daemon_init(Config) when is_record(Config, config), 
                            is_pid(Config#config.parent_pid) ->
       process_flag(trap_exit, true),
  -    UdpOptions = prepare_daemon_udp(Config),
  -    case catch gen_udp:open(Config#config.udp_port, UdpOptions) of
  +    {Port, UdpOptions} = prepare_daemon_udp(Config),
  +    case catch gen_udp:open(Port, UdpOptions) of
           {ok, Socket} ->
               {ok, ActualPort} = inet:port(Socket),
               proc_lib:init_ack({ok, self()}),
  
positive.code:     case lists:keymember(fd, 1, UdpOptions) of
          true ->
              %% Use explicit fd
              UdpOptions;
          false ->
              %% Use fd from setuid_socket_wrap, such as -tftpd_69
              InitArg = list_to_atom("tftpd_" ++ integer_to_list(Port)),
  
negative.code:                     print_debug_info(Config, daemon, open, ?ERROR(open, undef, Text, "")),
                      exit({badarg, {prebound_fd, InitArg, Badarg}});
                  error ->
                      {Port, UdpOptions}
              end
      end.
  
  