diff options
author | avatar <avatar@FreeBSD.org> | 2005-06-20 02:33:02 +0000 |
---|---|---|
committer | avatar <avatar@FreeBSD.org> | 2005-06-20 02:33:02 +0000 |
commit | d96c7ef573c68c2ebb755a6505ed0fd7d670aaf6 (patch) | |
tree | 60508ae0efe8802d30330060e27ff5e0082419a8 /sbin/ifconfig/ifieee80211.c | |
parent | 8a64953622739b92709bfe4d9873c75f48a0b6ad (diff) | |
download | FreeBSD-src-d96c7ef573c68c2ebb755a6505ed0fd7d670aaf6.zip FreeBSD-src-d96c7ef573c68c2ebb755a6505ed0fd7d670aaf6.tar.gz |
Appending "..." to a SSID which contains unprintable characters only when
necessary.
Submitted by: sam
Approved by: re (scottl)
Diffstat (limited to 'sbin/ifconfig/ifieee80211.c')
-rw-r--r-- | sbin/ifconfig/ifieee80211.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sbin/ifconfig/ifieee80211.c b/sbin/ifconfig/ifieee80211.c index 8f85741..b85753f 100644 --- a/sbin/ifconfig/ifieee80211.c +++ b/sbin/ifconfig/ifieee80211.c @@ -712,15 +712,16 @@ copy_essid(char buf[], size_t bufsize, const u_int8_t *essid, size_t essid_len) bufsize -= 2; p = essid; for (i = 0; i < maxlen && bufsize >= 2; i++) { - sprintf(&buf[2+2*i], "%02x", *p++); + sprintf(&buf[2+2*i], "%02x", p[i]); bufsize -= 2; } - maxlen = 2+2*i; + if (i != essid_len) + memcpy(&buf[2+2*i-3], "...", 3); } else { /* printable, truncate as needed */ memcpy(buf, essid, maxlen); + if (maxlen != essid_len) + memcpy(&buf[maxlen-3], "...", 3); } - if (maxlen != essid_len) - memcpy(buf+maxlen-3, "...", 3); return maxlen; } |