aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorMicael Karlberg <[email protected]>2019-07-08 16:45:11 +0200
committerMicael Karlberg <[email protected]>2019-07-08 16:45:11 +0200
commite6226c6741f336b4c0f2d5b4c930be2fcd9c3737 (patch)
treec647ffd58047c888cf5b240afe305d463f19ab3c /erts
parent1e2343e748ba212536a568a5d40357d75ccb6b7a (diff)
parent3415956730b1de58789832d0be3f5c17fd9f94c9 (diff)
downloadotp-e6226c6741f336b4c0f2d5b4c930be2fcd9c3737.tar.gz
otp-e6226c6741f336b4c0f2d5b4c930be2fcd9c3737.tar.bz2
otp-e6226c6741f336b4c0f2d5b4c930be2fcd9c3737.zip
Merge branch 'bmk/erts/esock/20190701/improve_multicast_test' into maint
Diffstat (limited to 'erts')
-rw-r--r--erts/emulator/test/socket_SUITE.erl23
1 files changed, 16 insertions, 7 deletions
diff --git a/erts/emulator/test/socket_SUITE.erl b/erts/emulator/test/socket_SUITE.erl
index 3fab6b98a8..b80cc794e7 100644
--- a/erts/emulator/test/socket_SUITE.erl
+++ b/erts/emulator/test/socket_SUITE.erl
@@ -8114,13 +8114,22 @@ which_multicast_address(Domain) ->
%% SunOS: IfName - Group - RefCnt
which_multicast_address2(Domain, WhichMAddr) ->
- IfName = which_local_host_ifname(Domain),
- NetstatGroupsStr = os:cmd("netstat -g | grep " ++ IfName),
- NetstatGroups0 = string:tokens(NetstatGroupsStr, [$\n]),
- NetstatGroups = [string:tokens(G, [$ ]) || G <- NetstatGroups0],
- MAddrs = [WhichMAddr(NetstatGroup) || NetstatGroup <-
- NetstatGroups],
- which_multicast_address3(Domain, MAddrs).
+ IfName = which_local_host_ifname(Domain),
+ try
+ begin
+ %% On some platforms the netstat barfs out some crap on stderr
+ %% before the actual info...
+ NetstatGroupsStr = os:cmd("netstat -g 2>/dev/null | grep " ++ IfName),
+ NetstatGroups0 = string:tokens(NetstatGroupsStr, [$\n]),
+ NetstatGroups = [string:tokens(G, [$ ]) || G <- NetstatGroups0],
+ MAddrs = [WhichMAddr(NetstatGroup) || NetstatGroup <-
+ NetstatGroups],
+ which_multicast_address3(Domain, MAddrs)
+ end
+ catch
+ C:E:S ->
+ not_supported({multicast, {C,E,S}})
+ end.
which_multicast_address3(_Domain, []) ->
not_supported({multicast, no_valid_addrs});