# /etc/init.d/wpa_supplicant script error [solved]

## ser_f

I wasn't to sure were to post this so here it is.

wpa_supplicant gui would not start correctly with 2 or more wireless cards attached. Only the first network card that was detected was accessible via the gui. The error was in the in the script /etc/init.d/wpa_supplicant 

see new code below 

hopefully this will get updated  :Smile: 

#!/sbin/runscript

# Copyright (c) 2009 Roy Marples <roy@marples.name>

# All rights reserved. Released under the 2-clause BSD license.

# Edited 2011 Frank Serafin <fserafin_@hotmail.com> fix bug where

# wpa_supplicant would only connect to a single wireless card not 2 or 

# more 

command=/usr/sbin/wpa_supplicant

: ${wpa_supplicant_conf:=/etc/wpa_supplicant/wpa_supplicant.conf}

wpa_supplicant_if=${wpa_supplicant_if:+-i}$wpa_supplicant_if

command_args="$wpa_supplicant_args -B $wpa_supplicant_if "

name="WPA Supplicant Daemon"

depend()

{

	need localmount

	use logger

	after bootmisc modules

	before dns dhcpcd net

	keyword -shutdown

}

find_wireless()

{

	local iface=

	case "$RC_UNAME" in

	Linux)

		for iface in /sys/class/net/*; do

			if [ -e "$iface"/wireless -o \

				-e "$iface"/phy80211 ]

			then

				echo "${iface##*/}"

				#return 0

			fi

		done

		;;

	*)

		for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do

			if ifconfig "${iface##*/}" 2>/dev/null | \

				grep -q "[ ]*ssid "

			then

				echo "${iface##*/}"

				return 0

			fi

		done

		;;

	esac

	return 1

}

append_wireless()

{

	local iface= i=

	local n_ifaces=0

	iface=$(find_wireless)

	if [ -n "$iface" ]; then

		for i in $iface; do

			if [ $n_ifaces -ne 0 ]

			then

				command_args="$command_args -N "

			fi

			command_args="$command_args -c$wpa_supplicant_conf -i$i"

			n_ifaces=$(($n_ifaces+1))

		done

	else

		eerror "Could not find a wireless interface"

	fi

}

start_pre()

{

	case " $command_args" in

	*" -i"*) ;;

	*) append_wireless;;

	esac

}

----------

