--- embedtools/src/dwds.c 2010/11/02 01:54:58 1.1.2.11 +++ embedtools/src/dwds.c 2010/11/02 02:25:46 1.1.2.13 @@ -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,15 +99,15 @@ 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 ... */ v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("state_dir")); - if (v && strtol((char*) v, NULL, 0)) { + if (v) { 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))) @@ -147,7 +148,7 @@ RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz CFG(szIdent), STRSIZ, DWDS_NAME); /* create state file ... */ v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("state_dir")); - if (v && strtol((char*) v, NULL, 0)) { + if (v) { memset(szCmd, 0, MAXPATHLEN); snprintf(szCmd, MAXPATHLEN, "%s/%s-%s-%s", (char*) v, (*wds)->if_name, ether_ntoa(&bssid), szIdent);