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); } } }
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; }