diff options
-rw-r--r-- | network/common.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/network/common.c b/network/common.c index 96821f84..d7174a18 100644 --- a/network/common.c +++ b/network/common.c @@ -279,6 +279,18 @@ int bnep_if_down(const char *devname) struct ifreq ifr; GSList *l; + for(l = pids; l; l = g_slist_next(l)) { + struct bnep_data *bnep = l->data; + + if (strcmp(devname, bnep->devname) == 0) { + if (kill(bnep->pid, SIGTERM) < 0) + error("kill(%d, SIGTERM): %s (%d)", bnep->pid, + strerror(errno), errno); + pids = g_slist_remove(pids, bnep); + break; + } + } + sd = socket(AF_INET6, SOCK_DGRAM, 0); memset(&ifr, 0, sizeof(ifr)); strcpy(ifr.ifr_name, devname); @@ -292,17 +304,6 @@ int bnep_if_down(const char *devname) return -err; } - for(l = pids; l; l = g_slist_next(l)) { - struct bnep_data *bnep = l->data; - - if (strcmp(devname, bnep->devname) == 0) { - if (kill(bnep->pid, SIGTERM) < 0) - error("kill(%d, SIGTERM): %s (%d)", bnep->pid, - strerror(errno), errno); - break; - } - } - return 0; } |