anchor.diff:  -define(SLEEP(T), receive after T -> ok end).
   
   -define(FAIL(R), exit(R)).
  +-define(SKIP(R), throw({skip, R})).
   
   -define(MINS(M), timer:minutes(M)).
   -define(SECS(S), timer:seconds(S)).
  
positive.code:         {ok, Index} ->
              ok;
          {ok, BadIndex} ->
              ?FAIL({name2index, Name, Index, BadIndex});
          {error, ReasonN2I} ->
              ?FAIL({name2index, Name, ReasonN2I})
      end,
      case net:if_index2name(Index) of
          {ok, Name} ->
              ok;
          {ok, BadName} ->
              ?FAIL({index2name, Index, Name, BadName});
          {error, ReasonI2N} ->
              ?FAIL({index2name, Index, ReasonI2N})
      end,
      verify_if_names(T).
  
  
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  %% local_host() ->
  %%     try net_adm:localhost() of
  %%         Host when is_list(Host) ->
  %% 	    %% Convert to shortname if long
  %% 	    case string:tokens(Host, [$.]) of
  %% 		[H|_] ->
  %% 		    list_to_atom(H)
  %% 	    end
  %%     catch
  %%         C:E:S ->
  %%             erlang:raise(C, E, S)
  %%     end.
  
  
  %% This gets the local address (not 127.0...)
  %% We should really implement this using the (new) net module,
  
negative.code:                 Name;
              {ok, BadNameInfo} ->
                  ?FAIL({getnameinfo, SA, BadNameInfo});
              {error, enotsup = ReasonNI} ->
                  ?SKIP({getnameinfo, ReasonNI});
              {error, Reason1} ->
                  ?FAIL({getnameinfo, SA, Reason1})
          end,
  