Exemplo n.º 1
0
int main(void)
{
    // Parse queries.
    FILE *fp;

    qentry_t *req = qcgireq_parse(NULL, 0);

    // Get ID 
    char *id = (char *)req->getstr(req, "id", false);
    if (id == NULL) id = "(nothing)";

    // Get PW
    char *pw = (char *)req->getstr(req, "pw", false);
    if (pw == NULL) pw = "(nothing)";

    // Print out
    qcgires_setcontenttype(req, "text/html");
    fp = fopen("../config.html", "r");
    while(!feof(fp))
    {
		char	buf[1024];

		if (fgets(buf, sizeof(buf), fp) != 0)
			puts(buf);
	}

	fclose(fp);
    // De-allocate memories
    req->free(req);
    return 0;
}
Exemplo n.º 2
0
int main(void){
    pci_init();
#ifdef ENABLE_FASTCGI
    while(FCGI_Accept() >= 0) {
#endif
    qentry_t *req = qcgireq_parse(NULL, 0);
    
    char *name  = req->getstr(req, "username", true);
    if(name == NULL){
        qcgires_redirect(req, BAD_REGISTER);
        goto end;
    }

    char *admin = req->getstr(req, "adminpassword", true);
    if(admin == NULL){
    	qcgires_redirect(req, BAD_REGISTER);
    	free(name);
    	goto end;
    }

    if(strncmp(admin, ADMIN_SECRET, strlen(ADMIN_SECRET)) != 0){
    	fprintf(stderr, "%s%s\n", "Invalid Registration Attempt: ", admin);
    	qcgires_redirect(req, BAD_REGISTER);
    	free(name);
    	free(admin);
    	goto end;
    }

    if( create_user(name) == 1 ){   	
    	/* Log the User in */
    	qentry_t *sess = NULL;
		sess = qcgisess_init(req, NULL);
        qcgisess_settimeout(sess, SESSION_TIME);
		if(sess){
            sess->putstr(sess, "username", name, true);
            qcgisess_save(sess);
            sess->free(sess);            
        } 
        qcgires_redirect(req, APPLICATION);
    }else{
    	fprintf(stderr, "%s%s\n", "Could not create user: "******"text/html");
    // De-allocate memories
    req->free(req);
#ifdef ENABLE_FASTCGI
    }
#endif
    return 0;
}
Exemplo n.º 3
0
int main(void)
{
#ifdef ENABLE_FASTCGI
    while(FCGI_Accept() >= 0) {
#endif
    qentry_t *req = qcgireq_parse(NULL, 0);

    // fetch queries
    time_t expire = (time_t)req->getint(req, "expire");
    char *mode  = req->getstr(req, "mode", false);
    char *name  = req->getstr(req, "name", false);
    char *value = req->getstr(req, "value", false);

    // start session.
    qentry_t *sess = qcgisess_init(req, NULL);

    // Mose case, you don't need to set timeout. this is just example
    if (expire > 0) qcgisess_settimeout(sess, expire);

    if (mode) {
        switch (mode[0]) {
            case 's': // set
                req->putstr(sess, name, value, true);
                break;
            case 'r': // remove
                req->remove(sess, name);
                break;
            case 'd': // destroy
                qcgisess_destroy(sess);
                qcgires_setcontenttype(req, "text/plain");
                printf("Session destroyed.\n");
#ifdef ENABLE_FASTCGI
                continue;
#else
                return 0;
#endif
            case 'v': // view
            default:
                break;
        }
    }
    // screen out
    qcgires_setcontenttype(req, "text/plain");
    req->print(sess, stdout, true);

    // save session & free allocated memories
    qcgisess_save(sess);
    sess->free(sess);
    req->free(req);
#ifdef ENABLE_FASTCGI
    }
#endif
    return 0;
}
Exemplo n.º 4
0
  /**
   * Creates a CGIBase class using querystring
   * @param querystring querystring set QUERY_STRING of envronment
   */
  explicit CGIBaseImpl(const std::string &querystring)
    : header_(new HttpHeader()), output_(new Outputter()) {
    if (!querystring.empty()) {
      std::string uri(static_cast<std::string>(__FILE__));
      uri += "?";
      uri += querystring;

      setenv("QUERY_STRING", querystring.c_str(), true);
      setenv("REQUEST_METHOD", "GET", true);
      setenv("REQUEST_URI", uri.c_str(), true);
    }
    preq_ = qcgireq_parse(NULL, static_cast<Q_CGI_T>(Q_CGI_GET));
  }
Exemplo n.º 5
0
int main(void)
{
    // Parse (COOKIE/GET/POST) queries.
    qentry_t *req = qcgireq_parse(NULL, 0);
    qcgires_setcontenttype(req, "text/html");

    printf("Your order : ");
    qentobj_t obj;
    memset((void *)&obj, 0, sizeof(obj)); // must be cleared before call
    while (req->getnext(req, &obj, "checklist", false) == true) {
        printf("<b>%s</b> \n", (char *)obj.data);
    }

    req->free(req);
    return 0;
}
Exemplo n.º 6
0
 /**
  * Creates a CGIBase class using method
  * @param method The Method to get from cgi
  */
 explicit CGIBaseImpl(Method method)
   : header_(new HttpHeader()), output_(new Outputter()) {
   Q_CGI_T qmethod;
   switch (method) {
     case CGIBase::kMethodAll:
       qmethod = Q_CGI_GET;
       break;
     case CGIBase::kMethodPost:
       qmethod = Q_CGI_POST;
       break;
     case CGIBase::kMethodCookie:
       qmethod = Q_CGI_COOKIE;
       break;
     default:
       qmethod = static_cast<Q_CGI_T>(Q_CGI_POST | Q_CGI_GET);
       break;
   }
   preq_ = qcgireq_parse(NULL, qmethod);
 }
Exemplo n.º 7
0
int main(void)
{
#ifdef ENABLE_FASTCGI
    while(FCGI_Accept() >= 0) {
#endif
    // Parse queries.
    qentry_t *req = qcgireq_parse(NULL, 0);

    // Get values
    char *value = (char *)req->getstr(req, "query", false);
    if (value == NULL) value = "(nothing)";

    // Print out
    qcgires_setcontenttype(req, "text/html");
    printf("You entered: <b>%s</b>\n", value);

    // De-allocate memories
    req->free(req);
#ifdef ENABLE_FASTCGI
    }
#endif
    return 0;
}
Exemplo n.º 8
0
int IOT_SecurityMode(qentry_t *pReq) 
{
		int STOP=FALSE;		
		int res;
		int serialFD = open_port(MODEM);
		char buf[BUFSIZE];
		//memset(buf,0,BUFSIZE);

		// Parse queries.
		qentry_t *req = qcgireq_parse(NULL, 0);

		// Get values
		char *value = (char *)req->getstr(req, "cmd", false);
		if (strcmp(value, "state") == 0)
		{
				write(serialFD, "AT#EMSE?\r" , strlen("AT#EMSE?\r"));
				while (STOP==FALSE) {

						res = read(serialFD,buf,255);
						buf[res]=0;
						//printf("%s:%d\n", buf, res);
						if (strstr(buf, "OK") != NULL) {
								STOP=TRUE;
								qcgires_setcontenttype(req, "text/xml");
								printf("<data>\n");
								printf("<res>OK</res>\n");
								printf("<text>%s</text>\n", buf);
								printf("</data>");
						}
						else if (strstr(buf, "ERROR") != NULL) {
								STOP=TRUE;
								qcgires_setcontenttype(req, "text/xml");
								printf("<data>\n");
								printf("<res>ERROR</res>\n");
								printf("<text>%s</text>\n", buf);
								printf("</data>\n");
						}
						
				}

		} else if (strcmp(value, "set") == 0) {

				char *integrity = req->getstrf(req, false, "integrity");
				char *ciphering = req->getstrf(req, false, "ciphering");
				char *fakesecurity = req->getstrf(req, false, "fakesecurity");
				
				char command[100];
				sprintf(command, "AT#EMSE=%s,%s,%s\r", integrity, ciphering, fakesecurity);
				write(serialFD, command, strlen(command));
				while (STOP==FALSE) {

						res = read(serialFD,buf,255);
						buf[res]=0;
						//printf("%s:%d\n", buf, res);
						if (strstr(buf, "OK") != NULL) {
								STOP=TRUE;
								qcgires_setcontenttype(req, "text/xml");
								printf("<data>\n");
								printf("<res>OK</res>\n");
								printf("<command>%s</command>\n", command);
								printf("<text>%s</text>\n", buf);
								printf("</data>");
						}
						else if (strstr(buf, "ERROR") != NULL) {
								STOP=TRUE;
								qcgires_setcontenttype(req, "text/xml");
								printf("<data>\n");
								printf("<command>%s</command>\n", command);
								printf("<res>ERROR</res>\n");
								printf("<text>%s</text>\n", buf);
								printf("</data>\n");
						}

				}

		}
		close(serialFD);
		return 0;
}
Exemplo n.º 9
0
int main(void){
    pci_init();
#ifdef ENABLE_FASTCGI
    while(FCGI_Accept() >= 0) {
#endif
    qentry_t *req = qcgireq_parse(NULL, 0);
    char * username = NULL; 

    qentry_t *sess = NULL;
	sess = qcgisess_init(req, NULL);
    qcgisess_settimeout(sess, SESSION_TIME);
	if(sess == NULL){
		qcgires_redirect(req, LOGIN);
		qcgisess_save(sess);
		goto end;
	} 

	username =  sess->getstr(sess, "username", true);
	sess->putstr(sess, "username", username, true);
    qcgisess_save(sess);

    if(username == NULL){
        fprintf(stderr, "%s\n", "Session expired");
        qcgires_redirect(req, LOGIN);
        qcgisess_save(sess);
        goto end;  
    }
    

    char * message = NULL;
    char * targetUser = NULL;
    message = req->getstr(req, "message", true);
    targetUser = req->getstr(req, "user", true);

    if(message == NULL || targetUser == NULL){
        free(username);
    	if(message != NULL) free(message);
    	if(targetUser != NULL) free(targetUser);
    	goto end;
    }

    int success = updateConversation(username, targetUser, message);
    if(success == 0) qcgires_redirect(req, BAD_TALK);
    else qcgires_redirect(req, APPLICATION);

    free(username);
    free(message);
    free(targetUser);


    // De-allocate memories
    end:
    qcgires_setcontenttype(req, "text/html");
    if(sess){
    	sess->free(sess); 
    }
    req->free(req);
#ifdef ENABLE_FASTCGI
    }
#endif
    return 0;
}
Exemplo n.º 10
0
 /**
  * default constructor
  */
 CGIBaseImpl() : header_(new HttpHeader()), output_(new Outputter()) {
   preq_ = qcgireq_parse(NULL, static_cast<Q_CGI_T>(Q_CGI_POST | Q_CGI_GET));
 }
Exemplo n.º 11
0
int main( int argc, char **argv )
{
    char            *value                  = NULL;
    char            *token                  = NULL;

    int             cnv_value               = 0;
    long            cnv_long                = 0;
    unsigned short  speed                   = 0;
    unsigned char   trans                   = 0;
    unsigned char * sat                     = NULL;

    int             brake[BRAKE_BAS]        = { 0, };
    int             brake_check             = 0;
    unsigned char   brake_sum               = 0;
    unsigned char   brake_tcs               = 0;
    unsigned char   brake_abs               = 0;
    unsigned char   brake_scs               = 0;
    unsigned char   brake_bba               = 0;
    unsigned char * brake_value[BRAKE_SIZE] = { 0, };

    unsigned short  size_width              = 0;
    unsigned short  size_length             = 0;

    qentobj_t       obj;

    char            buff[BUFF_SIZE]         = { 0, };
    size_t          size                    = 0;

    unsigned char   psid[3]                 = { 0, };
    int i = 0;

    /* parse queries. */
    qentry_t *req = qcgireq_parse( NULL, 0 );

    /* debug */
    qcgires_setcontenttype( req, "text/plain" );

    /* get value */
    //-- msgID --//
    value = (char *)req->getstr( req, "msgid", false );
    cnv_value = atoi( value );
    bsm.msgid = (unsigned char)cnv_value;
    
    //-- blob.msgcnt --//
    value = (char *)req->getstr( req, "msgcnt", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, ONE_BYTE );

    //-- blob.id(ip addres) --//
    value = (char *)req->getstr( req, "id", false );
    token = strtok( value, ". " );
    if( token == NULL )
    {
        cnv_value = 0;
        bsm_blob_converter( (unsigned char *)&cnv_value, FOUR_BYTE );
    }
    else
    {
        while( token != NULL )
        {
            cnv_value = atoi( token );
            bsm_blob_converter( (unsigned char *)&cnv_value, ONE_BYTE );
            token = strtok( NULL, ". " );
        }
    }
   
    //-- blob.secmark --//
    value = (char *)req->getstr( req, "secmark", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, TWO_BYTE );
    
    //-- blob.latitude --//
    value = (char *)req->getstr( req, "latitude", false );
    cnv_long = atol( value );
    bsm_blob_converter( (unsigned char *)&cnv_long, FOUR_BYTE );

    //-- blob.longitude --//
    value = (char *)req->getstr( req, "longitude", false );
    cnv_long = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_long, FOUR_BYTE );

    //-- blob.elevation --//
    value = (char *)req->getstr( req, "elevation", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, TWO_BYTE );

    //-- blob.accuracy --//
    value = (char *)req->getstr( req, "major", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, ONE_BYTE );

    value = (char *)req->getstr( req, "minor", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, ONE_BYTE );

    value = (char *)req->getstr( req, "orientation", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, TWO_BYTE );

    //-- blob.speed and transmission --//
    value = (char *)req->getstr( req, "speed", false );
    speed = atoi( value );

    value = (char *)req->getstr( req, "transmission", false );
    trans = atoi( value );

    speed_and_trans( (unsigned char *)&speed, (unsigned char *)&trans );

    //-- blob.heading --//
    value = (char *)req->getstr( req, "heading", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, TWO_BYTE );

    //-- blob.steering wheel --//
    value = (char *)req->getstr( req, "steering", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, ONE_BYTE );


    //-- blob.accel set --//
    value = (char *)req->getstr( req, "longitudinal", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, TWO_BYTE );

    value = (char *)req->getstr( req, "lateral", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, TWO_BYTE );

    value = (char *)req->getstr( req, "vertical", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, ONE_BYTE );

    value = (char *)req->getstr( req, "raw_rate", false );
    cnv_value = atoi( value );
    bsm_blob_converter( (unsigned char *)&cnv_value, TWO_BYTE );

    //-- blob.brake data --//
    memset( (void *)&obj, 0, sizeof( obj ) );
    brake_check = 0;
    brake_sum   = 0;

    while( req->getnext( req, &obj, "checklist_brake", false ) == true )
    {
        brake[brake_check] = atoi( (char *)obj.data );
        brake_sum += brake[brake_check];
        brake_check++;
    }
    brake_value[0] = (unsigned char *)&brake_sum;

    value = (char *)req->getstr( req, "tcs", false );
    brake_tcs = atoi( value );
    brake_value[1] = (unsigned char *)&brake_tcs;

    value = (char *)req->getstr( req, "abs", false );
    brake_abs = atoi( value );
    brake_value[2] = (unsigned char *)&brake_abs;

    value = (char *)req->getstr( req, "scs", false );
    brake_scs = atoi( value );
    brake_value[3] = (unsigned char *)&brake_scs;

    value = (char *)req->getstr( req, "bba", false );
    brake_bba = atoi( value );
    brake_value[4] = (unsigned char *)&brake_bba;

    brake_data( brake_value );

    //-- blob.size width/length --//
    value = (char *)req->getstr( req, "size_width", false );
    size_width = atoi( value ) << 4;

    value = (char *)req->getstr( req, "size_length", false );
    size_length = atoi( value );
    
    size_converter( (unsigned char *)&size_width, (unsigned char *)&size_length );

//    display_bsm();

    size = request_encode( INP_DER, &bsm, buff, BUFF_SIZE );

    printf( "-------------------------------------------------------------------------------\n" );
    printf( "bsm incoding data( %d )\n", size );
    for( i = 0; i < size; i++ )
    {
        if( (i % 16) == 0 ) printf( "\n" );
        printf(" %02x ", buff[i] );
    }
    printf( "\n" );


    psid[0] = 0xC0;
    psid[1] = 0x03;
    psid[2] = 0x05;
    
    WSM_WaveShortMessage_request( psid, buff, size );

//    request_decode( OUT_DER, buff, size );

    /* de-allocate memories */
    req->free( req );

    return 0;
}
Exemplo n.º 12
0
int main(void){
    pci_init();
#ifdef ENABLE_FASTCGI
    while(FCGI_Accept() >= 0) {
#endif
    qentry_t *req = qcgireq_parse(NULL, 0);

    qentry_t *sess = NULL;
    sess = qcgisess_init(req, NULL);
    qcgisess_settimeout(sess, SESSION_TIME);
    qcgires_setcontenttype(req, "application/json");    
    if(!sess){
        printf("%s", "{ text : \"Your Session has expired please login again\"}");
        goto end;
    }

    char *name  = sess->getstr(sess, "username", true);
    if(name == NULL){
        printf("%s", "{ text : \"Your Session has expired and your username could not be determined, please login again\"}");
        goto end;
    }

    if(sess){
        sess->putstr(sess, "username", name, true);
        qcgisess_save(sess);                
    }

    printf("{\"text\":");
    char * target = req->getstr(req, "target", true);
    if(target == NULL){
        printf("\"you must select a user to talk to\"}");
        free(name);
        goto end;
    }

    char * filename = req->getstr(req, "f", true);
    if(filename == NULL){
        printf("\"You must choose a file to read\"}");
        free(name);
        free(target);
        goto end;
    }


    FILE * fp = getConversationByFileName(name, target, filename);
    if(fp == NULL){
        free(name);
        printf("%s%s%s","\"Could not open conversation with user for reading: ", target,"\"}");
        free(target);
        free(filename);
        goto end;
    }

    int cOrEOF;
    char c;
    printf("\"");
    while( (cOrEOF = fgetc(fp)) != EOF){
        c = (char)cOrEOF;
        if(c == '"') printf("\\%c", c);
        else if(c == '\n') printf("<br/>");
        else printf("%c", c);
    }
    fclose(fp);

    printf("\"}");
    free(filename);
    free(target);
    free(name);
    end:
    if(sess){
        sess->free(sess);   
    }
    // De-allocate memories
    req->free(req);
#ifdef ENABLE_FASTCGI
    }
#endif
    return 0;
}