Page MenuHomeFreeBSD

D3369.id7905.diff
No OneTemporary

D3369.id7905.diff

Index: x11/i3status/Makefile
===================================================================
--- x11/i3status/Makefile
+++ x11/i3status/Makefile
@@ -2,7 +2,7 @@
PORTNAME= i3status
PORTVERSION= 2.8
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11
MASTER_SITES= http://i3wm.org/i3status/
@@ -14,6 +14,7 @@
LIB_DEPENDS= libconfuse.so:${PORTSDIR}/devel/libconfuse \
libyajl.so:${PORTSDIR}/devel/yajl
+CFLAGS+= -g
CPPFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
USES= gmake tar:bzip2
Index: x11/i3status/files/patch-print_wireless_info.c
===================================================================
--- /dev/null
+++ x11/i3status/files/patch-print_wireless_info.c
@@ -0,0 +1,69 @@
+--- src/print_wireless_info.c.orig 2014-01-05 03:34:06.000000000 -0800
++++ src/print_wireless_info.c 2015-08-12 08:53:36.045442000 -0700
+@@ -193,10 +193,11 @@
+ return 1;
+ #endif
+ #if defined(__FreeBSD__) || defined(__DragonFly__)
+- int s, len, inwid;
++ int s, inwid;
+ uint8_t buf[24 * 1024], *cp;
+ struct ieee80211req na;
+- char network_id[IEEE80211_NWID_LEN + 1];
++ char bssid[IEEE80211_ADDR_LEN];
++ size_t len;
+
+ if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
+ return (0);
+@@ -224,6 +225,18 @@
+
+ memset(&na, 0, sizeof(na));
+ strlcpy(na.i_name, interface, sizeof(na.i_name));
++ na.i_type = IEEE80211_IOC_BSSID;
++ na.i_data = bssid;
++ na.i_len = sizeof(bssid);
++
++ if (ioctl(s, SIOCG80211, (caddr_t)&na) == -1) {
++ printf("fail\n");
++ close(s);
++ return (0);
++ }
++
++ memset(&na, 0, sizeof(na));
++ strlcpy(na.i_name, interface, sizeof(na.i_name));
+ na.i_type = IEEE80211_IOC_SCAN_RESULTS;
+ na.i_data = buf;
+ na.i_len = sizeof(buf);
+@@ -237,19 +250,20 @@
+ close(s);
+ len = na.i_len;
+ cp = buf;
+- struct ieee80211req_scan_result *sr;
+- uint8_t *vp;
+- sr = (struct ieee80211req_scan_result *)cp;
+- vp = (u_int8_t *)(sr + 1);
+- strlcpy(network_id, (const char *)vp, sr->isr_ssid_len + 1);
+- if (!strcmp(network_id, &info->essid[0])) {
+- info->signal_level = sr->isr_rssi;
+- info->flags |= WIRELESS_INFO_FLAG_HAS_SIGNAL;
+- info->noise_level = sr->isr_noise;
+- info->flags |= WIRELESS_INFO_FLAG_HAS_NOISE;
+- info->quality = sr->isr_intval;
+- info->flags |= WIRELESS_INFO_FLAG_HAS_QUALITY;
+- }
++ do {
++ const struct ieee80211req_scan_result *sr;
++
++ sr = (const struct ieee80211req_scan_result *)cp;
++ if (memcmp(bssid, sr->isr_bssid, sizeof(bssid)) == 0) {
++ info->signal_level = sr->isr_rssi / 2 + sr->isr_noise;
++ info->flags |= WIRELESS_INFO_FLAG_HAS_SIGNAL;
++ info->noise_level = sr->isr_noise;
++ info->flags |= WIRELESS_INFO_FLAG_HAS_NOISE;
++ break;
++ }
++ cp += sr->isr_len;
++ len -= sr->isr_len;
++ } while (len >= sizeof(struct ieee80211req_scan_result));
+
+ return 1;
+ #endif

File Metadata

Mime Type
text/plain
Expires
Sun, Sep 13, 6:06 PM (2 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38867358
Default Alt Text
D3369.id7905.diff (3 KB)

Event Timeline