|
|
| version 1.1.2.9, 2010/10/28 15:45:27 | version 1.1.2.10, 2010/10/28 15:56:06 |
|---|---|
| Line 59 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz | Line 59 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz |
| const u_char *v; | const u_char *v; |
| struct ether_addr bssid; | struct ether_addr bssid; |
| char szStr[STRSIZ] = { 0 }, szCmd[MAXPATHLEN] = { 0 }; | char szStr[STRSIZ] = { 0 }, szCmd[MAXPATHLEN] = { 0 }; |
| int stat; | int f, stat; |
| assert(wds); | assert(wds); |
| assert(msg); | assert(msg); |
| Line 99 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz | Line 99 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz |
| 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)) { |
| /* delete state file ... */ | |
| v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("state_dir")); | |
| if (v && strtol((char*) v, NULL, 0)) { | |
| memset(szCmd, 0, STRSIZ); | |
| snprintf(szCmd, MAXPATHLEN, "%s/%s-%s", (char*) v, | |
| ifan->ifan_name, ether_ntoa(&bssid)); | |
| unlink(szCmd); | |
| VERB(2) syslog(LOG_DEBUG, "Debug:: delete session name %s\n", szCmd); | |
| } | |
| /* Launch script ... */ | /* Launch script ... */ |
| cfg_LoadAttribute(&cfg, CFG("dwds"), CFG("disassoc_event"), | cfg_LoadAttribute(&cfg, CFG("dwds"), CFG("disassoc_event"), |
| CFG(szStr), STRSIZ, NULL); | CFG(szStr), STRSIZ, NULL); |
| if (*szStr) { | if (*szStr) { |
| memset(szCmd, 0, MAXPATHLEN); | |
| snprintf(szCmd, MAXPATHLEN, "%s %s %s", szStr, | snprintf(szCmd, MAXPATHLEN, "%s %s %s", szStr, |
| ifan->ifan_name, ether_ntoa(&bssid)); | ifan->ifan_name, ether_ntoa(&bssid)); |
| VERB(3) syslog(LOG_DEBUG, "Debug:: Command line: %s\n", szCmd); | VERB(3) syslog(LOG_DEBUG, "Debug:: Command line: %s\n", szCmd); |
| Line 128 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz | Line 139 RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, siz |
| if (wifi_chkIface(ifan->ifan_name, ifs, nif) < 0) | if (wifi_chkIface(ifan->ifan_name, ifs, nif) < 0) |
| break; | break; |
| if (!wifi_createWDS(ifan->ifan_name, bssid, wds)) { | if (!wifi_createWDS(ifan->ifan_name, bssid, wds)) { |
| /* create state file ... */ | |
| v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("state_dir")); | |
| if (v && strtol((char*) v, NULL, 0)) { | |
| memset(szCmd, 0, MAXPATHLEN); | |
| snprintf(szCmd, MAXPATHLEN, "%s/%s-%s", (char*) v, | |
| ifan->ifan_name, ether_ntoa(&bssid)); | |
| f = open(szCmd, O_WRONLY | O_CREAT, 0644); | |
| if (f != -1) | |
| close(f); | |
| VERB(2) syslog(LOG_DEBUG, "Debug:: create session name %s\n", szCmd); | |
| } | |
| /* Launch script ... */ | /* Launch script ... */ |
| cfg_LoadAttribute(&cfg, CFG("dwds"), CFG("assoc_event"), | cfg_LoadAttribute(&cfg, CFG("dwds"), CFG("assoc_event"), |
| CFG(szStr), STRSIZ, NULL); | CFG(szStr), STRSIZ, NULL); |
| if (*szStr) { | if (*szStr) { |
| memset(szCmd, 0, MAXPATHLEN); | |
| snprintf(szCmd, MAXPATHLEN, "%s %s %s", szStr, | snprintf(szCmd, MAXPATHLEN, "%s %s %s", szStr, |
| ifan->ifan_name, ether_ntoa(&bssid)); | ifan->ifan_name, ether_ntoa(&bssid)); |
| VERB(3) syslog(LOG_DEBUG, "Debug:: Command line: %s\n", szCmd); | VERB(3) syslog(LOG_DEBUG, "Debug:: Command line: %s\n", szCmd); |