fixed command timout
authorChristian Pointner <equinox@realraum.at>
Thu, 4 Jun 2009 22:50:17 +0000 (22:50 +0000)
committerChristian Pointner <equinox@realraum.at>
Thu, 4 Jun 2009 22:50:17 +0000 (22:50 +0000)
door_daemon/command_queue.c
door_daemon/command_queue.h
door_daemon/door_daemon.c

index 7ba22c7..3fc645a 100644 (file)
@@ -59,7 +59,6 @@ int cmd_push(cmd_t** first, int fd, cmd_id_t cmd, const char* param)
   new_cmd->sent = 0;
   new_cmd->tv_start.tv_sec = 0;
   new_cmd->tv_start.tv_usec = 0;
-  gettimeofday(&new_cmd->tv_start, NULL);
   new_cmd->next = NULL;
 
   if(!(*first)) {
@@ -72,6 +71,15 @@ int cmd_push(cmd_t** first, int fd, cmd_id_t cmd, const char* param)
   return 0;
 }
 
+void cmd_sent(cmd_t* cmd)
+{
+  if(!cmd)
+    return;
+
+  cmd->sent = 1;
+  gettimeofday(&cmd->tv_start, NULL);
+}
+
 // timeout between 1 and 2 seconds
 int cmd_has_expired(const cmd_t cmd)
 {
index d03602f..2397fb7 100644 (file)
@@ -37,6 +37,7 @@ struct cmd_struct {
 typedef struct cmd_struct cmd_t;
 
 int cmd_push(cmd_t** first, int fd, cmd_id_t cmd, const char* param);
+void cmd_sent(cmd_t* cmd);
 int cmd_has_expired(const cmd_t cmd);
 void cmd_pop(cmd_t** first);
 void cmd_clear(cmd_t** first);
index 0443910..da6b3a2 100644 (file)
@@ -95,7 +95,7 @@ int send_command(int door_fd, cmd_t* cmd)
   } while(!ret || (ret == -1 && errno == EINTR));
 
   if(ret > 0) {
-    cmd->sent = 1;
+    cmd_sent(cmd);
     return 0;
   }