--- embedtools/src/dwds.c 2010/11/02 01:54:58 1.1.2.11 +++ embedtools/src/dwds.c 2010/11/02 02:12:49 1.1.2.12 @@ -58,7 +58,8 @@ RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz struct if_announcemsghdr *ifan; const u_char *v; struct ether_addr bssid; - char szStr[STRSIZ] = { 0 }, szCmd[MAXPATHLEN] = { 0 }, szIdent[STRSIZ] = { 0 }; + char szStr[STRSIZ] = { 0 }, szCmd[MAXPATHLEN] = { 0 }, szIdent[STRSIZ] = { 0 }, + szName[IFNAMSIZ] = { 0 }; int f, stat; assert(wds); @@ -98,7 +99,7 @@ RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz break; memcpy(&bssid, V(ieee80211_leave_event)->iev_addr, ETHER_ADDR_LEN); VERB(1) syslog(LOG_INFO, "BSSID:%s Station leave\n", ether_ntoa(&bssid)); - if (!wifi_leaveWDS(bssid, wds)) { + if (!wifi_leaveWDS(bssid, wds, szName, IFNAMSIZ)) { cfg_LoadAttribute(&cfg, CFG("dwds"), CFG("name"), CFG(szIdent), STRSIZ, DWDS_NAME); /* delete state file ... */ @@ -106,7 +107,7 @@ RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz if (v && strtol((char*) v, NULL, 0)) { memset(szCmd, 0, STRSIZ); snprintf(szCmd, MAXPATHLEN, "%s/%s-%s-%s", (char*) v, - (*wds)->if_name, ether_ntoa(&bssid), szIdent); + szName, ether_ntoa(&bssid), szIdent); unlink(szCmd); VERB(2) syslog(LOG_DEBUG, "Debug:: delete session name %s\n", szCmd); } @@ -119,7 +120,7 @@ RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz CFG(szIdent), STRSIZ, DWDS_NAME); memset(szCmd, 0, MAXPATHLEN); snprintf(szCmd, MAXPATHLEN, "%s %s %s %s", szStr, - (*wds)->if_name, ether_ntoa(&bssid), szIdent); + szName, ether_ntoa(&bssid), szIdent); VERB(3) syslog(LOG_DEBUG, "Debug:: Command line: %s\n", szCmd); if ((stat = system(szCmd)))