summaryrefslogtreecommitdiffstats
path: root/hcid
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-04-25 15:27:08 +0000
committerMarcel Holtmann <marcel@holtmann.org>2006-04-25 15:27:08 +0000
commit428e541c1dbe709fae8b40e7fed7b8ed6d2fb087 (patch)
treeb4487436709f0d2e666714a0e276c8e39a0b4487 /hcid
parent806640b12ffdba3dd6ad9a3b98196837d01c2b7f (diff)
Remove unneeded functions
Diffstat (limited to 'hcid')
-rw-r--r--hcid/Makefile.am2
-rw-r--r--hcid/hcid.h2
-rw-r--r--hcid/lib.c180
-rw-r--r--hcid/lib.h88
-rw-r--r--hcid/main.c78
-rw-r--r--hcid/security.c1
6 files changed, 65 insertions, 286 deletions
diff --git a/hcid/Makefile.am b/hcid/Makefile.am
index 7d1f330a..385e2e5b 100644
--- a/hcid/Makefile.am
+++ b/hcid/Makefile.am
@@ -31,7 +31,7 @@ dbus_hcid_cflags =
endif
hcid_SOURCES = main.c security.c device.c logging.c storage.c \
- sdp.c sdp.h lib.c lib.h hcid.h parser.h parser.y \
+ sdp.c sdp.h hcid.h parser.h parser.y \
lexer.l kword.c kword.h $(dbus_hcid_sources) \
$(top_builddir)/tools/oui.h $(top_builddir)/tools/oui.c
diff --git a/hcid/hcid.h b/hcid/hcid.h
index cf8ab91a..e8765eae 100644
--- a/hcid/hcid.h
+++ b/hcid/hcid.h
@@ -87,7 +87,7 @@ struct device_list {
};
struct hcid_opts {
- char *host_name;
+ char host_name[40];
int auto_init;
int security;
int pairing;
diff --git a/hcid/lib.c b/hcid/lib.c
deleted file mode 100644
index e52e9b37..00000000
--- a/hcid/lib.c
+++ /dev/null
@@ -1,180 +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-2006 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 <unistd.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <signal.h>
-#include <sys/socket.h>
-
-#include <bluetooth/bluetooth.h>
-#include <bluetooth/hci.h>
-#include <bluetooth/hci_lib.h>
-
-#include "hcid.h"
-#include "lib.h"
-
-volatile sig_atomic_t __io_canceled;
-
-/*
- * Device name expansion
- * %d - device id
- */
-char *expand_name(char *dst, int size, char *str, int dev_id)
-{
- register int sp, np, olen;
- char *opt, buf[10];
-
- if (!str && !dst)
- return NULL;
-
- sp = np = 0;
- while (np < size - 1 && str[sp]) {
- switch (str[sp]) {
- case '%':
- opt = NULL;
-
- switch (str[sp+1]) {
- case 'd':
- sprintf(buf, "%d", dev_id);
- opt = buf;
- break;
-
- case 'h':
- opt = hcid.host_name;
- break;
-
- case '%':
- dst[np++] = str[sp++];
- /* fall through */
- default:
- sp++;
- continue;
- }
-
- if (opt) {
- /* substitute */
- olen = strlen(opt);
- if (np + olen < size - 1)
- memcpy(dst + np, opt, olen);
- np += olen;
- }
- sp += 2;
- continue;
-
- case '\\':
- sp++;
- /* fall through */
- default:
- dst[np++] = str[sp++];
- break;
- }
- }
- dst[np] = '\0';
- return dst;
-}
-
-/* Returns current host name */
-char *get_host_name(void)
-{
- char name[40];
-
- if (!gethostname(name, sizeof(name)-1)) {
- name[sizeof(name)-1] = 0;
- return strdup(name);
- }
- return strdup("noname");
-}
-
-/* Functions to manipulate program title */
-extern char **environ;
-char *title_start; /* start of the proc title space */
-char *title_end; /* end of the proc title space */
-int title_size;
-
-void init_title(int argc, char *argv[], char *envp[], const char *name)
-{
- int i;
-
- /*
- * Move the environment so settitle can use the space at
- * the top of memory.
- */
-
- for (i = 0; envp[i]; i++);
-
- environ = (char **) malloc(sizeof (char *) * (i + 1));
-
- for (i = 0; envp[i]; i++)
- environ[i] = strdup(envp[i]);
- environ[i] = NULL;
-
- /*
- * Save start and extent of argv for set_title.
- */
-
- title_start = argv[0];
-
- /*
- * Determine how much space we can use for set_title.
- * Use all contiguous argv and envp pointers starting at argv[0]
- */
- for (i =0; i < argc; i++)
- if (!i || title_end == argv[i])
- title_end = argv[i] + strlen(argv[i]) + 1;
-
- for (i = 0; envp[i]; i++)
- if (title_end == envp[i])
- title_end = envp[i] + strlen(envp[i]) + 1;
-
- strcpy(title_start, name);
- title_start += strlen(name);
- title_size = title_end - title_start;
-}
-
-void set_title(const char *fmt, ...)
-{
- char buf[255];
- va_list ap;
-
- memset(title_start, 0, title_size);
-
- /* print the argument string */
- va_start(ap, fmt);
- vsprintf(buf, fmt, ap);
- va_end(ap);
-
- if (strlen(buf) > title_size - 1)
- buf[title_size - 1] = '\0';
-
- strcat(title_start, buf);
-}
diff --git a/hcid/lib.h b/hcid/lib.h
deleted file mode 100644
index 74687fad..00000000
--- a/hcid/lib.h
+++ /dev/null
@@ -1,88 +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-2006 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
- *
- */
-
-#include <errno.h>
-
-char *expand_name(char *dst, int size, char *str, int dev_id);
-
-char *get_host_name(void);
-
-void init_title(int argc, char *argv[], char *env[], const char *name);
-void set_title(const char *ftm, ...);
-
-/* IO cancelation */
-extern volatile sig_atomic_t __io_canceled;
-
-static inline void io_init(void)
-{
- __io_canceled = 0;
-}
-
-static inline void io_cancel(void)
-{
- __io_canceled = 1;
-}
-
-/* Read exactly len bytes (Signal safe)*/
-static inline int read_n(int fd, void *buf, int len)
-{
- register int w, t = 0;
-
- 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, void *buf, int len)
-{
- register int w, t = 0;
-
- 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;
-}
diff --git a/hcid/main.c b/hcid/main.c
index d3ff01c5..dc477efb 100644
--- a/hcid/main.c
+++ b/hcid/main.c
@@ -45,7 +45,6 @@
#include "glib-ectomy.h"
#include "hcid.h"
-#include "lib.h"
#include "sdp.h"
struct hcid_opts hcid;
@@ -191,6 +190,64 @@ no_address:
return device_opts->discovto;
}
+/*
+ * Device name expansion
+ * %d - device id
+ */
+static char *expand_name(char *dst, int size, char *str, int dev_id)
+{
+ register int sp, np, olen;
+ char *opt, buf[10];
+
+ if (!str && !dst)
+ return NULL;
+
+ sp = np = 0;
+ while (np < size - 1 && str[sp]) {
+ switch (str[sp]) {
+ case '%':
+ opt = NULL;
+
+ switch (str[sp+1]) {
+ case 'd':
+ sprintf(buf, "%d", dev_id);
+ opt = buf;
+ break;
+
+ case 'h':
+ opt = hcid.host_name;
+ break;
+
+ case '%':
+ dst[np++] = str[sp++];
+ /* fall through */
+ default:
+ sp++;
+ continue;
+ }
+
+ if (opt) {
+ /* substitute */
+ olen = strlen(opt);
+ if (np + olen < size - 1)
+ memcpy(dst + np, opt, olen);
+ np += olen;
+ }
+ sp += 2;
+ continue;
+
+ case '\\':
+ sp++;
+ /* fall through */
+ default:
+ dst[np++] = str[sp++];
+ break;
+ }
+ }
+ dst[np] = '\0';
+ return dst;
+}
+
static void configure_device(int hdev)
{
struct device_opts *device_opts;
@@ -210,8 +267,6 @@ static void configure_device(int hdev)
return;
}
- set_title("hci%d config", hdev);
-
if ((s = hci_open_dev(hdev)) < 0) {
error("Can't open device hci%d: %s (%d)",
hdev, strerror(errno), errno);
@@ -388,8 +443,6 @@ static void init_device(int hdev)
return;
}
- set_title("hci%d init", hdev);
-
if ((s = hci_open_dev(hdev)) < 0) {
error("Can't open device hci%d: %s (%d)",
hdev, strerror(errno), errno);
@@ -595,10 +648,7 @@ static gboolean io_stack_event(GIOChannel *chan, GIOCondition cond, gpointer dat
return TRUE;
}
-extern int optind, opterr, optopt;
-extern char *optarg;
-
-int main(int argc, char *argv[], char *env[])
+int main(int argc, char *argv[])
{
struct sockaddr_hci addr;
struct hci_filter flt;
@@ -607,12 +657,15 @@ int main(int argc, char *argv[], char *env[])
int opt, daemonize = 1, sdp = 0;
/* Default HCId settings */
+ memset(&hcid, 0, sizeof(hcid));
hcid.auto_init = 1;
hcid.config_file = HCID_CONFIG_FILE;
- hcid.host_name = get_host_name();
hcid.security = HCID_SEC_AUTO;
hcid.pairing = HCID_PAIRING_MULTI;
+ if (gethostname(hcid.host_name, sizeof(hcid.host_name) - 1) < 0)
+ strcpy(hcid.host_name, "noname");
+
strcpy((char *) hcid.pin_code, "BlueZ");
hcid.pin_len = 5;
@@ -645,9 +698,6 @@ int main(int argc, char *argv[], char *env[])
umask(0077);
- init_title(argc, argv, env, "hcid: ");
- set_title("initializing");
-
start_logging("hcid", "Bluetooth HCI daemon");
memset(&sa, 0, sizeof(sa));
@@ -709,8 +759,6 @@ int main(int argc, char *argv[], char *env[])
/* Initialize already connected devices */
init_all_devices(hcid.sock);
- set_title("processing events");
-
ctl_io = g_io_channel_unix_new(hcid.sock);
g_io_add_watch(ctl_io, G_IO_IN, io_stack_event, NULL);
diff --git a/hcid/security.c b/hcid/security.c
index 199b93d3..6de61c67 100644
--- a/hcid/security.c
+++ b/hcid/security.c
@@ -48,7 +48,6 @@
#include "glib-ectomy.h"
#include "hcid.h"
-#include "lib.h"
#include "textfile.h"
#include "list.h"