From: Michal Voců Date: Fri, 17 Feb 2012 11:51:09 +0000 (+0000) Subject: support for notification owner check when connecting X-Git-Tag: gridsite-core_R_1_7_17~78 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=b740afbfdea9320ed9b7938cf1813e353375cad4;p=jra1mw.git support for notification owner check when connecting --- diff --git a/org.glite.lb.logger/Makefile b/org.glite.lb.logger/Makefile index 9078137..3e64a58 100644 --- a/org.glite.lb.logger/Makefile +++ b/org.glite.lb.logger/Makefile @@ -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 diff --git a/org.glite.lb.logger/interface/interlogd.h b/org.glite.lb.logger/interface/interlogd.h index 10f0bbf..c2ef7d0 100644 --- a/org.glite.lb.logger/interface/interlogd.h +++ b/org.glite.lb.logger/interface/interlogd.h @@ -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 */ diff --git a/org.glite.lb.logger/src/event_queue.c b/org.glite.lb.logger/src/event_queue.c index bd66fd5..69bdbfe 100644 --- a/org.glite.lb.logger/src/event_queue.c +++ b/org.glite.lb.logger/src/event_queue.c @@ -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 */ diff --git a/org.glite.lb.logger/src/queue_mgr.c b/org.glite.lb.logger/src/queue_mgr.c index 2bfa4e4..12e7cc5 100644 --- a/org.glite.lb.logger/src/queue_mgr.c +++ b/org.glite.lb.logger/src/queue_mgr.c @@ -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)); } diff --git a/org.glite.lb.logger/src/queue_mgr_http.c b/org.glite.lb.logger/src/queue_mgr_http.c index f5e767f..399f76c 100644 --- a/org.glite.lb.logger/src/queue_mgr_http.c +++ b/org.glite.lb.logger/src/queue_mgr_http.c @@ -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)); } diff --git a/org.glite.lb.logger/src/send_event.c b/org.glite.lb.logger/src/send_event.c index e682962..67a3b606 100644 --- a/org.glite.lb.logger/src/send_event.c +++ b/org.glite.lb.logger/src/send_event.c @@ -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 */ diff --git a/org.glite.lb.logger/src/server_msg.c b/org.glite.lb.logger/src/server_msg.c index aa57e1a..28ce300 100644 --- a/org.glite.lb.logger/src/server_msg.c +++ b/org.glite.lb.logger/src/server_msg.c @@ -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;