Fixup fromcvs/togit conversion
[minix-pkgsrc.git] / sysutils / netbt-hcidump / patches / patch-ao
blob5c43622634b1b445f42a58f6823ad826aa057455
1 $NetBSD: patch-ao,v 1.6 2012/03/19 12:09:00 plunky Exp $
3 --- src/hcidump.c.orig  2012-04-20 19:28:19.000000000 +0000
4 +++ src/hcidump.c
5 @@ -48,6 +48,10 @@
6  #include "lib/hci.h"
7  #include "lib/hci_lib.h"
8  
9 +#ifndef AI_ADDRCONFIG
10 +#define AI_ADDRCONFIG  0
11 +#endif
13  #define SNAP_LEN       HCI_MAX_FRAME_SIZE
14  #define DEFAULT_PORT   "10839"
16 @@ -144,7 +148,7 @@ static inline int write_n(int fd, char *
17         return t;
18  }
20 -static int process_frames(int dev, int sock, int fd, unsigned long flags)
21 +static int process_frames(char *dev, int sock, int fd, unsigned long flags)
22  {
23         struct cmsghdr *cmsg;
24         struct msghdr msg;
25 @@ -186,7 +190,7 @@ static int process_frames(int dev, int s
26         if (dev == HCI_DEV_NONE)
27                 printf("system: ");
28         else
29 -               printf("device: hci%d ", dev);
30 +               printf("device: %s ", dev);
32         printf("snap_len: %d filter: 0x%lx\n", snap_len, parser.filter);
34 @@ -528,10 +532,13 @@ static int open_file(char *file, int mod
35         return fd;
36  }
38 -static int open_socket(int dev, unsigned long flags)
39 +static int open_socket(char *dev, unsigned long flags)
40  {
41 -       struct sockaddr_hci addr;
42 +       struct sockaddr_bt addr;
43         struct hci_filter flt;
44 +#if 1
45 +       int sk, opt;
46 +#else
47         struct hci_dev_info di;
48         int sk, dd, opt;
50 @@ -557,6 +564,7 @@ static int open_socket(int dev, unsigned
52                 hci_close_dev(dd);
53         }
54 +#endif
56         /* Create HCI socket */
57         sk = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
58 @@ -572,12 +580,13 @@ static int open_socket(int dev, unsigned
59         }
61         opt = 1;
62 -       if (setsockopt(sk, SOL_HCI, HCI_TIME_STAMP, &opt, sizeof(opt)) < 0) {
63 +       if (setsockopt(sk, SOL_SOCKET, SO_TIMESTAMP, &opt, sizeof(opt)) < 0) {
64                 perror("Can't enable time stamp");
65                 return -1;
66         }
68         /* Setup filter */
69 +#if 0
70         hci_filter_clear(&flt);
71         hci_filter_all_ptypes(&flt);
72         hci_filter_all_events(&flt);
73 @@ -585,13 +594,34 @@ static int open_socket(int dev, unsigned
74                 perror("Can't set filter");
75                 return -1;
76         }
77 +#else
78 +       memset(&flt, 0xff, sizeof(flt));
79 +       if (setsockopt(sk, BTPROTO_HCI, SO_HCI_EVT_FILTER, &flt, sizeof(flt)) < 0) {
80 +               perror("Can't set event filter");
81 +               exit(1);
82 +       }
84 +       if (setsockopt(sk, BTPROTO_HCI, SO_HCI_PKT_FILTER, &flt, sizeof(flt)) < 0) {
85 +               perror("Can't set packet filter");
86 +               exit(1);
87 +       }
88 +#endif
90         /* Bind socket to the HCI device */
91         memset(&addr, 0, sizeof(addr));
92 +#if 0
93         addr.hci_family = AF_BLUETOOTH;
94         addr.hci_dev = dev;
95 +#else
96 +       addr.bt_len = sizeof(addr);
97 +       addr.bt_family = AF_BLUETOOTH;
98 +       if (dev != HCI_DEV_NONE && !bt_devaddr(dev, &addr.bt_bdaddr)) {
99 +               perror("device");
100 +               exit(1);
101 +       }
102 +#endif
103         if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
104 -               printf("Can't attach to device hci%d. %s(%d)\n", 
105 +               printf("Can't attach to device %s. %s(%d)\n", 
106                                         dev, strerror(errno), errno);
107                 return -1;
108         }
109 @@ -768,7 +798,7 @@ static int wait_connection(char *addr, c
110         return -1;
113 -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)
116         while (1) {
117                 int dd, sk;
118 @@ -904,7 +934,7 @@ int main(int argc, char *argv[])
120         unsigned long flags = 0;
121         unsigned long filter = 0;
122 -       int device = 0;
123 +       char *device = HCI_DEV_NONE;
124         int defpsm = 0;
125         int defcompid = DEFAULT_COMPID;
126         int opt, pppdump_fd = -1, audio_fd = -1;
127 @@ -916,7 +946,7 @@ int main(int argc, char *argv[])
128                 switch(opt) {
129                 case 'i':
130                         if (strcasecmp(optarg, "none") && strcasecmp(optarg, "system"))
131 -                               device = atoi(optarg + 3);
132 +                               device = optarg;
133                         else
134                                 device = HCI_DEV_NONE;
135                         break;