[RFC] rc.d integration for the bluetooth subsystem

Yar Tikhiy yar at comp.chem.msu.su
Sat Nov 5 03:35:11 PST 2005


On Fri, Nov 04, 2005 at 02:26:53PM -0800, Maksim Yevmenkin wrote:
> All,
> 
> please find next revision of bluetooth-rc stuff at
> 
> http://people.freebsd.org/~emax/bluetooth-rc-1.diff.txt
> 
> in this revision i have moved all bluetooth configuration files under 
> /etc/bluetooth. bluetooth.device.sample is now called 'default.conf' and 
> file that contain device specific overrides called '$dev.conf' (i.e. 
> 'ubt0.conf').
> 
> so, '/etc/rc.d/bluetooth start $dev' does the following
> 
> 1) sets hardwired defaults (for backward compatibility)
> 
> 2) reads up /etc/bluetooth/default.conf (if any)
> 
> 3) reads up /etc/bluetooth/$dev.conf (if any)
> 
> 4) starts the stack
> 
> even though /etc/bluetooth/{default,$dev}.conf are not exactly shell 
> scripts they are still kinda like shell scripts :) these files should 
> follow sh(1) syntax to set the variable, comments etc.
> 
> the parser in bluetooth_read_conf() is very simple and value of a 
> variable is still used in sh(1) eval. so one must be careful when 
> editing these files.

What about simplifying the inner parser code even more:

	case "$_line" in
	''|\#*)
		;;
	*)
		if expr "$_line" : "[a-zA-Z0-9_]*="; then
			eval "${_namespace}${_line}"
		else
			${logger} "Unable to parse line \"$_line\" in $_file"
			return 1
		fi
		;;
	esac

BTW, couldn't just err() or warn() be used instead of ${logger}?
And AFAIK stdin to a while loop can be redirected w/o enclosing
the loop in braces.

-- 
Yar


More information about the freebsd-bluetooth mailing list