mirror of https://github.com/lukechilds/node.git
Browse Source
Currently, there are a number of popups that get displayed when running the tests asking to accept incoming network connections. Rules can be added manually to the socket firewall on Mac OS X but getting this right might not be obvious and quite a lot of time can be wasted trying to get the rules right. This script hopes to simplify things a little so that it can be re-run when needed. The script should be runnable from both the projects root directory and from the tools directory, for example: $ sudo ./tools/macosx-firewall.sh Fixes: https://github.com/nodejs/node/issues/8911 PR-URL: https://github.com/nodejs/node/pull/10114 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>v6
Daniel Bevenius
8 years ago
2 changed files with 57 additions and 0 deletions
@ -0,0 +1,48 @@ |
|||||
|
#!/bin/bash |
||||
|
# Script that adds rules to Mac OS X Socket Firewall to avoid |
||||
|
# popups asking to accept incoming network connections when |
||||
|
# running tests. |
||||
|
SFW="/usr/libexec/ApplicationFirewall/socketfilterfw" |
||||
|
TOOLSDIR="`dirname \"$0\"`" |
||||
|
TOOLSDIR="`( cd \"$TOOLSDIR\" && pwd) `" |
||||
|
ROOTDIR="`( cd \"$TOOLSDIR/..\" && pwd) `" |
||||
|
OUTDIR="$TOOLSDIR/../out" |
||||
|
# Using cd and pwd here so that the path used for socketfilterfw does not |
||||
|
# contain a '..', which seems to cause the rules to be incorrectly added |
||||
|
# and they are not removed when this script is re-run. Instead the new |
||||
|
# rules are simply appended. By using pwd we can get the full path |
||||
|
# without '..' and things work as expected. |
||||
|
OUTDIR="`( cd \"$OUTDIR\" && pwd) `" |
||||
|
NODE_RELEASE="$OUTDIR/Release/node" |
||||
|
NODE_DEBUG="$OUTDIR/Debug/node" |
||||
|
NODE_LINK="$ROOTDIR/node" |
||||
|
CCTEST_RELEASE="$OUTDIR/Release/cctest" |
||||
|
CCTEST_DEBUG="$OUTDIR/Debug/cctest" |
||||
|
|
||||
|
if [ -f $SFW ]; |
||||
|
then |
||||
|
# Duplicating these commands on purpose as the symbolic link node might be |
||||
|
# linked to either out/Debug/node or out/Release/node depending on the |
||||
|
# BUILDTYPE. |
||||
|
$SFW --remove "$NODE_DEBUG" |
||||
|
$SFW --remove "$NODE_DEBUG" |
||||
|
$SFW --remove "$NODE_RELEASE" |
||||
|
$SFW --remove "$NODE_RELEASE" |
||||
|
$SFW --remove "$NODE_LINK" |
||||
|
$SFW --remove "$CCTEST_DEBUG" |
||||
|
$SFW --remove "$CCTEST_RELEASE" |
||||
|
|
||||
|
$SFW --add "$NODE_DEBUG" |
||||
|
$SFW --add "$NODE_RELEASE" |
||||
|
$SFW --add "$NODE_LINK" |
||||
|
$SFW --add "$CCTEST_DEBUG" |
||||
|
$SFW --add "$CCTEST_RELEASE" |
||||
|
|
||||
|
$SFW --unblock "$NODE_DEBUG" |
||||
|
$SFW --unblock "$NODE_RELEASE" |
||||
|
$SFW --unblock "$NODE_LINK" |
||||
|
$SFW --unblock "$CCTEST_DEBUG" |
||||
|
$SFW --unblock "$CCTEST_RELEASE" |
||||
|
else |
||||
|
echo "SocketFirewall not found in location: $SFW" |
||||
|
fi |
Loading…
Reference in new issue