added ifplugd-0.28-r9 ebuild
[datacube.git] / sys-apps / ifplugd / files / ifplugd-0.28-strictalias.patch
1 --- src/interface.c.orig        2007-03-23 13:29:40.000000000 +0000
2 +++ src/interface.c     2007-03-23 13:30:05.000000000 +0000
3 @@ -89,6 +89,10 @@
4  
5  interface_status_t interface_detect_beat_mii(int fd, char *iface) {
6      struct ifreq ifr;
7 +    union {
8 +      caddr_t *data;
9 +      unsigned short *usz;
10 +    } ifd;
11      
12      if (interface_auto_up)
13          interface_up(fd, iface);
14 @@ -103,7 +107,8 @@
15          return IFSTATUS_ERR;
16      }
17  
18 -    ((unsigned short*) &ifr.ifr_data)[1] = 1;
19 +    ifd.data = &ifr.ifr_data;
20 +    *++ifd.usz = 1;
21  
22      if (ioctl(fd, SIOCGMIIREG, &ifr) == -1) {
23          if (interface_do_message)
24 @@ -112,12 +117,17 @@
25          return IFSTATUS_ERR;
26      }
27  
28 -    return (((unsigned short*) &ifr.ifr_data)[3] & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
29 +    ifd.usz += 2;
30 +    return (*ifd.usz & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
31  }
32  
33  interface_status_t interface_detect_beat_priv(int fd, char *iface) {
34      struct ifreq ifr;
35 -    
36 +    union {
37 +      caddr_t *data;
38 +      unsigned short *usz;
39 +    } ifd;
40 +   
41      if (interface_auto_up)
42          interface_up(fd, iface);
43      
44 @@ -131,7 +141,8 @@
45          return IFSTATUS_ERR;
46      }
47  
48 -    ((unsigned short*) &ifr.ifr_data)[1] = 1;
49 +    ifd.data = &ifr.ifr_data;
50 +    *++ifd.usz = 1;
51  
52      if (ioctl(fd, SIOCDEVPRIVATE+1, &ifr) == -1) {
53          if (interface_do_message)
54 @@ -140,7 +151,8 @@
55          return IFSTATUS_ERR;
56      }
57  
58 -    return (((unsigned short*) &ifr.ifr_data)[3] & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
59 +    ifd.usz += 2;
60 +    return (*ifd.usz & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
61  }
62  
63  interface_status_t interface_detect_beat_ethtool(int fd, char *iface) {