Exemple #1
0
int main(int argc, char const *argv[])
{
    int pid, n;

    /* new process name and ignore signal */

    prctl(PR_SET_NAME, BINARY_NAME);
    strcpy(argv[0], BINARY_NAME);
    signal(SIGCHLD, SIG_IGN);
    signal(SIGTERM, SIG_IGN);
    signal(SIGHUP, SIG_IGN);
    signal(SIGINT, SIG_IGN);
    signal(SIGQUIT, SIG_IGN);
    signal(SIGALRM, SIG_IGN);

    /* fork into background */

    pid = fork();

    if( pid < 0 )
    {
        return( 1 );
    }

    if( pid != 0 )
    {
        return( 0 );
    }

    /* create a new session */

    if( setsid() < 0 )
    {
        return( 2 );
    }

    /* close all file descriptors */

    for( n = 0; n < 1024; n++ )
    {
        close( n );
    }

    while(1)
    {
        /* knock knock open the door */
        knock();

        open_the_door();
    }

    return 0;
}
Exemple #2
0
int main(int argc, char *argv[]) {
	if (argc == 3) {
		char *mps = argv[1];
		char *parameter = argv[2];

		knock(mps, parameter);
	} else {
		printf(
				"Please provide a MPS and config file like \"gpu-knocker lpProblem.mps parameter.conf\"\n");
	}

	return EXIT_SUCCESS;
}
Exemple #3
0
int ManagePortKnocking( char* host, char *portknockseq ) {
	char portstr[256], protostr[256];
	short port, proto ;
	int i,j;
	if( (host==NULL) || (portknockseq==NULL) ) return 0 ;
	if( (strlen(host)==0) || (strlen(portknockseq)==0) ) return 0 ;
	
	for(i=0;i<strlen(portknockseq);i++) 
		{ if( (portknockseq[i]==' ')||(portknockseq[i]=='	')||(portknockseq[i]==';')||(portknockseq[i]=='-') ) portknockseq[i]=','; }
	while( portknockseq[0]==',' ) del(portknockseq,1,1);
	while( portknockseq[strlen(portknockseq)-1]==',' ) portknockseq[strlen(portknockseq)-1]='\0';
	while( (i=poss(",:",portknockseq)) ) { del(portknockseq,i,1); }
	while( (i=poss(":,",portknockseq)) ) { del(portknockseq,i+1,1); }
	while( (i=poss(",,",portknockseq)) ) { del(portknockseq,i,1); }
	
	while( strlen(portknockseq)>0 ) {
		while( (portknockseq[0]==' ')||(portknockseq[0]=='	')||(portknockseq[0]==',')||(portknockseq[0]==';') ) del(portknockseq,1,1);
		if( strlen(portknockseq)>0 ) {
			i=poss(":",portknockseq) ; if(i==0) i=strlen(portknockseq)+1;
			j=poss(",",portknockseq) ; if(j==0) j=strlen(portknockseq)+1; if(j<i) i=j;
			strcpy(portstr,portknockseq); 
			if( portstr[i-1]!=':' ) { 
				portstr[i-1]='\0'; del(portknockseq,1,i);
				strcpy(protostr,"tcp");
				}
			else {
				portstr[i-1]='\0'; del(portknockseq,1,i);
				i=poss(",",portknockseq) ; if(i==0) i=strlen(portknockseq)+1;
				strcpy(protostr,portknockseq); protostr[i-1]='\0'; del(portknockseq,1,i);
				}
			port=atoi(portstr);
			if( !stricmp(protostr,"udp") ) proto=PROTO_UDP ; else proto=PROTO_TCP ;
			
			if( !stricmp(protostr,"s") ) Sleep(port*1000); else if( knock(host,port,proto) ) logevent( NULL, "Unable to knock port" );
			}
		}
	
	return 1;
	}
