|
|
| version 1.1.2.11, 2010/11/02 01:54:58 | version 1.2, 2011/06/08 12:45:41 |
|---|---|
| Line 58 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz | Line 58 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz |
| struct if_announcemsghdr *ifan; | struct if_announcemsghdr *ifan; |
| const u_char *v; | const u_char *v; |
| struct ether_addr bssid; | 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; | int f, stat; |
| assert(wds); | assert(wds); |
| Line 98 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz | Line 99 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz |
| break; | break; |
| memcpy(&bssid, V(ieee80211_leave_event)->iev_addr, ETHER_ADDR_LEN); | memcpy(&bssid, V(ieee80211_leave_event)->iev_addr, ETHER_ADDR_LEN); |
| VERB(1) syslog(LOG_INFO, "BSSID:%s Station leave\n", ether_ntoa(&bssid)); | 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_LoadAttribute(&cfg, CFG("dwds"), CFG("name"), |
| CFG(szIdent), STRSIZ, DWDS_NAME); | CFG(szIdent), STRSIZ, DWDS_NAME); |
| /* delete state file ... */ | /* delete state file ... */ |
| v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("state_dir")); | v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("state_dir")); |
| if (v && strtol((char*) v, NULL, 0)) { | if (v) { |
| memset(szCmd, 0, STRSIZ); | memset(szCmd, 0, STRSIZ); |
| snprintf(szCmd, MAXPATHLEN, "%s/%s-%s-%s", (char*) v, | snprintf(szCmd, MAXPATHLEN, "%s/%s-%s-%s", (char*) v, |
| (*wds)->if_name, ether_ntoa(&bssid), szIdent); | szName, ether_ntoa(&bssid), szIdent); |
| unlink(szCmd); | unlink(szCmd); |
| VERB(2) syslog(LOG_DEBUG, "Debug:: delete session name %s\n", szCmd); | VERB(2) syslog(LOG_DEBUG, "Debug:: delete session name %s\n", szCmd); |
| } | } |
| Line 119 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz | Line 120 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz |
| CFG(szIdent), STRSIZ, DWDS_NAME); | CFG(szIdent), STRSIZ, DWDS_NAME); |
| memset(szCmd, 0, MAXPATHLEN); | memset(szCmd, 0, MAXPATHLEN); |
| snprintf(szCmd, MAXPATHLEN, "%s %s %s %s", szStr, | 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); | VERB(3) syslog(LOG_DEBUG, "Debug:: Command line: %s\n", szCmd); |
| if ((stat = system(szCmd))) | if ((stat = system(szCmd))) |
| Line 147 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz | Line 148 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz |
| CFG(szIdent), STRSIZ, DWDS_NAME); | CFG(szIdent), STRSIZ, DWDS_NAME); |
| /* create state file ... */ | /* create state file ... */ |
| v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("state_dir")); | v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("state_dir")); |
| if (v && strtol((char*) v, NULL, 0)) { | if (v) { |
| memset(szCmd, 0, MAXPATHLEN); | memset(szCmd, 0, MAXPATHLEN); |
| snprintf(szCmd, MAXPATHLEN, "%s/%s-%s-%s", (char*) v, | snprintf(szCmd, MAXPATHLEN, "%s/%s-%s-%s", (char*) v, |
| (*wds)->if_name, ether_ntoa(&bssid), szIdent); | (*wds)->if_name, ether_ntoa(&bssid), szIdent); |