- if (!FCGI_ParseRequest(context, params, values, 5))
- return;*/
-
- while ((params = FCGI_KeyPair(params, &key, &value)) != NULL)
- {
- Log(LOGDEBUG, "Got key=%s and value=%s", key, value);
- if (strcmp(key, "id") == 0)
- {
- if (sensor != NULL)
- {
- Log(LOGERR, "Only one sensor id should be specified");
- status = STATUS_ERROR;
- break;
- }
- if (*value == '\0')
- {
- Log(LOGERR, "No id specified.");
- status = STATUS_ERROR;
- break;
- }
-
- sensor = Sensor_Identify(value);
- if (sensor == NULL)
- {
- Log(LOGERR, "Invalid sensor id: %s", value);
- status = STATUS_ERROR;
- break;
- }
- }
- else if (strcmp(key, "format") == 0)
- {
- if (strcmp(value, "json") == 0)
- output_type = JSON;
- else if (strcmp(value, "csv") == 0)
- output_type = CSV;
- else if (strcmp(value, "tsv") == 0)
- output_type = TSV;
- }
- else if (strcmp(key, "points") == 0)
- {
- points_specified = true;
- if (strcmp(value, "all") == 0)
- {
- query_size = sensor->points_written;
- }
- else
- {
- char * end;
- query_size = strtol(value, &end, 10);
- if (*end != '\0')
- {
- Log(LOGERR, "Require \"all\" or an integer value: %s = %s", key, value);
- status = STATUS_ERROR;
- break;
- }
- }
-
- }
- else if (strcmp(key, "start_time") == 0)
- {
- seek_time = true;
- char * end;
- start_time = strtod(value, &end);
- if (*end != '\0')
- {
- Log(LOGERR, "Require a double: %s = %s", key, value);
- status = STATUS_ERROR;
- break;
- }
-
- // Treat negative values as being relative to the current time
- if (start_time < 0)
- {
- start_time = current_time + start_time;
- }
- start_time = floor(start_time);
- }
- else if (strcmp(key, "end_time") == 0)
- {
- seek_time = true;
- char * end;
- end_time = strtod(value, &end);
- if (*end != '\0')
- {
- Log(LOGERR, "Require a double: %s = %s", key, value);
- status = STATUS_ERROR;
- break;
- }
-
- // Treat negative values as being relative to the current time
- if (end_time < 0)
- {
- end_time = current_time + end_time;
- }
- end_time = ceil(end_time);
- }
- // For backward compatability:
- else if (strcmp(key, "dump") == 0)
- {
- output_type = TSV;
- query_size = sensor->points_written+1;
- }
- else
- {
- Log(LOGERR, "Unknown key \"%s\" (value = %s)", key, value);
- status = STATUS_ERROR;
- break;
- }
- }
-
- if (status != STATUS_ERROR && sensor == NULL)
- {
- Log(LOGERR, "No valid sensor id given");
- status = STATUS_ERROR;
- }