Sun Mar 20 19:56:49 2011 UTC ()
HCI direction message is an int, but you can't memcpy that to a uint8_t
and hope that it will work on big endian machines


(plunky)
diff -r1.2 -r1.3 pkgsrc/sysutils/netbt-hcidump/distinfo
diff -r1.2 -r1.3 pkgsrc/sysutils/netbt-hcidump/patches/patch-ao

cvs diff -r1.2 -r1.3 pkgsrc/sysutils/netbt-hcidump/distinfo (expand / switch to unified diff)

--- pkgsrc/sysutils/netbt-hcidump/distinfo 2011/01/30 20:41:29 1.2
+++ pkgsrc/sysutils/netbt-hcidump/distinfo 2011/03/20 19:56:48 1.3
@@ -1,22 +1,22 @@ @@ -1,22 +1,22 @@
1$NetBSD: distinfo,v 1.2 2011/01/30 20:41:29 plunky Exp $ 1$NetBSD: distinfo,v 1.3 2011/03/20 19:56:48 plunky Exp $
2 2
3SHA1 (bluez-4.87.tar.gz) = a7b0f04d3005e130a193afd457e4fe5450ea9aa0 3SHA1 (bluez-4.87.tar.gz) = a7b0f04d3005e130a193afd457e4fe5450ea9aa0
4RMD160 (bluez-4.87.tar.gz) = 1caa1068d99dc37f1fe48cfc3c83dd756ff03c14 4RMD160 (bluez-4.87.tar.gz) = 1caa1068d99dc37f1fe48cfc3c83dd756ff03c14
5Size (bluez-4.87.tar.gz) = 1114526 bytes 5Size (bluez-4.87.tar.gz) = 1114526 bytes
6SHA1 (bluez-hcidump-2.0.tar.gz) = e6f2e7d63fb92efc8683be8f5bb6373893a7fd72 6SHA1 (bluez-hcidump-2.0.tar.gz) = e6f2e7d63fb92efc8683be8f5bb6373893a7fd72
7RMD160 (bluez-hcidump-2.0.tar.gz) = 277702f4deb364d44f73ab109f6cb97b9ab35bf3 7RMD160 (bluez-hcidump-2.0.tar.gz) = 277702f4deb364d44f73ab109f6cb97b9ab35bf3
8Size (bluez-hcidump-2.0.tar.gz) = 149918 bytes 8Size (bluez-hcidump-2.0.tar.gz) = 149918 bytes
9SHA1 (patch-aa) = 6e30f3bd8e06e152bd2b65b32e173de039320787 9SHA1 (patch-aa) = 6e30f3bd8e06e152bd2b65b32e173de039320787
10SHA1 (patch-ab) = b938aa1d4cba4891b58e7d4a2add3e88f86605f7 10SHA1 (patch-ab) = b938aa1d4cba4891b58e7d4a2add3e88f86605f7
11SHA1 (patch-ac) = adbc1e33996e61ccc5c016154bee3c4af72d784d 11SHA1 (patch-ac) = adbc1e33996e61ccc5c016154bee3c4af72d784d
12SHA1 (patch-ad) = b7007a6c55011ac6a1da2fd1883f953532d75ea5 12SHA1 (patch-ad) = b7007a6c55011ac6a1da2fd1883f953532d75ea5
13SHA1 (patch-ae) = e59424e971879f368c09adae894088952612f1be 13SHA1 (patch-ae) = e59424e971879f368c09adae894088952612f1be
14SHA1 (patch-af) = 7748d6d83ce118eff90b9d8158badd0664faa308 14SHA1 (patch-af) = 7748d6d83ce118eff90b9d8158badd0664faa308
15SHA1 (patch-ah) = b5a190251ccb9e55d2ac8460a436df3026d6be3d 15SHA1 (patch-ah) = b5a190251ccb9e55d2ac8460a436df3026d6be3d
16SHA1 (patch-ai) = 46239a7931f8fecee9216b13f98227711c69c54d 16SHA1 (patch-ai) = 46239a7931f8fecee9216b13f98227711c69c54d
17SHA1 (patch-aj) = 3ef708a26e82ea209ef66c556889ba0cb9c9dd86 17SHA1 (patch-aj) = 3ef708a26e82ea209ef66c556889ba0cb9c9dd86
18SHA1 (patch-ak) = 0d7d144bb67cd5ebf8e3c74fbb0fbdcce87bc4ac 18SHA1 (patch-ak) = 0d7d144bb67cd5ebf8e3c74fbb0fbdcce87bc4ac
19SHA1 (patch-al) = cdef6a512fc1fa4e64c59ae43ce07506103061d4 19SHA1 (patch-al) = cdef6a512fc1fa4e64c59ae43ce07506103061d4
20SHA1 (patch-am) = 0f3d33c1f06edabed5fef4500109a83eff599219 20SHA1 (patch-am) = 0f3d33c1f06edabed5fef4500109a83eff599219
21SHA1 (patch-an) = 35d9fd1b0d82addf0688e2997fdf589fbc89d921 21SHA1 (patch-an) = 35d9fd1b0d82addf0688e2997fdf589fbc89d921
22SHA1 (patch-ao) = 742edc8200deff8baeee34513e8353ee1ef2d9a1 22SHA1 (patch-ao) = f726655e31fef49fd3826853442957e770545413