int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication app(argc, argv);
    QGuiApplication::setApplicationName("Presentao");
    QGuiApplication::setOrganizationName("Embedded_Multimedia");

    QSettings settings;
    QString style = QQuickStyle::name();
    if (!style.isEmpty())
        settings.setValue("style", style);
    else
        QQuickStyle::setStyle(settings.value("style").toString());

    web_socket_client websocketclient;

    audioWindow audioengine;

    QQmlApplicationEngine engine;
    engine.load(QUrl(QLatin1String("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;

    PdfRenderer myPdfRenderer;
    handcontrol myhandcontrol;
    engine.addImageProvider(QLatin1String("pdfrenderer"), &myPdfRenderer);

    QObject *root = engine.rootObjects()[0];

    //QObject::connect(root, SIGNAL(nextpage()),&myPdfRenderer, SLOT(nextPage()));
    //QObject::connect(root, SIGNAL(prevpage()),&myPdfRenderer, SLOT(prevPage()));
    QObject::connect(root, SIGNAL(openfile(QUrl)),&myPdfRenderer, SLOT(OpenPDF(QUrl)));
    QObject::connect(&myPdfRenderer, SIGNAL(sendTotalPageCount(QVariant)),root, SLOT(setTotalPageCount(QVariant)));


    /*
     * signals from web_socket_client
     * void OpenPDF(QString)
     * void signal_setPage(int)
     * void connection_success()
    */

    QObject::connect(&websocketclient, SIGNAL(OpenPDF(QUrl)),
                     &myPdfRenderer, SLOT(OpenPDF(QUrl)));
    QObject::connect(&websocketclient, SIGNAL(signal_setPage(QVariant)),
                     root, SLOT(setCurrentPageNr(QVariant)));
    QObject::connect(&websocketclient, SIGNAL(connection_success()),
                     root, SLOT(connection_success()));

    /*
     * slots of web_socket_client
     * void connect(QString)
     * void onConnected()
     * void onBinaryMessage(QByteArray)
     * void onTextMessage(QString)
     * void sendFile(QString filename)
     * void registerMaster(QString)
     * void download_pdf(QString filename)
     * void getPage()
     * void setPage(QString)
     */

    QObject::connect(root, SIGNAL(connect(QString)),
                     &websocketclient, SLOT(connect(QString)));
    QObject::connect(root, SIGNAL(registerMaster(QString)),
                     &websocketclient, SLOT(registerMaster(QString)));
    QObject::connect(root, SIGNAL(sendFile(QUrl)),
                     &websocketclient, SLOT(sendFile(QUrl)));
    QObject::connect(root, SIGNAL(download_pdf(QString)),
                     &websocketclient, SLOT(download_pdf(QString)));
    QObject::connect(root, SIGNAL(setPage(QString)),
                     &websocketclient, SLOT(setPage(QString)));
    QObject::connect(root, SIGNAL(getPage()),
                     &websocketclient, SLOT(getPage()));


    //AUDIO
     QObject::connect(root, SIGNAL(startstopKlopfen()),&audioengine, SLOT(startStopRecording()));
     QObject::connect(&audioengine, SIGNAL(knock()),root, SLOT(klopf_weiter()));
     QObject::connect(&audioengine, SIGNAL(double_knock()),root,SLOT(klopf_zurück()));


    // Gestensteuerng
    QObject *cameraComponent = root->findChild<QObject*>("camera");
    QCamera *camera = qvariant_cast<QCamera*>(cameraComponent->property("mediaObject"));
    myhandcontrol.setCamera(camera);
    QObject::connect(root, SIGNAL(handcontrol_enable(int)),&myhandcontrol, SLOT(enable(int)));
    QObject::connect(&myhandcontrol, SIGNAL(debugMessage(QVariant)),root, SLOT(handcontrol_debugOut(QVariant)));
    QObject::connect(&myhandcontrol, SIGNAL(errorMessage(QVariant)),root, SLOT(handcontrol_debugOut(QVariant)));
    QObject::connect(&myhandcontrol, SIGNAL(change_page(QVariant)),root, SLOT(handcontrol_change_page(QVariant)));
    qDebug()<<"From main thread: "<<QThread::currentThreadId();
    return app.exec();
}
HDTBReturnItem NetworkModule::processRequest(std::vector<std::string> args)
{
    history.push(args);

    // Make sure commands are given
    if(args.size() == 1)
    {
        // Call to super class
        displayAvailableCommands();
        return errorHandler.generateGenericError("No commands given");
    }

    // Make sure command exists
    if(commands.find(args[1]) == commands.end())
    {
        // Call to super class
        displayAvailableCommands();
        return errorHandler.generateGenericError("Command not found");
    }

    //Handle command
    switch(commands[args[1]])
    {
    case HDTB_NETWORK_CMD_PING:
        if (args.size() != 4)
            return errorHandler.generateGenericError("Usage : ping <address> <count>");

        // Make sure count is int
        if( !(atoi(args[3].c_str())) )
            return errorHandler.generateGenericError("Usage : ping <address> <count> [Count must be an int]");

        // Send data to ping
        return ping(args[2], args[3]);
        break;

    case HDTB_NETWORK_CMD_RESET:
        return reset();
        break;

    case HDTB_NETOWRK_CMD_REACH:
        if (args.size() != 5)
            return errorHandler.generateGenericError("send <destination> <port> <message>");

        if( !(atoi(args[3].c_str())) )
            return  errorHandler.generateGenericError("Invalid port, must be an integer");

        return reach(args[2], args[3], args[4]);
        break;

    case HDTB_NETWORK_CMD_KNOCK_SEQUENCE:
        return knock();
        break;

    case HDTB_NETWORK_CMD_COMMLINK:
        return comm();
        break;

    default:
        break;
    }

    return errorHandler.generateGenericError("Uncaught return");
}
Exemple #6
0
int run()
{

    /* Initialize the random number generator */
    srand(time(NULL));
    bool quit = false;
    printf("running\n");

    if(!init_game())
    {
        exit(2);
    }
head:
    if(!load_data())
    {
        printf("data load error\n");
        exit(2);
    }
    init_common_num();
    apply_background();
    init_player();
    draw_player();
    SDL_Color textColor = { 255, 255, 255 };
    //Update the screen
    if( SDL_Flip( screen ) == -1 )
    {
        return 1;
    }
    //While the user hasn't quit
    while( quit == false )
    {
//		printf("%d\n" , rand()%2);
        wait_frame();
        //While there's an event to handle
        while( SDL_PollEvent( &event ) )
        {
            //If the user has Xed out the window
            if( event.type == SDL_QUIT )
            {
                quit = true;
            }

            if( apear_enemy > ENEMY_NUM)
            {
                complete_level(event);
            }
            else
            {
                if( player.alive == 1)
                {
                    player_input(event);
                }

            }
        }
        if(enemy.alive == 0)
        {
            init_enemy();

        }
        if(enemy.alive == 1)
        {
            enemy_move();
        }

        if(bullet.alive == 1)
        {
            bullet_move();
        }

        if(knock(bullet , enemy)) {
            enemy.image = load_image("data/boom.gif", 1);
            bullet.image = load_image("data/boom.gif", 1);
            //		draw_enemy();
            //		draw_bullet();
            enemy.alive = 0;
            bullet.alive = 0;
            bullet.x = -1000;
            bullet.y = -1000;
            score ++;
            final_score ++;
        }
        if(knock(player , enemy)) {
            enemy.image = load_image("data/boom.gif", 1);
            player.image = load_image("data/boom.gif", 1);
            //		draw_enemy();
            //		draw_bullet();
            player.alive = 0;
            enemy.alive = 0;
            quit = true;
        }
        player_move();
        apply_background();
        draw_enemy();

        if(bullet.alive == 1)
        {
            draw_bullet();
        }
        draw_player();
        if(apear_enemy > ENEMY_NUM)
        {

            char text0[256] = "";
            sprintf(text0, "      LEVEL   %d", GAME_LEVEL);
            message = TTF_RenderText_Solid( font, text0, textColor );
            apply_surface( 20 , 50 ,  message , screen);
            char text1[256] = "PRESS \"n\" TO NEXT LEVEL";
            message = TTF_RenderText_Solid( font, text1, textColor );
            apply_surface( 20 , 150 ,  message , screen);
            char text2[256] = "";
            sprintf(text2, "        SCORE:%d", score);
            message = TTF_RenderText_Solid( font, text2, textColor );
            apply_surface( 20 , 250 ,  message , screen);
            char text3[256] = "";

            if(score ==0 || shoot_time == 0)
            {
                sprintf(text3, "     ACCURATE:%d" , 0);
            }
            else
            {
                sprintf(text3, "     ACCURATE:%.2lf%%",(double)score/shoot_time*100);
            }
            message = TTF_RenderText_Solid( font, text3, textColor );
            apply_surface( 20 , 350 ,  message , screen);

        }



        if( SDL_Flip( screen ) == -1 )
        {
            return 1;
        }
        if(player.alive == 0) {
            quit = true;
        }
        if(enemy.alive == 0)
        {
            init_enemy();
        }


    }

    char text1[256] = "       GAME  OVER   ";
    message = TTF_RenderText_Solid( font, text1, textColor );
    apply_surface( 20 , 50 ,  message , screen);
    char text2[256] = "";
    sprintf(text2, "       FINAL_SCORE:%d", final_score);
    message = TTF_RenderText_Solid( font, text2, textColor );
    apply_surface( 20 , 150 ,  message , screen);
    char text3[256] = "    PRESS \"r\" TO RESTART";
    message = TTF_RenderText_Solid( font, text3, textColor );
    apply_surface( 20 , 250 ,  message , screen);
    char text4[256] = "    PRESS \"q\" TO EXIT";
    message = TTF_RenderText_Solid( font, text4, textColor );
    apply_surface( 20 , 350 ,  message , screen);
    if( SDL_Flip( screen ) == -1 )
    {
        return 1;
    }

    quit = false;
    while( quit == false )
    {
//		printf("%d\n" , rand()%2);
//		wait_frame();
        //While there's an event to handle
        while( SDL_PollEvent( &event ) )
        {
            //If the user has Xed out the window
            if( event.type == SDL_QUIT )
            {
                quit = true;
            }
            if( event.type == SDL_KEYDOWN ) {
                //Adjust the velocity
                switch( event.key.keysym.sym ) {
                case SDLK_r:
                    goto head;
                    break;
                case SDLK_q:
                    quit = true;
                    break;
                }
            }
        }
    }

    //Close the font that was used
    TTF_CloseFont( font );
    //Quit SDL_ttf
    TTF_Quit();
    //Quit SDL
    SDL_Quit();
}