anchor.diff:                       netmask   := socket:sockaddr(),
                        broadaddr := socket:sockaddr(),
                        dstaddr   := socket:sockaddr()}.
  +
  +-type ifaddrs_filter_map() :: #{family := default | inet | inet6 | all,
  +                                flags  := any | ifaddrs_flags()}.
   
   -type name_info_flags()         :: [name_info_flag()|name_info_flag_ext()].
   -type name_info_flag()          :: namereqd |
  
positive.code: -spec getifaddrs(Namespace) -> {ok, IfAddrs} | {error, Reason} when
        Namespace :: file:filename_all(),
        IfAddrs   :: [ifaddrs()],
        Reason    :: term().
  
  -ifdef(USE_ESOCK).
  getifaddrs(Namespace) when is_list(Namespace) ->
      prim_net:getifaddrs(#{netns => Namespace}).
  -else.
  -dialyzer({nowarn_function, getifaddrs/1}).
  getifaddrs(Namespace) when is_list(Namespace) ->
      erlang:error(notsup).
  -endif.
  
  
  
  
  %% ===========================================================================
  
negative.code: 
  -ifdef(USE_ESOCK).
  getifaddrs() ->
      getifaddrs(getifaddrs_filter_map_default()).
  -else.
  getifaddrs() ->
      erlang:error(notsup).
  