Pin test page cleanup
[matches/MCTX3420.git] / server / fastcgi.c
index e391fcd..352efe1 100644 (file)
@@ -16,6 +16,7 @@
 #include "control.h"
 #include "options.h"
 #include "image.h"
+#include "pin_test.h"
 
 /**The time period (in seconds) before the control key expires */
 #define CONTROL_TIMEOUT 180
@@ -227,7 +228,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 +304,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());
 }
 
 /**
@@ -480,6 +491,8 @@ void * FCGI_RequestLoop (void *data)
                        module_handler = Actuator_Handler;
                } else if (!strcmp("image", module)) {
                        module_handler = Image_Handler;
+               } else if (!strcmp("pin", module)) { 
+                       module_handler = Pin_Handler; // *Debug only* pin test module
                }
 
                context.current_module = module;

UCC git Repository :: git.ucc.asn.au