From 2a7af79ba04bffdd1acaee354a8aa0e461f53527 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 9 Nov 2012 10:31:28 +0100 Subject: [PATCH] build: Remove unused ppporc utility --- .gitignore | 1 - Makefile.tools | 5 +- tools/ppporc.c | 271 ------------------------------------------------- 3 files changed, 1 insertion(+), 276 deletions(-) delete mode 100644 tools/ppporc.c diff --git a/.gitignore b/.gitignore index 015964702..4e03b23f2 100644 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,6 @@ tools/hcitool tools/hid2hci tools/rfcomm tools/l2ping -tools/ppporc tools/sdptool test/agent test/bdaddr diff --git a/Makefile.tools b/Makefile.tools index d5bf5a9b1..856df770f 100644 --- a/Makefile.tools +++ b/Makefile.tools @@ -5,8 +5,7 @@ bin_PROGRAMS += tools/rfcomm tools/l2ping \ sbin_PROGRAMS += tools/hciattach tools/hciconfig -noinst_PROGRAMS += tools/avinfo tools/ppporc \ - tools/hcieventmask tools/hcisecfilter +noinst_PROGRAMS += tools/avinfo tools/hcieventmask tools/hcisecfilter tools_rfcomm_SOURCES = tools/rfcomm.c tools_rfcomm_LDADD = lib/libbluetooth-private.la @@ -37,8 +36,6 @@ tools_ciptool_LDADD = lib/libbluetooth-private.la tools_avinfo_LDADD = lib/libbluetooth-private.la -tools_ppporc_LDADD = lib/libbluetooth-private.la - tools_hcieventmask_LDADD = lib/libbluetooth-private.la noinst_PROGRAMS += tools/btmgmt tools/btattach tools/btsnoop \ diff --git a/tools/ppporc.c b/tools/ppporc.c deleted file mode 100644 index 5dad6792b..000000000 --- a/tools/ppporc.c +++ /dev/null @@ -1,271 +0,0 @@ -/* - * - * BlueZ - Bluetooth protocol stack for Linux - * - * Copyright (C) 2002-2010 Marcel Holtmann - * - * - * 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 -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -/* IO cancelation */ -static volatile sig_atomic_t __io_canceled; - -static inline void io_init(void) -{ - __io_canceled = 0; -} - -static inline void io_cancel(void) -{ - __io_canceled = 1; -} - -/* Signal functions */ -static void sig_hup(int sig) -{ - return; -} - -static void sig_term(int sig) -{ - syslog(LOG_INFO, "Closing RFCOMM channel"); - io_cancel(); -} - -/* Read exactly len bytes (Signal safe)*/ -static inline int read_n(int fd, char *buf, int len) -{ - register int t = 0, w; - - while (!__io_canceled && len > 0) { - if ((w = read(fd, buf, len)) < 0) { - if (errno == EINTR || errno == EAGAIN) - continue; - return -1; - } - if (!w) - return 0; - len -= w; - buf += w; - t += w; - } - - return t; -} - -/* Write exactly len bytes (Signal safe)*/ -static inline int write_n(int fd, char *buf, int len) -{ - register int t = 0, w; - - while (!__io_canceled && len > 0) { - if ((w = write(fd, buf, len)) < 0) { - if (errno == EINTR || errno == EAGAIN) - continue; - return -1; - } - if (!w) - return 0; - len -= w; - buf += w; - t += w; - } - - return t; -} - -/* Create the RFCOMM connection */ -static int create_connection(bdaddr_t *bdaddr, uint8_t channel) -{ - struct sockaddr_rc remote_addr, local_addr; - int fd, err; - - if ((fd = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)) < 0) - return fd; - - memset(&local_addr, 0, sizeof(local_addr)); - local_addr.rc_family = AF_BLUETOOTH; - bacpy(&local_addr.rc_bdaddr, BDADDR_ANY); - if ((err = bind(fd, (struct sockaddr *)&local_addr, sizeof(local_addr))) < 0) { - close(fd); - return err; - } - - memset(&remote_addr, 0, sizeof(remote_addr)); - remote_addr.rc_family = AF_BLUETOOTH; - bacpy(&remote_addr.rc_bdaddr, bdaddr); - remote_addr.rc_channel = channel; - if ((err = connect(fd, (struct sockaddr *)&remote_addr, sizeof(remote_addr))) < 0) { - close(fd); - return err; - } - - syslog(LOG_INFO, "RFCOMM channel %d connected", channel); - - return fd; -} - -/* Process the data from socket and pseudo tty */ -static int process_data(int fd) -{ - struct pollfd p[2]; - char buf[1024]; - int err, r; - - p[0].fd = 0; - p[0].events = POLLIN | POLLERR | POLLHUP | POLLNVAL; - - p[1].fd = fd; - p[1].events = POLLIN | POLLERR | POLLHUP | POLLNVAL; - - err = 0; - - while (!__io_canceled) { - p[0].revents = 0; - p[1].revents = 0; - - err = poll(p, 2, -1); - if (err < 0) - break; - - err = 0; - - if (p[0].revents) { - if (p[0].revents & (POLLERR | POLLHUP | POLLNVAL)) - break; - r = read(0, buf, sizeof(buf)); - if (r < 0) { - if (errno != EINTR && errno != EAGAIN) { - err = r; - break; - } - } - - err = write_n(fd, buf, r); - if (err < 0) - break; - } - - if (p[1].revents) { - if (p[1].revents & (POLLERR | POLLHUP | POLLNVAL)) - break; - r = read(fd, buf, sizeof(buf)); - if (r < 0) { - if (errno != EINTR && errno != EAGAIN) { - err = r; - break; - } - } - - err = write_n(1, buf, r); - if (err < 0) - break; - } - } - - return err; -} - -static void usage(void) -{ - printf("Usage:\tppporc [channel]\n"); -} - -int main(int argc, char **argv) -{ - struct sigaction sa; - int fd, err, opt; - - bdaddr_t bdaddr; - uint8_t channel; - - /* Parse command line options */ - while ((opt = getopt(argc, argv, "h")) != EOF) { - switch(opt) { - case 'h': - usage(); - exit(0); - } - } - - argc -= optind; - argv += optind; - - switch (argc) { - case 1: - str2ba(argv[0], &bdaddr); - channel = 1; - break; - case 2: - str2ba(argv[0], &bdaddr); - channel = atoi(argv[1]); - break; - default: - usage(); - exit(0); - } - - /* Initialize syslog */ - openlog("ppporc", LOG_PID | LOG_NDELAY | LOG_PERROR, LOG_DAEMON); - syslog(LOG_INFO, "PPP over RFCOMM"); - - /* Initialize signals */ - memset(&sa, 0, sizeof(sa)); - sa.sa_flags = SA_NOCLDSTOP; - sa.sa_handler = SIG_IGN; - sigaction(SIGCHLD, &sa, NULL); - sigaction(SIGPIPE, &sa, NULL); - - sa.sa_handler = sig_term; - sigaction(SIGTERM, &sa, NULL); - sigaction(SIGINT, &sa, NULL); - - sa.sa_handler = sig_hup; - sigaction(SIGHUP, &sa, NULL); - - syslog(LOG_INFO, "Connecting to %s", argv[0]); - - if ((fd = create_connection(&bdaddr, channel)) < 0) { - syslog(LOG_ERR, "Can't connect to remote device (%s)", strerror(errno)); - return fd; - } - - err = process_data(fd); - - close(fd); - - return err; -} -- 2.47.3