16728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky/* 26728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky * 3b66d3f9b2cb8934a0eb7ac07f347001984488ac6Marcel Holtmann * BlueZ - Bluetooth protocol stack for Linux 46728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky * 59184e2eeb7b97371c6b83b747c8984e2340d2b47Marcel Holtmann * Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org> 66728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky * 76728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky * 86728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky * This program is free software; you can redistribute it and/or modify 9632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * it under the terms of the GNU General Public License as published by 10632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * the Free Software Foundation; either version 2 of the License, or 11632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * (at your option) any later version. 126728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky * 13632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * This program is distributed in the hope that it will be useful, 14632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * but WITHOUT ANY WARRANTY; without even the implied warranty of 15632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * GNU General Public License for more details. 176728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky * 18632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * You should have received a copy of the GNU General Public License 19632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * along with this program; if not, write to the Free Software 20632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 216728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky * 226728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky */ 236728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 24b66d3f9b2cb8934a0eb7ac07f347001984488ac6Marcel Holtmann#ifdef HAVE_CONFIG_H 25b66d3f9b2cb8934a0eb7ac07f347001984488ac6Marcel Holtmann#include <config.h> 26b66d3f9b2cb8934a0eb7ac07f347001984488ac6Marcel Holtmann#endif 27b66d3f9b2cb8934a0eb7ac07f347001984488ac6Marcel Holtmann 286728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky#include <stdio.h> 29632a9432774ff3a0c6e556e8f32a565b38890767Marcel Holtmann#include <errno.h> 306728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky#include <sys/socket.h> 316728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 326728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky#include <bluetooth/bluetooth.h> 336728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky#include <bluetooth/rfcomm.h> 346728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 356728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky#include "kword.h" 366728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky#include "parser.h" 376728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 386728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyanskyint lineno; 396728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 406728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyanskystruct keyword_t rfcomm_keyword[] = { 416728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky { "bind", K_BIND }, 426728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky { "device", K_DEVICE }, 436728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky { "channel", K_CHANNEL }, 446728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky { "comment", K_COMMENT }, 456728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 466728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky { "yes", K_YES }, 476728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky { "no", K_NO }, 486728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky { "enable", K_YES }, 496728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky { "disable", K_NO }, 506728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 516728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky { NULL , 0 } 526728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky}; 536728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 546728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyanskyint rfcomm_find_keyword(struct keyword_t *keyword, char *string) 556728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky{ 566728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky while (keyword->string) { 576728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky if (!strcmp(string, keyword->string)) 586728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky return keyword->type; 596728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky keyword++; 606728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky } 616728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 626728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky return -1; 636728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky} 646728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyansky 656728b0dbbfba17d6d41c46aa4cadb52945070771Max Krasnyanskystruct rfcomm_opts rfcomm_opts[RFCOMM_MAX_DEV]; 66