anchor.diff:        Reason :: term().
   
   -ifdef(USE_ESOCK).
  -if_name2index(If) when is_list(If) ->
  -    prim_net:if_name2index(If).
  +if_name2index(Name) when is_list(Name) ->
  +    try prim_net:if_name2index(Name) of
  +        Result ->
  +            Result
  +    catch
  +        error : notsup : Stack ->
  +            %% This is *most likely* Windows, so try that.
  +            %% If not (another catch), raise the original catched error.
  +            try win_gaa_name2index(Name)
  +            catch
  +                _:_:_ ->
  +                    erlang:raise(error, notsup, Stack)
  +            end
  +    end.
   -else.
   if_name2index(If) when is_list(If) ->
       erlang:error(notsup).
  
positive.code:         {error, _} = ERROR ->
              ERROR
      end.
  
negative.code: 
  -ifdef(USE_ESOCK).
  if_index2name(Idx) when is_integer(Idx) ->
      try prim_net:if_index2name(Idx) of
          Result ->
              Result
      catch
          error : notsup : Stack ->
              %% This is *most likely* Windows, so try that.
              %% If not (another catch), raise the original catched error.
              try win_gaa_index2name(Idx)
              catch
                  _:_:_ ->
                      erlang:raise(error, notsup, Stack)
              end
      end.
  -else.
  if_index2name(Idx) when is_integer(Idx) ->
      erlang:error(notsup).
  