Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Now MAC filter deny is supported. (Only accept was supported.) #43

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 35 additions & 6 deletions lnxrouter
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,9 @@ define_global_variables(){
WIFI_IFACE=
CHANNEL=default
WPA_VERSION=2
MAC_FILTER=0
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we're changing the meaning of this variable (from "enable mac filter or not" to "macaddr_acl in hostapd.conf" ),
we should use a new variable name MACADDR_ACL

MAC_FILTER=3 # 3 is not valid
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leave it blank (or use -1 or -99) is better. hostapd may add 3 as a valid value in the future

MAC_FILTER_ACCEPT=/etc/hostapd/hostapd.accept
MAC_FILTER_DENY=/etc/hostapd/hostapd.deny
IEEE80211N=0
IEEE80211AC=0
HT_CAPAB='[HT40+]'
Expand Down Expand Up @@ -356,13 +357,34 @@ parse_user_options(){
shift
HIDDEN=1
;;
--mac-filter)

--mac-filter-accept)
shift
if [ "$MAC_FILTER_TYPE" == "deny" ]
then
printf "ERROR: Can't use --mac-filter-accept and --mac-filter-deny together.\n"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need >&2

exit 1
fi
MAC_FILTER_TYPE=accept
MAC_FILTER=1
MAC_FILTER_FILE=$MAC_FILTER_ACCEPT
;;
--mac-filter-accept)

--mac-filter-deny)
shift
MAC_FILTER_ACCEPT="$1"
if [ "$MAC_FILTER_TYPE" == "accept" ]
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This variable MAC_FILTER_TYPE would be unnecessary. Use that MACADDR_ACL

then
printf "ERROR: Can't use --mac-filter-accept and --mac-filter-deny together.\n"
exit 1
fi
MAC_FILTER_TYPE=deny
MAC_FILTER=0
MAC_FILTER_FILE=$MAC_FILTER_DENY
;;

--mac-filter-file)
shift
MAC_FILTER_FILE="$1"
shift
;;

Expand Down Expand Up @@ -1715,8 +1737,15 @@ write_hostapd_conf() {

if [[ $MAC_FILTER -eq 1 ]]; then
cat <<- EOF >> "$CONFDIR/hostapd.conf"
macaddr_acl=${MAC_FILTER}
accept_mac_file=${MAC_FILTER_ACCEPT}
macaddr_acl=1
accept_mac_file=${MAC_FILTER_FILE}
EOF
fi

if [[ $MAC_FILTER -eq 0 ]]; then
cat <<- EOF >> "$CONFDIR/hostapd.conf"
macaddr_acl=0
deny_mac_file=${MAC_FILTER_FILE}
Copy link
Owner

@garywill garywill Oct 15, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking ...
maybe we can make the script option like this:

--mac-filter-accept <accept_file>
--mac-filter-deny <deny_file>

then variable MAC_FILTER_FILE and option --mac-filter-file would be unnecessary .

--mac-filter-accept - will apply the default path /etc/hostapd/hostapd.accept.
--mac-filter-deny - similar to above

What do you think?

EOF
fi

Expand Down