X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Ffastcgi.c;h=b7a3e6b1409c1022b8bbf05fe84c46152bcd5983;hb=01d1e74d5b4cefd75d9ff4a5a2a404a71a225712;hp=6b2957e9f52359399366c8d28fcfeca822db7d3c;hpb=9e7cfbbc6137056bba8ed8644fc6ecfe398553fe;p=matches%2FMCTX3420.git diff --git a/server/fastcgi.c b/server/fastcgi.c index 6b2957e..b7a3e6b 100644 --- a/server/fastcgi.c +++ b/server/fastcgi.c @@ -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"); }