Diff for /embedtools/src/dwds.c between versions 1.1.2.7 and 1.1.2.8

version 1.1.2.7, 2010/10/27 16:45:35 version 1.1.2.8, 2010/10/28 09:08:58
Line 53  sigHandler(int sig) Line 53  sigHandler(int sig)
 }  }
   
 static int  static int
RtMsg(struct dwds_if *wds, struct rt_msghdr *msg, size_t len)RtMsg(struct dwds_if **wds, struct rt_msghdr *msg, size_t len)
 {  {
           struct if_announcemsghdr *ifan;
           const u_char *v;
           struct ether_addr bssid;
   
           assert(wds);
           assert(msg);
   
           if (msg->rtm_version != RTM_VERSION) {
                   syslog(LOG_ERR, "Error:: routing message version %d not understood!\n", msg->rtm_version);
                   return -1;
           }
   
           switch (msg->rtm_type) {
                   case RTM_IFANNOUNCE:
                           ifan = (struct if_announcemsghdr*) msg;
                           switch (ifan->ifan_what) {
                                   case IFAN_ARRIVAL:
                                           VERB(1) syslog(LOG_INFO, "RTM_IFANNOUNCE: if# %d, what: arrival\n", 
                                                           ifan->ifan_index);
                                           break;
                                   case IFAN_DEPARTURE:
                                           VERB(1) syslog(LOG_INFO, "RTM_IFANNOUNCE: if# %d, what: departure\n", 
                                                           ifan->ifan_index);
                                           wifi_destroyWDS(ifan->ifan_name, wds);
                                           break;
                           }
                           break;
                   case RTM_IEEE80211:
   #define V(type) ((struct type *)(&ifan[1]))
                           ifan = (struct if_announcemsghdr*) msg;
                           switch (ifan->ifan_what) {
                                   case RTM_IEEE80211_DISASSOC:
                                           v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("discover_on_join"));
                                           if (!v || !strtol((char*) v, NULL, 0))
                                                   break;
                                           /* fall thru ... */
                                   case RTM_IEEE80211_LEAVE:
                                           break;
   
                                   case RTM_IEEE80211_JOIN:
                                   case RTM_IEEE80211_REJOIN:
                                   case RTM_IEEE80211_ASSOC:
                                   case RTM_IEEE80211_REASSOC:
                                           v = cfg_GetAttribute(&cfg, CFG("dwds"), CFG("discover_on_join"));
                                           if (!v || !strtol((char*) v, NULL, 0))
                                                   break;
                                           /* fall thru ... */
                                   case RTM_IEEE80211_WDS:
                                           break;
                           }
   #undef V
                           break;
           }
   
         return 0;          return 0;
 }  }
   
Line 145  main(int argc, char **argv) Line 199  main(int argc, char **argv)
                         syslog(LOG_ERR, "Error:: read() #%d - %s\n", errno, strerror(errno));                          syslog(LOG_ERR, "Error:: read() #%d - %s\n", errno, strerror(errno));
                         Kill++;                          Kill++;
                 } else                  } else
                        RtMsg(wds, (struct rt_msghdr*) msg, len);                        RtMsg(&wds, (struct rt_msghdr*) msg, len);
         }          }
   
         close(s);          close(s);

Removed from v.1.1.2.7  
changed lines
  Added in v.1.1.2.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>