Ejemplo n.º 1
0
static void scrollethwin(struct ethtab *table, int direction, unsigned int *idx)
{
	char sp_buf[10];

	sprintf(sp_buf, "%%%dc", COLS - 2);
	wattrset(table->tabwin, STDATTR);
	if (direction == SCROLLUP) {
		if (table->lastvisible != table->tail) {
			wscrl(table->tabwin, 1);
			table->lastvisible = table->lastvisible->next_entry;
			table->firstvisible = table->firstvisible->next_entry;
			(*idx)++;
			wmove(table->tabwin, LINES - 5, 0);
			scrollok(table->tabwin, 0);
			wprintw(table->tabwin, sp_buf, ' ');
			scrollok(table->tabwin, 1);
			printethent(table, table->lastvisible, *idx);
			if (table->lastvisible->type == 1)
				printrates(table, LINES - 5,
					   table->lastvisible);
		}
	} else {
		if (table->firstvisible != table->head) {
			wscrl(table->tabwin, -1);
			table->lastvisible = table->lastvisible->prev_entry;
			table->firstvisible = table->firstvisible->prev_entry;
			(*idx)--;
			wmove(table->tabwin, 0, 0);
			wprintw(table->tabwin, sp_buf, ' ');
			printethent(table, table->firstvisible, *idx);
			if (table->firstvisible->type == 1)
				printrates(table, 0, table->firstvisible);
		}
	}
}
Ejemplo n.º 2
0
static void updateethrates(struct ethtab *table, unsigned long msecs,
			   unsigned int idx)
{
	struct ethtabent *ptmp = table->head;
	unsigned int target_row = 0;

	if (table->lastvisible == NULL)
		return;

	while (ptmp != NULL) {
		if (ptmp->type == 1) {
			rate_add_rate(&ptmp->un.figs.inrate, ptmp->un.figs.inspanbr, msecs);
			ptmp->un.figs.inspanbr = 0;

			rate_add_rate(&ptmp->un.figs.outrate, ptmp->un.figs.outspanbr, msecs);
			ptmp->un.figs.outspanbr = 0;

			if ((ptmp->index >= idx)
			    && (ptmp->index <= idx + LINES - 5)) {
				wattrset(table->tabwin, HIGHATTR);
				target_row = ptmp->index - idx;
				printrates(table, target_row, ptmp);
			}
		}
		ptmp = ptmp->next_entry;
	}
}
Ejemplo n.º 3
0
static void
printies(const u_int8_t *vp, int ielen, int maxcols)
{
	while (ielen > 0) {
		switch (vp[0]) {
		case IEEE80211_ELEMID_SSID:
			if (vflag)
				printssid(" SSID", vp, 2+vp[1], maxcols);
			break;
		case IEEE80211_ELEMID_RATES:
		case IEEE80211_ELEMID_XRATES:
			if (vflag)
				printrates(vp[0] == IEEE80211_ELEMID_RATES ?
				    " RATES" : " XRATES", vp, 2+vp[1], maxcols);
			break;
		case IEEE80211_ELEMID_DSPARMS:
			if (vflag)
				printf(" DSPARMS<%u>", vp[2]);
			break;
		case IEEE80211_ELEMID_COUNTRY:
			if (vflag)
				printcountry(" COUNTRY", vp, 2+vp[1], maxcols);
			break;
		case IEEE80211_ELEMID_ERP:
			if (vflag)
				printf(" ERP<0x%x>", vp[2]);
			break;
		case IEEE80211_ELEMID_VENDOR:
			if (iswpaoui(vp))
				printwpaie(" WPA", vp, 2+vp[1], maxcols);
			else if (iswmeinfo(vp))
				printwmeinfo(" WME", vp, 2+vp[1], maxcols);
			else if (iswmeparam(vp))
				printwmeparam(" WME", vp, 2+vp[1], maxcols);
			else if (vflag)
				printie(" VEN", vp, 2+vp[1], maxcols);
			break;
		case IEEE80211_ELEMID_RSN:
			printrsnie(" RSN", vp, 2+vp[1], maxcols);
			break;
		default:
			if (vflag)
				printie(iename(vp[0]), vp, 2+vp[1], maxcols);
			break;
		}
		ielen -= 2+vp[1];
		vp += 2+vp[1];
	}
}
Ejemplo n.º 4
0
static void updateethrates(struct ethtab *table, int unit, time_t starttime,
			   time_t now, unsigned int idx)
{
	struct ethtabent *ptmp = table->head;
	unsigned int target_row = 0;

	if (table->lastvisible == NULL)
		return;

	while (ptmp != NULL) {
		if (ptmp->type == 1) {
			ptmp->un.figs.past5 = 1;
			if (unit == KBITS) {
				ptmp->un.figs.inrate = ((float)
							(ptmp->un.figs.
							 inspanbr * 8 / 1000)) /
				    ((float) (now - starttime));
				ptmp->un.figs.outrate = ((float)
							 (ptmp->un.figs.
							  outspanbr * 8 /
							  1000)) /
				    ((float) (now - starttime));
			} else {
				ptmp->un.figs.inrate =
				    ((float) (ptmp->un.figs.inspanbr / 1024)) /
				    ((float) (now - starttime));
				ptmp->un.figs.outrate =
				    ((float) (ptmp->un.figs.outspanbr / 1024)) /
				    ((float) (now - starttime));
			}
			if ((ptmp->index >= idx)
			    && (ptmp->index <= idx + LINES - 5)) {
				wattrset(table->tabwin, HIGHATTR);
				target_row = ptmp->index - idx;
				printrates(table, target_row, ptmp);
			}
			ptmp->un.figs.inspanbr = ptmp->un.figs.outspanbr = 0;
		}
		ptmp = ptmp->next_entry;
	}
}