edited dilatometer
[matches/MCTX3420.git] / server / control.c
index 59f9b73..f81ea00 100644 (file)
@@ -14,7 +14,7 @@
 typedef struct ControlData {
        ControlModes current_mode;
        pthread_mutex_t mutex;
-       struct timeval start_time;
+       struct timespec start_time;
        char user_name[31]; // The user who owns the currently running experiment
        char experiment_dir[BUFSIZ]; //Directory for experiment
        char experiment_name[BUFSIZ];
@@ -134,7 +134,7 @@ void Control_Handler(FCGIContext *context, char *params) {
                return;
        }
 
-       if (strcmp(g_controls.user_name, context->user_name) != 0)
+       if ((*g_controls.user_name) != '\0' && strcmp(g_controls.user_name, context->user_name) != 0)
        {
                if (context->user_type != USER_ADMIN) {
                        FCGI_RejectJSON(context, "Another user has an experiment in progress.");
@@ -197,7 +197,7 @@ void Control_Handler(FCGIContext *context, char *params) {
                                                "%s", name);
                }
 
-               FCGI_AcceptJSON(context, "Ok", NULL);
+               FCGI_AcceptJSON(context, "Ok");
        }
 }
 
@@ -225,7 +225,7 @@ const char* Control_SetMode(ControlModes desired_mode, void * arg)
                                                path, strerror(errno));
                                        ret = "Couldn't create experiment directory.";
                                } else {
-                                       gettimeofday(&(g_controls.start_time), NULL);
+                                       clock_gettime(CLOCK_MONOTONIC, &(g_controls.start_time));
                                }
                        } else 
                                ret = "Cannot start when not in a stopped state.";
@@ -280,6 +280,6 @@ const char * Control_GetModeName() {
  * Gets the start time for the current experiment
  * @return the start time
  */
-const struct timeval* Control_GetStartTime() {
+const struct timespec * Control_GetStartTime() {
        return &g_controls.start_time;
 }

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