Exemple #1
0
/*-------------------------- Implementation------------------------------*/
void uiClear(Uint8 zone)
{
//    clear();
    switch( zone )
    {
    case ALL:
        wclear(gBodyWin);
        wclear(gFooterWin);
        wclear(gHeaderWin);
        wclear(gStatusWin);
        clear();
        uiRefresh(ALL);
        break;
    case BODY:
        wclear(gBodyWin);
        uiRefresh(BODY);
        break;
    case FOOTER:
        wclear(gFooterWin);
        uiRefresh(FOOTER);
        break;
    case HEADER:
        wclear(gHeaderWin);
        uiRefresh(HEADER);
        break;
    case STATUS:
        wclear(gStatusWin);
        uiRefresh(STATUS);
        break;
    }
}
Exemple #2
0
void uiStatus(Uint8 lvl, const char* format, ...)
{
    short pairs[4] =
    {
        COLOR_PAIR_INFO,
        COLOR_PAIR_WARNING,
        COLOR_PAIR_ERROR,
        COLOR_PAIR_OK
    };

    va_list argList;
    va_start(argList, format);
    char txt[255];
    vsprintf(txt, format, argList);
    va_end(argList);

    short pair = pairs[lvl];

    uiClear(STATUS);

    if( pair != COLOR_PAIR_INFO )
        wattron(gStatusWin, COLOR_PAIR(pair));

    wprintw(gStatusWin, txt);

    if( pair != COLOR_PAIR_INFO )
        wattroff(gStatusWin, COLOR_PAIR(pair));

    uiRefresh(STATUS);
}
Exemple #3
0
Bool updateMenu(struct Menu *mnu)
{
    Bool exit = False;
    uiShowCursor(False);
    int key = getch();
    switch( key )
    {
        case 10:
        case 13:
        case KEY_ENTER:
        {
            // exec menu
            struct MenuEntry* entry = (struct MenuEntry*)
                    lstGet(mnu->menuEntries, mnu->currentPos);
            if(entry && entry->exec)
            {
                exit = entry->exec(entry->text);
                // au cas ou le menu aurait modifier ces valeurs essentielles
                // à un bon rendu
                uiShowCursor(False);
                uiStatus(STATUS_INFO, "");
            }
            break;
        }
        case KEY_DOWN:
            ++mnu->currentPos;
            // wrap
            if( mnu->currentPos > lstCount(mnu->menuEntries) -1 )
                mnu->currentPos = 0;
            break;
        case KEY_UP:
            --mnu->currentPos;
            // wrap
            if( mnu->currentPos < 0 )
                mnu->currentPos = lstCount(mnu->menuEntries) -1;
            break;
        // F1: help
        case KEY_F0+1:
        {
            struct MenuEntry* entry = (struct MenuEntry*)
                lstGet(mnu->menuEntries, mnu->currentPos);
            uiStatus(STATUS_INFO, entry->helpText);
            break;
        }
        case 8: // backspace on windows
        case KEY_ESC:
            exit = True;
            break;
    }
    uiRefresh(ALL);
    uiShowCursor(True);
    return exit;
}
Exemple #4
0
/********
 * main()
 ********/
int main( int argc, char *argv[] )
{
	struct packet  p;
	char          *device;
	int			   sd;
	char 		   buffer[2000];
	int			   bytes_read = 0;
	
	
	/* comprobamos que el usuario es root */
	if( getuid() )
	{
	    printf( "You must be root to run this program\n" );
	    exit(1);	
	}
	
	/* procesamos la línea de comandos */
	processCommandLine( argc, argv, &device );
	
	/* inicializamos el gestor de conexiones */
	cntInitConnections();
	
	/* inicializamos el sniffer */
	sd = initSniffer( device );
	
	/* inicializamos la interfaz de usuario */
	if( uiInit() == -1 )
	{
		printf( "Error inicializando la interfaz de usuario\n" );
		exit(1);
	}
		
	/* bucle principal */
	for(;;)
	{
		/* actualizamos interfaz de usuario */
		if( uiUpdate() == FALSE )
			break;
		
		/* si ha llegado un paquete, lo procesamos en la interfaz de usuario, por ahora */
		if( bytes_read > 0 )
			uiProcessPacket( &p );
		/* refrescamos la interfaz de usuario */
		uiRefresh();
		
		/* leemos un paquete si hay */
		bytes_read = readPacket( sd, buffer, 2000, &p );
	}
	
	/* salimos de la aplicación */
	uiEnd();
	endSniffer( device, sd );
}