support for notification owner check when connecting
authorMichal Voců <michal@ruk.cuni.cz>
Fri, 17 Feb 2012 11:51:09 +0000 (11:51 +0000)
committerMichal Voců <michal@ruk.cuni.cz>
Fri, 17 Feb 2012 11:51:09 +0000 (11:51 +0000)
org.glite.lb.logger/Makefile
org.glite.lb.logger/interface/interlogd.h
org.glite.lb.logger/src/event_queue.c
org.glite.lb.logger/src/queue_mgr.c
org.glite.lb.logger/src/queue_mgr_http.c
org.glite.lb.logger/src/send_event.c
org.glite.lb.logger/src/server_msg.c

index 9078137..3e64a58 100644 (file)
@@ -135,16 +135,16 @@ startup: ${top_srcdir}/config/startup
        chmod +x $@
 
 glite-lb-logd: ${LOGD_OBJS}
-       ${LINK} -o $@ ${LOGD_OBJS} ${COMMON_LIB}${default_nothrflavour} ${EXT_LIB}
+       ${LINK} -o $@ ${LOGD_OBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB}
 
 glite-lb-logd-perf: ${LOGD_OBJS}
-       ${LINK} -o $@ ${LOGD_OBJS} ${COMMON_LIB}${default_nothrflavour} ${EXT_LIB}
+       ${LINK} -o $@ ${LOGD_OBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB}
 
 glite-lb-logd-nofile: ${LOGD_NOBJS}
-       ${LINK} -o $@ ${LOGD_NOBJS} ${COMMON_LIB}${default_nothrflavour} ${EXT_LIB}
+       ${LINK} -o $@ ${LOGD_NOBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB}
 
 glite-lb-logd-perf-nofile: ${LOGD_NOBJS}
-       ${LINK} -o $@ ${LOGD_NOBJS} ${COMMON_LIB}${default_nothrflavour} ${EXT_LIB}
+       ${LINK} -o $@ ${LOGD_NOBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB}
 
 glite-lb-interlogd: ${INTERLOG_OBJS}
        ${LINK} -o $@ ${INTERLOG_OBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB} -lpthread
index 10f0bbf..c2ef7d0 100644 (file)
@@ -178,6 +178,7 @@ struct server_msg {
        char                   *dest_name;
        int                     dest_port;
        char                   *dest;
+       char                   *owner;
        time_t                  expires;        /* time (in seconds from epoch) the message expires */
 };
 
@@ -195,6 +196,7 @@ struct event_queue {
        char                   *dest_name;
        int                     dest_port;
        char                   *dest;
+       char                   *owner;
        struct event_queue_msg *head;           /* first message in the queue */
        struct event_queue_msg *tail_ems;       /* last priority message in the queue (or NULL) */
        int                     num_threads;    /* number of delivery threads */
index bd66fd5..69bdbfe 100644 (file)
@@ -40,7 +40,7 @@ struct event_queue_msg {
 };
 
 struct event_queue *
-event_queue_create(char *server_name, struct il_output_plugin *output)
+event_queue_create(char *server_name,  struct il_output_plugin *output)
 {
   struct event_queue *eq;
   char *p,*s, c;
@@ -149,6 +149,9 @@ event_queue_free(struct event_queue *eq)
          free(eq->dest_name);
   if(eq->dest)
          free(eq->dest);
+  if(eq->owner) 
+         free(eq->owner);
+
   free(eq);
 
   return(0);
@@ -254,6 +257,17 @@ event_queue_insert(struct event_queue *eq, struct server_msg *msg)
   if(++eq->cur_len > eq->max_len)
          eq->max_len = eq->cur_len;
 
+  if(msg->owner) {
+         if(eq->owner) {
+                 if(strcmp(eq->owner, msg->owner)) {
+                         free(eq->owner);
+                         eq->owner = strdup(msg->owner);
+                 }
+         } else {
+                 eq->owner = strdup(msg->owner);
+         }
+  }
+
   event_queue_unlock(eq);
   /* end of critical section */
 
index 2bfa4e4..12e7cc5 100644 (file)
@@ -186,7 +186,7 @@ queue_list_get(char *job_id_s)
 int
 queue_list_is_log(struct event_queue *eq)
 {
-  return(eq == queue_list_get(NULL));
+       return(eq == queue_list_get(NULL));
 }
 
 
index f5e767f..399f76c 100644 (file)
@@ -135,7 +135,7 @@ queue_list_get(char *job_id_s)
 int
 queue_list_is_log(struct event_queue *eq)
 {
-  return(eq == queue_list_get(NULL));
+       return(eq == queue_list_get(NULL));
 }
 
 
index e682962..67a3b60 100644 (file)
@@ -209,7 +209,8 @@ event_queue_connect(struct event_queue *eq, struct queue_thread *me)
     glite_common_log(IL_LOG_CATEGORY, LOG_PRIORITY_DEBUG, 
                     "    trying to connect to %s:%d", 
                     eq->dest_name, eq->dest_port);
-    ret = edg_wll_gss_connect(local_cred_handle->creds, eq->dest_name, eq->dest_port, &tv, &me->gss, &gss_stat);
+    /* ret = edg_wll_gss_connect(local_cred_handle->creds, eq->dest_name, eq->dest_port, &tv, &me->gss, &gss_stat); */
+    ret = edg_wll_gss_connect_name(local_cred_handle->creds, eq->dest_name, eq->dest_port, eq->owner, /* mech */NULL, &tv, &me->gss, &gss_stat);
     if(pthread_mutex_lock(&cred_handle_lock) < 0)
            abort();
     /* check if we need to release the credentials */
index aa57e1a..28ce300 100644 (file)
@@ -138,6 +138,7 @@ server_msg_copy(struct server_msg *src)
   msg->dest_name = src->dest_name ? strdup(src->dest_name) : NULL;
   msg->dest_port = src->dest_port;
   msg->dest = src->dest ? strdup(src->dest) : NULL;
+  msg->owner = src->owner ? strdup(src->owner) : NULL;
 #endif
   msg->expires = src->expires;
   msg->generation = src->generation;
@@ -191,6 +192,9 @@ server_msg_init(struct server_msg *msg, il_octet_string_t *event)
                msg->len = create_msg(event, &msg->msg, &msg->receipt_to, &msg->expires);
        }
        msg->expires = notif_event->notification.expires;
+       if(notif_event->notification.owner) {
+               msg->owner = strdup(notif_event->notification.owner);
+       }
        edg_wll_FreeEvent(notif_event);
        free(notif_event);
        if(msg->len < 0) {
@@ -239,6 +243,7 @@ server_msg_free(struct server_msg *msg)
 #if defined(IL_NOTIFICATIONS)
   if(msg->dest_name) free(msg->dest_name);
   if(msg->dest) free(msg->dest);
+  if(msg->owner) free(msg->owner);
 #endif
   free(msg);
   return 0;