diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/kernel/doc/src/Makefile | 8 | ||||
-rw-r--r-- | lib/kernel/doc/src/specs.xml.src (renamed from lib/kernel/doc/src/specs.xml) | 2 | ||||
-rw-r--r-- | lib/kernel/src/net.erl | 81 |
3 files changed, 75 insertions, 16 deletions
diff --git a/lib/kernel/doc/src/Makefile b/lib/kernel/doc/src/Makefile index 817f592ad4..70623ab9aa 100644 --- a/lib/kernel/doc/src/Makefile +++ b/lib/kernel/doc/src/Makefile @@ -41,8 +41,10 @@ XML_APPLICATION_FILES = ref_man.xml ifeq ($(USE_ESOCK),yes) XML_REF3_ESOCK_FILES = net.xml ESOCK_USE_NET_XML=<xi:include href="net.xml"\/> +ESOCK_USE_NET_SPECS_XML=<xi:include href="../specs/specs_net.xml"/> else XML_REF3_ESOCK_FILES = +ESOCK_USE_NET_SPECS_XML = ESOCK_USE_NET_XML = endif @@ -150,7 +152,7 @@ SPECS_FLAGS = -I../../include $(HTMLDIR)/%: % $(INSTALL_DATA) $< $@ -docs: ref_man man pdf html +docs: ref_man specs man pdf html $(TOP_PDF_FILE): $(XML_FILES) @@ -161,6 +163,7 @@ html: images $(HTML_REF_MAN_FILE) man: $(MAN3_FILES) $(MAN4_FILES) $(MAN6_FILES) ref_man: ref_man.xml +specs: specs.xml images: $(IMAGE_FILES:%=$(HTMLDIR)/%) @@ -202,6 +205,9 @@ $(SPECDIR)/specs_zlib_stub.xml: ref_man.xml: ref_man.xml.src ($(PERL) -p -e 's?%ESOCK_USE_NET_XML%?$(ESOCK_USE_NET_XML)?' \ $<) > $@ +specs.xml: specs.xml.src + ($(PERL) -p -e 's?%ESOCK_USE_NET_SPECS_XML%?$(ESOCK_USE_NET_SPECS_XML)?' \ + $<) > $@ # ---------------------------------------------------- diff --git a/lib/kernel/doc/src/specs.xml b/lib/kernel/doc/src/specs.xml.src index 9e258910db..ccb26b9458 100644 --- a/lib/kernel/doc/src/specs.xml +++ b/lib/kernel/doc/src/specs.xml.src @@ -26,7 +26,7 @@ <xi:include href="../specs/specs_logger_formatter.xml"/> <xi:include href="../specs/specs_logger_std_h.xml"/> <xi:include href="../specs/specs_logger_disk_log_h.xml"/> - <xi:include href="../specs/specs_net.xml"/> + %ESOCK_USE_NET_SPECS_XML% <xi:include href="../specs/specs_net_adm.xml"/> <xi:include href="../specs/specs_net_kernel.xml"/> <xi:include href="../specs/specs_os.xml"/> diff --git a/lib/kernel/src/net.erl b/lib/kernel/src/net.erl index 01409c736a..b8ffa64043 100644 --- a/lib/kernel/src/net.erl +++ b/lib/kernel/src/net.erl @@ -20,7 +20,13 @@ -module(net). --ifdef(USE_ESOCK). +%% We should really ifdef this module depending on if we actually built +%% the system with esock support (socket and prim_net), but our doc-building +%% can't handle the "variables" we need (USE_ESOCK). So instead, we just +%% leave everything hanging... +%% If one of the "hanging" functions is called when esock has been disabled, +%% the function will through a 'notsup' error (erlang:error/1). + %% Administrative and utility functions -export([ info/0, @@ -36,7 +42,6 @@ if_index2name/1, if_names/0 ]). --endif. %% Deprecated functions from the "old" net module -export([call/4, @@ -46,8 +51,6 @@ relay/1, sleep/1]). --ifdef(USE_ESOCK). - %% Should we define these here or refer to the prim_net module -export_type([ address_info/0, @@ -60,7 +63,7 @@ network_interface_name/0, network_interface_index/0 ]). --endif. + -deprecated({call, 4, eventually}). -deprecated({cast, 4, eventually}). @@ -70,8 +73,6 @@ -deprecated({sleep, 1, eventually}). --ifdef(USE_ESOCK). - -type name_info_flags() :: [name_info_flag()|name_info_flag_ext()]. -type name_info_flag() :: namereqd | dgram | @@ -90,8 +91,6 @@ -type network_interface_name() :: string(). -type network_interface_index() :: non_neg_integer(). --endif. - %% =========================================================================== %% @@ -107,8 +106,6 @@ sleep(T) -> receive after T -> ok end. relay(X) -> slave:relay(X). --ifdef(USE_ESOCK). - %% =========================================================================== %% %% Administrative and utility API @@ -117,14 +114,26 @@ relay(X) -> slave:relay(X). -spec info() -> list(). +-ifdef(USE_ESOCK). info() -> prim_net:info(). +-else. +-dialyzer({nowarn_function, info/0}). +info() -> + erlang:error(notsup). +-endif. -spec command(Cmd :: term()) -> term(). +-ifdef(USE_ESOCK). command(Cmd) -> prim_net:command(Cmd). +-else. +-dialyzer({nowarn_function, command/1}). +command(_Cmd) -> + erlang:error(notsup). +-endif. @@ -144,8 +153,14 @@ command(Cmd) -> HostName :: string(), Reason :: term(). +-ifdef(USE_ESOCK). gethostname() -> prim_net:gethostname(). +-else. +-dialyzer({nowarn_function, gethostname/0}). +gethostname() -> + erlang:error(notsup). +-endif. %% =========================================================================== @@ -168,6 +183,7 @@ getnameinfo(SockAddr) -> Info :: name_info(), Reason :: term(). +-ifdef(USE_ESOCK). getnameinfo(SockAddr, [] = _Flags) -> getnameinfo(SockAddr, undefined); getnameinfo(#{family := Fam, addr := _Addr} = SockAddr, Flags) @@ -177,7 +193,18 @@ getnameinfo(#{family := Fam, addr := _Addr} = SockAddr, Flags) getnameinfo(#{family := Fam, path := _Path} = SockAddr, Flags) when (Fam =:= local) andalso (is_list(Flags) orelse (Flags =:= undefined)) -> prim_net:getnameinfo(SockAddr, Flags). - +-else. +-dialyzer({nowarn_function, getnameinfo/2}). +getnameinfo(SockAddr, [] = _Flags) -> + getnameinfo(SockAddr, undefined); +getnameinfo(#{family := Fam, addr := _Addr} = _SockAddr, Flags) + when ((Fam =:= inet) orelse (Fam =:= inet6)) andalso + (is_list(Flags) orelse (Flags =:= undefined)) -> + erlang:error(notsup); +getnameinfo(#{family := Fam, path := _Path} = _SockAddr, Flags) + when (Fam =:= local) andalso (is_list(Flags) orelse (Flags =:= undefined)) -> + erlang:error(notsup). +-endif. %% =========================================================================== @@ -209,11 +236,21 @@ getaddrinfo(Host) when is_list(Host) -> Info :: [address_info()], Reason :: term(). +-ifdef(USE_ESOCK). getaddrinfo(Host, Service) when (is_list(Host) orelse (Host =:= undefined)) andalso (is_list(Service) orelse (Service =:= undefined)) andalso (not ((Service =:= undefined) andalso (Host =:= undefined))) -> prim_net:getaddrinfo(Host, Service). +-else. +-dialyzer({nowarn_function, getaddrinfo/2}). +getaddrinfo(Host, Service) + when (is_list(Host) orelse (Host =:= undefined)) andalso + (is_list(Service) orelse (Service =:= undefined)) andalso + (not ((Service =:= undefined) andalso (Host =:= undefined))) -> + erlang:error(notsup). +-endif. + @@ -229,8 +266,14 @@ getaddrinfo(Host, Service) Idx :: network_interface_index(), Reason :: term(). +-ifdef(USE_ESOCK). if_name2index(If) when is_list(If) -> prim_net:if_name2index(If). +-else. +-dialyzer({nowarn_function, if_name2index/1}). +if_name2index(If) when is_list(If) -> + erlang:error(notsup). +-endif. @@ -246,8 +289,14 @@ if_name2index(If) when is_list(If) -> Name :: network_interface_name(), Reason :: term(). +-ifdef(USE_ESOCK). if_index2name(Idx) when is_integer(Idx) -> prim_net:if_index2name(Idx). +-else. +-dialyzer({nowarn_function, if_index2name/1}). +if_index2name(Idx) when is_integer(Idx) -> + erlang:error(notsup). +-endif. @@ -263,9 +312,13 @@ if_index2name(Idx) when is_integer(Idx) -> If :: network_interface_name(), Reason :: term(). +-ifdef(USE_ESOCK). if_names() -> prim_net:if_names(). +-else. +-dialyzer({nowarn_function, if_names/0}). +if_names() -> + erlang:error(notsup). +-endif. - --endif. |