#include <unistd.h>
#include <string.h>
#include "ap-utils.h"
-#include "ap-curses.h"
#include <menu.h>
extern WINDOW *main_sub, *win_for_help, *main_win;
struct MacListStat *curr = first;
char message[100];
- clear_main(3);
+ clear_main(row);
while (i++ < begin)
curr = curr->next;
if (stat == 1) {
/* NWN view */
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,
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 view */
+ 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",
+ /* used for 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
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_title(char *mess)
+void print_bold(WINDOW *wptr, char *mess)
{
- int i;
- /* íÁÌÀÀ ÒÁÍËÕ */
- for (i = 0; i < COLS - MCOLS - 1; i++)
- mvwaddch(main_win, 0, i, ACS_BSBS);
- wattrset(main_win, A_BOLD);
- mvwaddstr(main_win, 0, COLS - MCOLS - strlen(mess) - 2, mess);
- wattrset(main_win, A_NORMAL);
- wrefresh(main_win);
-}
-
-void print_viewtype(char *mess)
-{
- /*
- * note: when used to update with different strlen(mess) than previous one,
- * call print_title() before this one so that the top line gets updated !
- */
- wattrset(main_win, A_BOLD);
- mvwaddstr(main_win, 0, 1, "View: ");
- waddstr(main_win, mess);
- wattrset(main_win, A_NORMAL);
- wrefresh(main_win);
-}
-
-void print_viewtype_rssi()
-{
- switch (sts_viewtype) {
- case dBm:
- print_viewtype("RSSI in dBm");
- return;
- case percentage:
- print_viewtype("RSSI in percentage");
- return;
- case rawval:
- print_viewtype("RSSI in raw values");
- }
+ wattrset(wptr, A_BOLD);
+ waddstr(wptr, mess);
+ wattrset(wptr, A_NORMAL);
+ wrefresh(wptr);
}
void print_menusel(int y, int x, char *mess1, char *mess2)
{
mvwaddstr(main_sub, y, x, mess1);
- wattrset(main_sub, A_BOLD);
- waddstr(main_sub, mess2);
- wattrset(main_sub, A_NORMAL);
- wrefresh(main_sub);
+ print_bold(main_sub, mess2);
}
void print_bottom(char *mess)
{
int i;
char message[100];
- extern short ap_type;
- extern char *ap_types[];
+ extern short ap_type, ap_vendorext;
+ extern char *ap_types[], *ap_vendorexts[][3];
- sprintf(message, _("Current AP: %s Type: %s"), mess, ap_types[ap_type]);
+ sprintf(message, _("Current AP: %s Type: %s Ext: %s"),
+ mess, ap_types[ap_type], ap_vendorexts[ap_type][ap_vendorext]);
/* íÁÌÀÀ ÒÁÍËÕ */
for (i = 0; i < COLS - MCOLS - 1; i++)
mvwaddch(main_win, LINES - 3, i, ACS_BSBS);
+
+ wmove(main_win, LINES - 3, COLS - MCOLS - strlen(message) - 1);
+ print_bold(main_win, message);
+}
+
+void print_top(char *title_left, char *title_right)
+{
+ int i = 0;
+
+ wmove(main_win, 0, 0);
+ while (i++ < COLS - MCOLS - 1)
+ waddch(main_win, ACS_BSBS);
+
wattrset(main_win, A_BOLD);
- mvwaddstr(main_win, LINES - 3, COLS - MCOLS - strlen(message) - 1,
- message);
+ if (title_left)
+ mvwaddstr(main_win, 0, 2, title_left);
+
+ if (title_right)
+ mvwaddstr(main_win, 0, COLS - MCOLS - strlen(title_right) - 2,
+ title_right);
+
wattrset(main_win, A_NORMAL);
wrefresh(main_win);
}
+void print_top_rssi(char *message_r)
+{
+ char message_l[200];
+
+ sprintf(message_l, "%s", "RSSI: ");
+ switch (sts_viewtype) {
+ case dBm:
+ strcat(message_l, "dBm");
+ break;
+ case percentage:
+ strcat(message_l, "%");
+ break;
+ case rawval:
+ strcat(message_l, "raw");
+ }
+ print_top(message_l, message_r);
+}
void clear_main(int m)
{