diff options
author | Henrik Nord <[email protected]> | 2014-07-22 17:37:52 +0200 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2014-07-22 17:37:52 +0200 |
commit | a60f3d879dfcdd018f1fea20790be901fbafeae4 (patch) | |
tree | b6cc19578e968c38a2510585e481b98c279bf7c4 /lib/kernel | |
parent | 03a1fcf5346233f76c8dc50844e132f4760154d6 (diff) | |
download | otp-a60f3d879dfcdd018f1fea20790be901fbafeae4.tar.gz otp-a60f3d879dfcdd018f1fea20790be901fbafeae4.tar.bz2 otp-a60f3d879dfcdd018f1fea20790be901fbafeae4.zip |
Fix default behaviour for legacy fdopen
Update testcase for gen_udp:open/2 with option fd
Diffstat (limited to 'lib/kernel')
-rw-r--r-- | lib/kernel/src/inet.erl | 5 | ||||
-rw-r--r-- | lib/kernel/test/gen_udp_SUITE.erl | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/kernel/src/inet.erl b/lib/kernel/src/inet.erl index 74fc7b0ac6..35236f4cb3 100644 --- a/lib/kernel/src/inet.erl +++ b/lib/kernel/src/inet.erl @@ -1287,10 +1287,11 @@ change_bindx_0_port({_IP, _Port}=Addr, _AssignedPort) -> {'ok', socket()} | {'error', posix()}. fdopen(Fd, Opts, Protocol, Family, Type, Module) -> - fdopen(Fd, undefined, 0, Opts, Protocol, Family, Type, Module). + fdopen(Fd, any, 0, Opts, Protocol, Family, Type, Module). fdopen(Fd, Addr, Port, Opts, Protocol, Family, Type, Module) -> - IsAnyAddr = (Addr == {0,0,0,0} orelse Addr == {0,0,0,0,0,0,0,0}), + IsAnyAddr = (Addr == {0,0,0,0} orelse Addr == {0,0,0,0,0,0,0,0} + orelse Addr == any), Bound = Port == 0 andalso IsAnyAddr, case prim_inet:fdopen(Protocol, Family, Type, Fd, Bound) of {ok, S} -> diff --git a/lib/kernel/test/gen_udp_SUITE.erl b/lib/kernel/test/gen_udp_SUITE.erl index cd768813cf..8cc811e0b5 100644 --- a/lib/kernel/test/gen_udp_SUITE.erl +++ b/lib/kernel/test/gen_udp_SUITE.erl @@ -448,8 +448,8 @@ open_fd(Config) when is_list(Config) -> {ok,S1} = gen_udp:open(0), {ok,P2} = inet:port(S1), {ok,FD} = prim_inet:getfd(S1), - {error,einval} = gen_udp:open(P2, [inet6, {fd,FD}]), - {ok,S2} = gen_udp:open(P2, [{fd,FD}]), + {error,einval} = gen_udp:open(0, [inet6, {fd,FD}]), + {ok,S2} = gen_udp:open(0, [{fd,FD}]), {ok,S3} = gen_udp:open(0), {ok,P3} = inet:port(S3), ok = gen_udp:send(S3, Addr, P2, Msg), |