Set owner whet setting up event queue.
authorZdeněk Šustr <sustr4@cesnet.cz>
Tue, 21 Feb 2012 12:52:13 +0000 (12:52 +0000)
committerZdeněk Šustr <sustr4@cesnet.cz>
Tue, 21 Feb 2012 12:52:13 +0000 (12:52 +0000)
org.glite.lb.logger/src/event_store.c

index 8e88d00..4cf88e0 100644 (file)
@@ -540,6 +540,7 @@ event_store_recover(struct event_store *es)
   struct stat stbuf;
 #if defined(IL_NOTIFICATIONS)
   char *last_dest = NULL;
+  char *last_owner = NULL;
   time_t last_exp = 0;
 #endif
 
@@ -789,6 +790,11 @@ event_store_recover(struct event_store *es)
     if(last_exp == 0 || last_exp != msg->expires) {
        last_exp = msg->expires;
     }
+
+    /* remember message owner */
+    if(last_owner == NULL) {
+        last_owner = strdup(msg->owner);
+    }
 #else
     /* first enqueue to the LS */
     if(!bs_only && (last >= last_ls)) {
@@ -817,6 +823,8 @@ event_store_recover(struct event_store *es)
                               "      queuing event at %ld to bookkeeping server", last);
       }
     }
+
+
     server_msg_free(msg);
     msg = NULL;
 
@@ -850,6 +858,12 @@ event_store_recover(struct event_store *es)
                  glite_common_log(IL_LOG_CATEGORY, LOG_PRIORITY_INFO, 
                                   "    all messages for notif id %s are now destined to %s",
                         es->job_id_s, eq_b->dest);
+                  /* set owner if not already there */ /* CHECKME: last_owner mechanism added without full grasp of the code. Please check.*/
+                 if (!(eq_b->owner)) eq_b->owner = last_owner;
+                  else {
+                       free(last_owner);
+                       last_owner = NULL;
+                  }
                  if(event_queue_create_thread(eq_b, parallel) < 0) {
                          ret = -1;
                  } else {