Merge branch 'master' of https://github.com/szmoore/MCTX3420.git
[matches/MCTX3420.git] / server / fastcgi.c
index 6b2957e..b7a3e6b 100644 (file)
@@ -15,6 +15,7 @@
 #include "actuator.h"
 #include "control.h"
 #include "options.h"
+#include "image.h"
 
 /**The time period (in seconds) before the control key expires */
 #define CONTROL_TIMEOUT 180
@@ -393,6 +394,17 @@ void FCGI_PrintRaw(const char *format, ...)
        va_end(list);
 }
 
+
+/**
+ * Write binary data
+ * See fwrite
+ */
+void FCGI_WriteBinary(void * data, size_t size, size_t num_elem)
+{
+       Log(LOGDEBUG,"Writing!");
+       fwrite(data, size, num_elem, stdout);
+}
+
 /**
  * Escapes a string so it can be used safely.
  * Currently escapes to ensure the validity for use as a JSON string
@@ -439,7 +451,6 @@ void * FCGI_RequestLoop (void *data)
                Log(LOGDEBUG, "Got request #%d", context.response_number);
                ModuleHandler module_handler = NULL;
                char module[BUFSIZ], params[BUFSIZ];
-               bool lock_required = false;
                
                //strncpy doesn't zero-truncate properly
                snprintf(module, BUFSIZ, "%s", getenv("DOCUMENT_URI_LOCAL"));
@@ -463,21 +474,15 @@ void * FCGI_RequestLoop (void *data)
                        module_handler = Control_Handler;
                } else if (!strcmp("sensors", module)) {
                        module_handler = Sensor_Handler;
-                       lock_required = true;
                } else if (!strcmp("actuators", module)) {
                        module_handler = Actuator_Handler;
-                       lock_required = true;
+               } else if (!strcmp("image", module)) {
+                       module_handler = Image_Handler;
                }
 
                context.current_module = module;
                if (module_handler) {
-                       if (lock_required && !Control_Lock()) {
-                               FCGI_RejectJSONEx(&context, STATUS_NOTRUNNING, "Experiment is not running.");
-                       } else {
-                               module_handler(&context, params);
-                               if (lock_required)
-                                       Control_Unlock();
-                       }
+                       module_handler(&context, params);
                } else {
                        FCGI_RejectJSON(&context, "Unhandled module");
                }

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