X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=server%2Ffastcgi.c;h=89386f35165c7d9e01cea92a81a8f17ccc4dd4a8;hb=c78aae4af28df47f11bf41537cc6945ddba3e27d;hp=e391fcde9938a9eb57a7fb70e8564ebd0fe48496;hpb=0c55febb46bf3bfacaeefda0a2e422b42c18710c;p=matches%2FMCTX3420.git diff --git a/server/fastcgi.c b/server/fastcgi.c index e391fcd..89386f3 100644 --- a/server/fastcgi.c +++ b/server/fastcgi.c @@ -227,7 +227,16 @@ bool FCGI_ParseRequest(FCGIContext *context, char *params, FCGIValue values[], s switch(FCGI_TYPE(val->flags)) { case FCGI_BOOL_T: - *((bool*) val->value) = true; + if (!*value) //No value: Default true + *((bool*) val->value) = true; + else { + *((bool*) val->value) = !!(strtol(value, &ptr, 10)); + if (*ptr) { + snprintf(buf, BUFSIZ, "Expected bool for '%s' but got '%s'", key, value); + FCGI_RejectJSON(context, buf); + return false; + } + } break; case FCGI_INT_T: case FCGI_LONG_T: { long parsed = strtol(value, &ptr, 10); @@ -294,6 +303,7 @@ void FCGI_BeginJSON(FCGIContext *context, StatusCodes status_code) FCGI_JSONDouble("start_time", TIMEVAL_TO_DOUBLE(g_options.start_time)); FCGI_JSONDouble("current_time", TIMEVAL_TO_DOUBLE(now)); FCGI_JSONDouble("running_time", TIMEVAL_DIFF(now, g_options.start_time)); + FCGI_JSONPair("control_state", Control_GetModeName()); } /**