#!/bin/sh
#
# Copyright (C) 2017-2024, Digi International Inc.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at http://mozilla.org/MPL/2.0/.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#

[ "$IFACE" = "wlan1" ] || exit 0

check_virtual_wlan_macs() {
	# Check for default MAC addresses
	if [ -s "/proc/device-tree/wireless/mac-address1" ] &&
	   [ -s "/proc/device-tree/wireless/mac-address2" ] &&
	   [ -s "/proc/device-tree/wireless/mac-address3" ]; then
	   :
	else
		echo "[WARN] Using default MAC addresses for virtual interfaces, please program them referring to the Digi U-Boot Documentation"
	fi
}

if [ "$MODE" = "start" ]; then
	# On ccmp1, there are not virtual wireless MACs, so skip the verification.
	if ! grep -qs '\<digi,ccmp[1-2]\>' /proc/device-tree/compatible; then
		check_virtual_wlan_macs
	fi

	if [ ! -d "/sys/class/net/wlan1" ]; then
		# This will create a second wireless network device
		iw dev wlan0 interface add wlan1 type __ap
	fi
elif [ "$MODE" = "stop" ];  then
	if [ -d "/sys/class/net/wlan1" ]; then
		# Delete the wlan1 interface once it's down
		iw dev wlan1 del
	fi
fi
