]> git.decadent.org.uk Git - ap-utils.git/blobdiff - lib/scr.c
Merge commit 'upstream/1.5'
[ap-utils.git] / lib / scr.c
index b0eeb0ca69164c7d8bc54911de5b0058c661b801..6ad506a3bcbefc3b2da320e9658380e4d9ac96b5 100644 (file)
--- a/lib/scr.c
+++ b/lib/scr.c
@@ -25,6 +25,7 @@
 #include <menu.h>
 
 extern WINDOW *main_sub, *win_for_help, *main_win;
+extern short ap_type, ap_vendorext;
 
 enum { dBm, percentage, rawval } sts_viewtype = dBm;
 
@@ -36,22 +37,16 @@ scroll_rows(struct MacListStat *first, int begin, int end, int row,
     struct MacListStat *curr = first;
     char message[100];
 
-    clear_main(3);
+    clear_main(row);
 
     while (i++ < begin)
        curr = curr->next;
     i = 0;
     while (end-- > begin) {
        if (stat == 1) {
-           /* NWN view */
+           /* NWN STAtions listing */
            sprintf(message,
-               (sts_viewtype == dBm) ?
-               "%4u       %02X%02X%02X%02X%02X%02X        %3u%5u   %3udBm"
-               :
-               (sts_viewtype == percentage) ?
-               "%4u       %02X%02X%02X%02X%02X%02X        %3u%5u     %3u%%"
-               :
-               "%4u       %02X%02X%02X%02X%02X%02X        %3u%5u      %3u",
+               "%4u       %02X%02X%02X%02X%02X%02X        %3u%5u     %3d",
                begin + i, curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
                curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
                curr->addr[4] & 0xFF, curr->addr[5] & 0xFF,
@@ -60,56 +55,50 @@ scroll_rows(struct MacListStat *first, int begin, int end, int row,
                conv_rssi(curr->rssi)
            );
        } else if (stat == 2) {
-           /* ATMEL410_SBRIDGES (firmware 1.4k.1) view */
-           sprintf(message,
-               (sts_viewtype == dBm) ?
-               "%2u %02X%02X%02X%02X%02X%02X %3d%% %4ddBm  %3u    %2u   %s"
-               :
-               (sts_viewtype == percentage) ?
-               "%2u %02X%02X%02X%02X%02X%02X %3d%%   %3u%%  %3u    %2u   %s"
-               :
-               "%2u %02X%02X%02X%02X%02X%02X %3d%%    %3u  %3u    %2u   %s",
-               begin + i,
-               curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
-               curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
-               curr->addr[4] & 0xFF, curr->addr[5] & 0xFF,
-               curr->quality,
-               conv_rssi(curr->rssi),
-               curr->Status,
-               curr->Port,
-               inet_ntoa(curr->IP)
-           );
-       } else if (stat == 3) {
-           /* ATMEL12350_VERNET view */
-           sprintf(message,
-               (sts_viewtype == dBm) ?
-               "%2u %02X%02X%02X%02X%02X%02X %02X%02X%02X%02X%02X%02X "
-               "%4ddBm  %3u    %2u  %s"
-               :
-               (sts_viewtype == percentage) ?
-               "%2u %02X%02X%02X%02X%02X%02X %02X%02X%02X%02X%02X%02X "
-               "  %3u%%   %3u    %2u  %s"
-               :
-               "%2u %02X%02X%02X%02X%02X%02X %02X%02X%02X%02X%02X%02X "
-               "   %3u   %3u    %2u  %s",
+           /* ATMEL STAtions listing */
+           char parentmac[13] = "      -     ";
+           char rssi[5] = "   -";
+           char quality[5] = "   -";
+           char status[4] = "  -";
+           char port[4] = " -";
+           char ip[16] = "      -        ";
+
+           if (curr->ParentMacAddress[0] | curr->ParentMacAddress[1] |
+               curr->ParentMacAddress[2] | curr->ParentMacAddress[3] |
+               curr->ParentMacAddress[4] | curr->ParentMacAddress[5])
+               sprintf(parentmac, "%02X%02X%02X%02X%02X%02X",
+                   curr->ParentMacAddress[0] & 0xFF,
+                   curr->ParentMacAddress[1] & 0xFF,
+                   curr->ParentMacAddress[2] & 0xFF,
+                   curr->ParentMacAddress[3] & 0xFF,
+                   curr->ParentMacAddress[4] & 0xFF,
+                   curr->ParentMacAddress[5] & 0xFF);
+
+           if (curr->rssi)
+               sprintf(rssi, "%4d", conv_rssi(curr->rssi));
+
+           if (curr->quality)
+               sprintf(quality, "%3u%%", curr->quality);
+
+           if (curr->Status)
+               sprintf(status, "%3u", curr->Status);
+
+           if (curr->Port)
+               sprintf(port, "%2u", curr->Port);
+
+           if(curr->IP.s_addr)
+               sprintf(ip, "%s", inet_ntoa(curr->IP));
+
+           sprintf(message, "%3u %02X%02X%02X%02X%02X%02X %s %s %s %s   %s %s",
                begin + i,
                curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
                curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
                curr->addr[4] & 0xFF, curr->addr[5] & 0xFF,
-               curr->ParentMacAddress[0] & 0xFF,
-               curr->ParentMacAddress[1] & 0xFF,
-               curr->ParentMacAddress[2] & 0xFF,
-               curr->ParentMacAddress[3] & 0xFF,
-               curr->ParentMacAddress[4] & 0xFF,
-               curr->ParentMacAddress[5] & 0xFF,
-               conv_rssi(curr->rssi),
-               curr->Status,
-               curr->Port,
-               inet_ntoa(curr->IP)
+               parentmac, rssi, quality, status, port, ip
            );
        } else {
-           /* generic ATMEL view */
-           sprintf(message, "%2u       %02X%02X%02X%02X%02X%02X",
+           /* MAC auth table listing */
+           sprintf(message, " %3u     %02X%02X%02X%02X%02X%02X",
                begin + i, curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
                curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
                curr->addr[4] & 0xFF, curr->addr[5] & 0xFF
@@ -139,9 +128,9 @@ void print_help(char *mess)
 
 void print_helperr(char *mess)
 {
-    wattrset(win_for_help, COLOR_PAIR(4) | A_BOLD);
+    wattrset(win_for_help, COLOR_PAIR(14) | A_BOLD);
     print_help(mess);
-    wattrset(win_for_help, COLOR_PAIR(1));
+    wattrset(win_for_help, COLOR_PAIR(11));
 }
 
 void print_bold(WINDOW *wptr, char *mess)
@@ -199,16 +188,16 @@ void print_top_rssi(char *message_r)
 {
     char message_l[200];
 
-    sprintf(message_l, "%s", VIEW);
+    sprintf(message_l, "%s", "RSSI: ");
     switch (sts_viewtype) {
        case dBm:
-          strcat(message_l, "RSSI in dBm");
+          strcat(message_l, "dBm");
           break;
        case percentage:
-          strcat(message_l, "RSSI in percentage");
+          strcat(message_l, "%");
           break;
        case rawval:
-          strcat(message_l, "RSSI in raw values");
+          strcat(message_l, "raw");
     }
     print_top(message_l, message_r);
 }
@@ -232,7 +221,7 @@ int conv_rssi(int raw_rssi)
 {
     switch (sts_viewtype) {
        case dBm:
-          return (-96 + raw_rssi); 
+          return (dbmconv(raw_rssi)); 
        case percentage:
           return ((int)((minimum (raw_rssi, 40)) * (float)2.5));
        case rawval: