1 --- network/bridge.c.orig 2008/05/06 18:40:54 1.11
2 +++ network/bridge.c 2008/05/06 21:46:05 1.12
7 + memset(&ifr, 0, sizeof(ifr));
8 strncpy(ifr.ifr_name, name, IFNAMSIZ);
9 ifr.ifr_ifindex = ifindex;
11 --- network/common.c.orig 2008/02/02 03:37:43 1.20
12 +++ network/common.c 2008/05/06 21:46:05 1.21
15 struct bnep_conndel_req req;
17 + memset(&req, 0, sizeof(req));
18 baswap((bdaddr_t *)&req.dst, dst);
20 if (ioctl(ctl, BNEPCONNDEL, &req)) {
24 for (i=0; i < req.cnum; i++) {
25 - struct bnep_conndel_req req;
26 - memcpy(req.dst, ci[i].dst, ETH_ALEN);
28 - ioctl(ctl, BNEPCONNDEL, &req);
29 + struct bnep_conndel_req del;
31 + memset(&del, 0, sizeof(del));
32 + memcpy(del.dst, ci[i].dst, ETH_ALEN);
34 + ioctl(ctl, BNEPCONNDEL, &del);
40 struct bnep_connadd_req req;
42 + memset(&req, 0, sizeof(req));
43 strncpy(req.device, dev, 16);
44 req.device[15] = '\0';
50 +static int bnep_exec(const char **argv)
53 + GSpawnFlags flags = G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH;
55 + if (!g_spawn_async(NULL, (char **) argv, NULL, flags, bnep_setup, NULL,
57 + error("Unable to execute %s %s", *argv[0], *argv[1]);
64 int bnep_if_up(const char *devname, uint16_t id)
70 - struct bnep_data *bnep;
72 + struct bnep_data *bnep = NULL;
75 /* Check if a script is running */
76 - if ((l = g_slist_find_custom(pids, devname, find_devname))) {
77 + l = g_slist_find_custom(pids, devname, find_devname);
81 if (bnep->script && !strcmp(bnep->script, "avahi-autoipd")) {
83 argv[2] = "--refresh";
86 - flags = G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH;
87 - g_spawn_async(NULL, (char **) argv, NULL, flags,
88 - bnep_setup, (gpointer) devname, &pid,
90 + bnep->pid = bnep_exec(argv);
96 sd = socket(AF_INET6, SOCK_DGRAM, 0);
104 bnep = g_new0(struct bnep_data, 1);
105 bnep->devname = g_strdup(devname);
111 - flags = G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH;
112 - if (!g_spawn_async(NULL, (char **) argv, NULL, flags, bnep_setup,
113 - (gpointer) devname, &pid, NULL)) {
114 - error("Unable to execute %s", argv[0]);
119 - g_child_watch_add(pid, script_exited, bnep);
120 + bnep->pid = bnep_exec(argv);
121 + g_child_watch_add(bnep->pid, script_exited, bnep);
124 pids = g_slist_append(pids, bnep);
129 - if (bnep->script && !strcmp (bnep->script, "avahi-autoipd")) {
130 + if (bnep->script && !strcmp(bnep->script, "avahi-autoipd")) {
131 argv[0] = bnep->script;
135 ifr.ifr_flags &= ~IFF_UP;
137 /* Bring down the interface */
138 - if ((ioctl(sd, SIOCSIFFLAGS, (caddr_t) &ifr)) < 0) {
140 - error("Could not bring down %d. %s(%d)", devname, strerror(err),
144 + ioctl(sd, SIOCSIFFLAGS, (caddr_t) &ifr);
146 pids = g_slist_remove(pids, bnep);
148 --- network/connection.c.orig 2008/02/02 03:37:43 1.46
149 +++ network/connection.c 2008/05/06 21:46:05 1.47
153 info("%s disconnected", nc->dev);
154 + bnep_if_down(nc->dev);
155 nc->state = DISCONNECTED;
156 memset(nc->dev, 0, 16);
157 strncpy(nc->dev, prefix, strlen(prefix));