diff options
| author | Marcel Holtmann <marcel@holtmann.org> | 2008-08-05 21:20:44 +0200 | 
|---|---|---|
| committer | Marcel Holtmann <marcel@holtmann.org> | 2008-08-05 21:20:44 +0200 | 
| commit | be1f0f55cc36e0866dbc5e2289d5911dc48eb7ce (patch) | |
| tree | 3f8938cbe6cf52631928f2063d72ed78347b8b6d /src | |
| parent | a32da554cb16e4fe676705edd16eea0bf89a2f0b (diff) | |
Remove old config file parsing code
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile.am | 11 | ||||
| -rw-r--r-- | src/lexer.l | 160 | ||||
| -rw-r--r-- | src/parser.y | 331 | 
3 files changed, 2 insertions, 500 deletions
| diff --git a/src/Makefile.am b/src/Makefile.am index 664db750..879d6b4e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,7 +6,7 @@ dbus_DATA = bluetooth.conf  confdir = $(sysconfdir)/bluetooth -conf_DATA = hcid.conf +conf_DATA =  statedir = $(localstatedir)/lib/bluetooth @@ -18,7 +18,6 @@ sbin_PROGRAMS = bluetoothd  bluetoothd_SOURCES = main.c hcid.h sdpd.h \  	sdpd-server.c sdpd-request.c sdpd-service.c \  	sdpd-database.c security.c storage.c \ -	parser.h parser.y lexer.l kword.c kword.h \  	server.h server.c manager.h manager.c error.h error.c \  	adapter.h adapter.c device.h device.c plugin.h plugin.c \  	dbus-common.c dbus-common.h dbus-hci.h dbus-hci.c \ @@ -40,16 +39,10 @@ AM_CFLAGS = @BLUEZ_CFLAGS@ @DBUS_CFLAGS@ \  INCLUDES = -I$(top_srcdir)/common -BUILT_SOURCES = parser.h -  if MANPAGES -man_MANS = bluetoothd.8 hcid.conf.5 +man_MANS = bluetoothd.8  endif -AM_YFLAGS = -d - -CLEANFILES = lexer.c parser.c parser.h -  EXTRA_DIST = bluetooth.conf bluetoothd.8 hcid.conf.5 hcid.conf \  	list-devices test-discovery test-manager test-adapter test-device \  	simple-service simple-agent service-record.dtd \ diff --git a/src/lexer.l b/src/lexer.l deleted file mode 100644 index 768a0783..00000000 --- a/src/lexer.l +++ /dev/null @@ -1,160 +0,0 @@ -%{ -/* - * - *  BlueZ - Bluetooth protocol stack for Linux - * - *  Copyright (C) 2000-2001  Qualcomm Incorporated - *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com> - *  Copyright (C) 2002-2008  Marcel Holtmann <marcel@holtmann.org> - * - * - *  This program is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  This program is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with this program; if not, write to the Free Software - *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <stdio.h> -#include <errno.h> -#include <string.h> -#include <sys/socket.h> - -#include <bluetooth/bluetooth.h> -#include <bluetooth/hci.h> -#include <bluetooth/hci_lib.h> - -#include "hcid.h" -#include "kword.h" -#include "parser.h" - -static char str_buf[255]; - -#define ECHO {;} -#define YY_DECL int yylex(void) - -int cfg_error(const char *ftm, ...); -int yyerror(char *str); - -%} - -%option nounput - -hex		0x[0-9a-zA-Z]+ -num		[0-9]+ -kword		[A-Za-z0-9\_\-]+ -word		[A-Za-z0-9\-\_+=\!\$\#\%\&\*\^\@@\\\~\.]+ -wordnm		{word}:{num} -list		({word}\,*)+ -comment		\#.*\n -fname		[A-Za-z0-9\_\.\-]+ -path		(\/{fname})+ -string		\".*\" -hci		hci[0-9]+ -hextuple	[0-9a-zA-Z][0-9a-zA-Z] -hexquad		{hextuple}{hextuple} -bdaddr		{hextuple}:{hextuple}:{hextuple}:{hextuple}:{hextuple}:{hextuple} -id		{hexquad}:{hexquad} - -%x OPTION PARAM - -%% -[ \t] { -	/* Skip spaces and tabs */ -	; -} - -{comment} { -	/* Skip comments */ -	lineno++;  -} - -\n { -	lineno++; -} - -{hci} { -	yylval.str = yytext; -	return HCI; -} - -{bdaddr} { -	yylval.str = yytext; -	return BDADDR; -} - -{hex} { -	yylval.num = strtol(yytext, NULL, 16); -	return NUM; -} - -{num} { -	yylval.num = atoi(yytext); -	return NUM; -} - -{kword}	{ -	int kw = find_keyword(cfg_keyword, yytext); -	if( kw != -1 ) -		return kw; - -	yylval.str = yytext; -	return WORD; -} - -{word} { -	yylval.str = yytext; -	return WORD; -} - -{string} { -	if (yyleng > sizeof(str_buf) - 1) { -		yyerror("string too long"); -		return 0; -	} - -	strncpy(str_buf, yytext + 1, yyleng - 2); -	str_buf[yyleng - 2] = '\0'; - -	yylval.str = str_buf; -	return STRING; -} - -{list} { -	yylval.str = yytext; -	return LIST; -} - -{path} { -	yylval.str = yytext; -	return PATH; -} - -{id} { -	yylval.str = yytext; -	return ID; -} - -. { -	return *yytext; -} - -%% - -int yywrap(void) -{ -	return 1; -} diff --git a/src/parser.y b/src/parser.y deleted file mode 100644 index c2978612..00000000 --- a/src/parser.y +++ /dev/null @@ -1,331 +0,0 @@ -%{ -/* - * - *  BlueZ - Bluetooth protocol stack for Linux - * - *  Copyright (C) 2000-2001  Qualcomm Incorporated - *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com> - *  Copyright (C) 2002-2008  Marcel Holtmann <marcel@holtmann.org> - * - * - *  This program is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  This program is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with this program; if not, write to the Free Software - *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <stdio.h> -#include <errno.h> -#include <stdlib.h> -#include <string.h> -#include <stdarg.h> - -#include <sys/socket.h> -#include <asm/types.h> - -#include <glib.h> - -#include <bluetooth/bluetooth.h> -#include <bluetooth/hci.h> -#include <bluetooth/hci_lib.h> - -#include "hcid.h" -#include "kword.h" - -int cfg_error(const char *fmt, ...); - -int yyparse(void); -int yylex(void); -int yyerror(char *s);  - -void yylex_destroy(void); - -%} - -%union { -	char *str; -	long  num; -} - -%token K_OPTIONS K_DEVICE -%token K_AUTOINIT K_SECURITY K_PAIRING K_OFFMODE K_DEVICEID -%token K_PTYPE K_NAME K_CLASS K_VOICE K_PAGETO K_LM K_LP K_ISCAN K_PSCAN K_DISCOVTO -%token K_PASSKEY -%token K_YES K_NO - -%token <str> WORD PATH STRING LIST HCI BDADDR ID -%token <num> NUM - -%type  <num> bool pkt_type link_mode link_policy sec_mode pair_mode off_mode -%type  <str> dev_name dev_id hci bdaddr - -%% -config: statement | config statement; -statement:  -  K_OPTIONS hcid_options - -  | device device_options - -  | WORD	{ -			cfg_error("Invalid statement '%s'", $1); -		} - -  | error	{ -			yyclearin; yyerrok; -		} -  ; - -device: -  K_DEVICE		{ -			} - -  | K_DEVICE hci	{ -			} - -  | K_DEVICE bdaddr	{ -			} -  ; - -hcid_options: '{' hcid_opts '}'; -hcid_opts: | hcid_opt ';' | error ';' | hcid_opts hcid_opt ';'; -hcid_opt:  -  K_AUTOINIT bool	{ -				hcid.auto_init = $2; -			} - -  | K_SECURITY sec_mode	{ -				hcid.security = $2; -			} - -  | K_PAIRING pair_mode	{ -				hcid.pairing = $2; -			} - -  | K_OFFMODE off_mode	{ -				hcid.offmode = $2; -			} - -  | K_DEVICEID dev_id	{ -				strncpy((char *) hcid.deviceid, $2, 15); -			} - -  | K_PASSKEY STRING	{ -  				strncpy((char *) hcid.pin_code, $2, 16); -				hcid.pin_len = strlen($2); -				if (hcid.pin_len > 16) -					hcid.pin_len = 16; -			} - - -  | WORD		{ -				cfg_error("Unknown option '%s'", $1); -			} -  ; - -sec_mode: -  WORD		{ -			int opt = find_keyword(sec_param, $1); -			if (opt < 0) { -				cfg_error("Unknown security mode '%s'", $1); -				$$ = 0; -			} else -				$$ = opt; -		} - -  | K_NO	{ -			$$ = HCID_SEC_NONE; -		} -  ; - -pair_mode: -  WORD		{ -			int opt = find_keyword(pair_param, $1); -			if (opt < 0) { -				cfg_error("Unknown pairing mode '%s'", $1); -				$$ = 0; -			} else -				$$ = opt; -		} -  ; - -off_mode: -  WORD		{ -			int opt = find_keyword(off_param, $1); -			if (opt < 0) { -				cfg_error("Unknown off mode '%s'", $1); -				$$ = 0; -			} else -				$$ = opt; -		} -  ; - -dev_id: -  ID		{ -		} -  ; - -device_options: '{' device_opts '}'; -device_opts: | device_opt ';' | error ';' | device_opts device_opt ';'; -device_opt: -  K_PTYPE pkt_type	{ -			} - -  | K_LM link_mode	{ -			} - -  | K_LP link_policy	{ -			} - -  | K_NAME dev_name	{ -			} - -  | K_CLASS NUM		{ -			} - -  | K_VOICE NUM		{ -			} - -  | K_PAGETO NUM	{ -			} - -  | K_DISCOVTO NUM	{ -			} - -  | K_ISCAN bool	{ -			} - -  | K_PSCAN bool	{ -			} - -  | WORD		{ -				cfg_error("Unknown option '%s'",$1); -				YYABORT; -			} -  ; - -dev_name: -  WORD		{ -			$$ = $1; -		} - -  |  STRING	{ -			$$ = $1; -		} -  ; - -hci: -  HCI		{ -			$$ = $1; -		} -  ; - -bdaddr: -  BDADDR	{ -			$$ = $1; -		} -  ; - -pkt_type: -  WORD		{ -			unsigned int opt; -			if (!hci_strtoptype($1, &opt)) -				cfg_error("Unknown packet type '%s'", $1); -			$$ = opt; -		} - -  | LIST	{ -			unsigned int opt; -			if (!hci_strtoptype($1, &opt)) -				cfg_error("Unknown packet type '%s'", $1); -			$$ = opt; -		} -  ; - -link_mode: -  WORD		{ -			unsigned int opt; -			if (!hci_strtolm($1, &opt)) -				cfg_error("Unknown link mode '%s'", $1); -			$$ = opt; -		} - -  | LIST	{ -			unsigned int opt; -			if (!hci_strtolm($1, &opt)) -				cfg_error("Unknown link mode '%s'", $1); -			$$ = opt; -		} -  ; - -link_policy: -  WORD		{ -			unsigned int opt; -			if (!hci_strtolp($1, &opt)) -				cfg_error("Unknown link policy '%s'", $1); -			$$ = opt; -		} - -  | LIST	{ -			unsigned int opt; -			if (!hci_strtolp($1, &opt)) -				cfg_error("Unknown link policy '%s'", $1); -			$$ = opt; -		} -  ; - -bool: K_YES { $$ = 1; } | K_NO  { $$ = 0; }; - -%% - -int yyerror(char *s)  -{ -	error("%s line %d", s, lineno); -	return 0; -} - -int cfg_error(const char *fmt, ...) -{ -	char buf[255]; -	va_list ap; - -	va_start(ap, fmt); -	vsnprintf(buf,sizeof(buf),fmt,ap); -	va_end(ap); - -	yyerror(buf); -	return 0; -} - -/*  - * Read config file.  - */  -int read_config(char *file)  -{ -	extern FILE *yyin; - -	if (!(yyin = fopen(file, "r"))) { -		error("Can't open config file %s", file); -		return -1; -	} - -	lineno = 1; -	yyparse(); - -	fclose(yyin); - -	return 0; -} | 
