Example #1
0
void parse_query( char *query_string, query_param_t *query_param)
{
  char *pquery, fieldname[MAX_LENOFFIELDNAME], fieldval[MAX_LENOFFIELDVAL];

  init_queryparam( query_param);
  
  pquery = query_string;

  while( pquery!=NULL) {
    
    pquery = get_fieldparam( pquery, fieldname, fieldval);

    if( fieldname[0] != '\0'){
      if( strcasecmp( fieldname, "target") == 0)
	strcpy( query_param->target,fieldval);
      
      else if( strcasecmp( fieldname, "fsiz") == 0)
	sscanf( fieldval, "%d,%d", &query_param->fx, &query_param->fy);
      
      else if( strcasecmp( fieldname, "roff") == 0)
	sscanf( fieldval, "%d,%d", &query_param->rx, &query_param->ry);

      else if( strcasecmp( fieldname, "rsiz") == 0)
	sscanf( fieldval, "%d,%d", &query_param->rw, &query_param->rh);
      
      else if( strcasecmp( fieldname, "cid") == 0)
	strcpy( query_param->cid, fieldval);

      else if( strcasecmp( fieldname, "cnew") == 0)
	query_param->cnew = true;
      
      else if( strcasecmp( fieldname, "cclose") == 0)
	str2cclose( fieldval, query_param->cclose);
      
      else if( strcasecmp( fieldname, "metareq") == 0)
	parse_metareq( fieldval, query_param);
    }
  }
}
Example #2
0
query_param_t * parse_query( char *query_string)
{
  query_param_t *query_param;
  char *pquery, fieldname[MAX_LENOFFIELDNAME], fieldval[MAX_LENOFFIELDVAL];

  query_param = get_initquery();
  
  pquery = query_string;

  while( pquery!=NULL) {
    
    pquery = get_fieldparam( pquery, fieldname, fieldval);

    if( fieldname[0] != '\0'){
      if( strcasecmp( fieldname, "target") == 0)
	query_param->target = strdup( fieldval);
      
      else if( strcasecmp( fieldname, "tid") == 0)
	query_param->tid = strdup( fieldval);

      else if( strcasecmp( fieldname, "fsiz") == 0)
	sscanf( fieldval, "%d,%d", &query_param->fx, &query_param->fy);
      
      else if( strcasecmp( fieldname, "roff") == 0)
	sscanf( fieldval, "%d,%d", &query_param->rx, &query_param->ry);

      else if( strcasecmp( fieldname, "rsiz") == 0)
	sscanf( fieldval, "%d,%d", &query_param->rw, &query_param->rh);
      
      else if( strcasecmp( fieldname, "layers") == 0)
	sscanf( fieldval, "%d", &query_param->layers);
      
      else if( strcasecmp( fieldname, "cid") == 0)
	query_param->cid = strdup( fieldval);

      else if( strcasecmp( fieldname, "cnew") == 0){
	if( strncasecmp( fieldval, "http-tcp", 8) == 0)
	  query_param->cnew = tcp;
	else if( strncasecmp( fieldval, "http", 4) == 0)
	  query_param->cnew = http;
      }
      
      else if( strcasecmp( fieldname, "cclose") == 0)
	parse_cclose( fieldval, query_param);
      
      else if( strcasecmp( fieldname, "metareq") == 0)
	parse_metareq( fieldval, query_param);
      
      else if( strcasecmp( fieldname, "comps") == 0)
	parse_comps( fieldval, query_param);
      
      else if( strcasecmp( fieldname, "type") == 0){
	if( strncasecmp( fieldval, "jpp-stream", 10) == 0)
	  query_param->return_type = JPPstream;
	else if( strncasecmp( fieldval, "jpt-stream", 10) == 0)
	  query_param->return_type = JPTstream;
      }

      else if( strcasecmp( fieldname, "len") == 0)
	sscanf( fieldval, "%d", &query_param->len);
    }
  }
  return query_param;
}