cvs diff -r1.2 -r1.3 pkgsrc/sysutils/netbt-hcidump/patches/Attic/patch-ao (expand / switch to unified diff)

--- pkgsrc/sysutils/netbt-hcidump/patches/Attic/patch-ao 2011/01/30 20:41:30 1.2
+++ pkgsrc/sysutils/netbt-hcidump/patches/Attic/patch-ao 2011/03/20 19:56:48 1.3
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1$NetBSD: patch-ao,v 1.2 2011/01/30 20:41:30 plunky Exp $ 1$NetBSD: patch-ao,v 1.3 2011/03/20 19:56:48 plunky Exp $
2 2
3--- src/hcidump.c.orig 2011-01-27 04:11:41.000000000 +0000 3--- src/hcidump.c.orig 2011-01-27 04:11:41.000000000 +0000
4+++ src/hcidump.c 4+++ src/hcidump.c
5@@ -50,6 +50,10 @@ 5@@ -50,6 +50,10 @@
6 #include "parser/parser.h" 6 #include "parser/parser.h"
7 #include "parser/sdp.h" 7 #include "parser/sdp.h"
8  8
9+#ifndef AI_ADDRCONFIG 9+#ifndef AI_ADDRCONFIG
10+#define AI_ADDRCONFIG 0 10+#define AI_ADDRCONFIG 0
11+#endif 11+#endif
12+ 12+
13 #if __BYTE_ORDER == __LITTLE_ENDIAN 13 #if __BYTE_ORDER == __LITTLE_ENDIAN
14 static inline uint64_t ntoh64(uint64_t n) 14 static inline uint64_t ntoh64(uint64_t n)
@@ -21,66 +21,76 @@ $NetBSD: patch-ao,v 1.2 2011/01/30 20:41 @@ -21,66 +21,76 @@ $NetBSD: patch-ao,v 1.2 2011/01/30 20:41
21+static int process_frames(char *dev, int sock, int fd, unsigned long flags) 21+static int process_frames(char *dev, int sock, int fd, unsigned long flags)
22 { 22 {
23 struct cmsghdr *cmsg; 23 struct cmsghdr *cmsg;
24 struct msghdr msg; 24 struct msghdr msg;
25@@ -204,7 +208,7 @@ static int process_frames(int dev, int s 25@@ -204,7 +208,7 @@ static int process_frames(int dev, int s
26 if (dev == HCI_DEV_NONE) 26 if (dev == HCI_DEV_NONE)
27 printf("system: "); 27 printf("system: ");
28 else 28 else
29- printf("device: hci%d ", dev); 29- printf("device: hci%d ", dev);
30+ printf("device: %s ", dev); 30+ printf("device: %s ", dev);
31  31
32 printf("snap_len: %d filter: 0x%lx\n", snap_len, parser.filter); 32 printf("snap_len: %d filter: 0x%lx\n", snap_len, parser.filter);
33  33
34@@ -544,10 +548,13 @@ static int open_file(char *file, int mod 34@@ -299,7 +303,8 @@ static int process_frames(int dev, int s
 35 while (cmsg) {
 36 switch (cmsg->cmsg_type) {
 37 case HCI_CMSG_DIR:
 38- memcpy(&frm.in, CMSG_DATA(cmsg), sizeof(int));
 39+ memcpy(&i, CMSG_DATA(cmsg), sizeof(int));
 40+ frm.in = (uint8_t)i;
 41 break;
 42 case HCI_CMSG_TSTAMP:
 43 memcpy(&frm.ts, CMSG_DATA(cmsg),
 44@@ -544,10 +549,13 @@ static int open_file(char *file, int mod
35 return fd; 45 return fd;
36 } 46 }
37  47
38-static int open_socket(int dev, unsigned long flags) 48-static int open_socket(int dev, unsigned long flags)
39+static int open_socket(char *dev, unsigned long flags) 49+static int open_socket(char *dev, unsigned long flags)
40 { 50 {
41- struct sockaddr_hci addr; 51- struct sockaddr_hci addr;
42+ struct sockaddr_bt addr; 52+ struct sockaddr_bt addr;
43 struct hci_filter flt; 53 struct hci_filter flt;
44+#if 1 54+#if 1
45+ int sk, opt; 55+ int sk, opt;
46+#else 56+#else
47 struct hci_dev_info di; 57 struct hci_dev_info di;
48 int sk, dd, opt; 58 int sk, dd, opt;
49  59
50@@ -573,6 +580,7 @@ static int open_socket(int dev, unsigned 60@@ -573,6 +581,7 @@ static int open_socket(int dev, unsigned
51  61
52 hci_close_dev(dd); 62 hci_close_dev(dd);
53 } 63 }
54+#endif 64+#endif
55  65
56 /* Create HCI socket */ 66 /* Create HCI socket */
57 sk = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI); 67 sk = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
58@@ -588,12 +596,13 @@ static int open_socket(int dev, unsigned 68@@ -588,12 +597,13 @@ static int open_socket(int dev, unsigned
59 } 69 }
60  70
61 opt = 1; 71 opt = 1;
62- if (setsockopt(sk, SOL_HCI, HCI_TIME_STAMP, &opt, sizeof(opt)) < 0) { 72- if (setsockopt(sk, SOL_HCI, HCI_TIME_STAMP, &opt, sizeof(opt)) < 0) {
63+ if (setsockopt(sk, SOL_SOCKET, SO_TIMESTAMP, &opt, sizeof(opt)) < 0) { 73+ if (setsockopt(sk, SOL_SOCKET, SO_TIMESTAMP, &opt, sizeof(opt)) < 0) {
64 perror("Can't enable time stamp"); 74 perror("Can't enable time stamp");
65 return -1; 75 return -1;
66 } 76 }
67  77
68 /* Setup filter */ 78 /* Setup filter */
69+#if 0 79+#if 0
70 hci_filter_clear(&flt); 80 hci_filter_clear(&flt);
71 hci_filter_all_ptypes(&flt); 81 hci_filter_all_ptypes(&flt);
72 hci_filter_all_events(&flt); 82 hci_filter_all_events(&flt);
73@@ -601,13 +610,34 @@ static int open_socket(int dev, unsigned 83@@ -601,13 +611,34 @@ static int open_socket(int dev, unsigned
74 perror("Can't set filter"); 84 perror("Can't set filter");
75 return -1; 85 return -1;
76 } 86 }
77+#else 87+#else
78+ memset(&flt, 0xff, sizeof(flt)); 88+ memset(&flt, 0xff, sizeof(flt));
79+ if (setsockopt(sk, BTPROTO_HCI, SO_HCI_EVT_FILTER, &flt, sizeof(flt)) < 0) { 89+ if (setsockopt(sk, BTPROTO_HCI, SO_HCI_EVT_FILTER, &flt, sizeof(flt)) < 0) {
80+ perror("Can't set event filter"); 90+ perror("Can't set event filter");
81+ exit(1); 91+ exit(1);
82+ } 92+ }
83+ 93+
84+ if (setsockopt(sk, BTPROTO_HCI, SO_HCI_PKT_FILTER, &flt, sizeof(flt)) < 0) { 94+ if (setsockopt(sk, BTPROTO_HCI, SO_HCI_PKT_FILTER, &flt, sizeof(flt)) < 0) {
85+ perror("Can't set packet filter"); 95+ perror("Can't set packet filter");
86+ exit(1); 96+ exit(1);
@@ -96,40 +106,40 @@ $NetBSD: patch-ao,v 1.2 2011/01/30 20:41 @@ -96,40 +106,40 @@ $NetBSD: patch-ao,v 1.2 2011/01/30 20:41
96+ addr.bt_len = sizeof(addr); 106+ addr.bt_len = sizeof(addr);
97+ addr.bt_family = AF_BLUETOOTH; 107+ addr.bt_family = AF_BLUETOOTH;
98+ if (dev != HCI_DEV_NONE && !bt_devaddr(dev, &addr.bt_bdaddr)) { 108+ if (dev != HCI_DEV_NONE && !bt_devaddr(dev, &addr.bt_bdaddr)) {
99+ perror("device"); 109+ perror("device");
100+ exit(1); 110+ exit(1);
101+ } 111+ }
102+#endif 112+#endif
103 if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) { 113 if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
104- printf("Can't attach to device hci%d. %s(%d)\n",  114- printf("Can't attach to device hci%d. %s(%d)\n",
105+ printf("Can't attach to device %s. %s(%d)\n",  115+ printf("Can't attach to device %s. %s(%d)\n",
106 dev, strerror(errno), errno); 116 dev, strerror(errno), errno);
107 return -1; 117 return -1;
108 } 118 }
109@@ -784,7 +814,7 @@ static int wait_connection(char *addr, c 119@@ -784,7 +815,7 @@ static int wait_connection(char *addr, c
110 return -1; 120 return -1;
111 } 121 }
112  122
113-static int run_server(int dev, char *addr, char *port, unsigned long flags) 123-static int run_server(int dev, char *addr, char *port, unsigned long flags)
114+static int run_server(char *dev, char *addr, char *port, unsigned long flags) 124+static int run_server(char *dev, char *addr, char *port, unsigned long flags)
115 { 125 {
116 while (1) { 126 while (1) {
117 int dd, sk; 127 int dd, sk;
118@@ -914,7 +944,7 @@ int main(int argc, char *argv[]) 128@@ -914,7 +945,7 @@ int main(int argc, char *argv[])
119 { 129 {
120 unsigned long flags = 0; 130 unsigned long flags = 0;
121 unsigned long filter = 0; 131 unsigned long filter = 0;
122- int device = 0; 132- int device = 0;
123+ char *device = HCI_DEV_NONE; 133+ char *device = HCI_DEV_NONE;
124 int defpsm = 0; 134 int defpsm = 0;
125 int defcompid = DEFAULT_COMPID; 135 int defcompid = DEFAULT_COMPID;
126 int opt, pppdump_fd = -1, audio_fd = -1; 136 int opt, pppdump_fd = -1, audio_fd = -1;
127@@ -923,7 +953,7 @@ int main(int argc, char *argv[]) 137@@ -923,7 +954,7 @@ int main(int argc, char *argv[])
128 switch(opt) { 138 switch(opt) {
129 case 'i': 139 case 'i':
130 if (strcasecmp(optarg, "none") && strcasecmp(optarg, "system")) 140 if (strcasecmp(optarg, "none") && strcasecmp(optarg, "system"))
131- device = atoi(optarg + 3); 141- device = atoi(optarg + 3);
132+ device = optarg; 142+ device = optarg;
133 else 143 else
134 device = HCI_DEV_NONE; 144 device = HCI_DEV_NONE;
135 break; 145 break;