@@ -407,6 +407,7 @@ sge_mirror_subscribe_internal(sge_evc_class_t *evc, sge_object_type type,
407407 sge_mirror_callback callback_before, sge_mirror_callback callback_after,
408408 void *client_data, const lCondition *where, const lEnumeration *what)
409409{
410+ sge_mirror_error ret = SGE_EM_OK;
410411 lListElem *what_el = lWhatToElem (what);
411412 lListElem *where_el = lWhereToElem (where);
412413
@@ -711,7 +712,8 @@ sge_mirror_subscribe_internal(sge_evc_class_t *evc, sge_object_type type,
711712 break ;
712713 case SGE_TYPE_ZOMBIE:
713714 case SGE_TYPE_SUSER:
714- return SGE_EM_NOT_INITIALIZED;
715+ ret = SGE_EM_NOT_INITIALIZED;
716+ break ;
715717 case SGE_TYPE_AR:
716718 evc->ec_subscribe (evc, sgeE_AR_LIST);
717719 evc->ec_subscribe (evc, sgeE_AR_ADD);
@@ -725,12 +727,14 @@ sge_mirror_subscribe_internal(sge_evc_class_t *evc, sge_object_type type,
725727 }
726728 break ;
727729 case SGE_TYPE_JOBSCRIPT:
728- return SGE_EM_NOT_INITIALIZED;
730+ ret = SGE_EM_NOT_INITIALIZED;
731+ break ;
729732 default :
730- return SGE_EM_BAD_ARG;
733+ ret = SGE_EM_BAD_ARG;
734+ break ;
731735 }
732736
733- { /* install callback function */
737+ if (ret == SGE_EM_OK) { /* install callback function */
734738 mirror_description *mirror_base = mir_get_mirror_base ();
735739
736740 mirror_base[type].callback_before = callback_before;
@@ -741,7 +745,7 @@ sge_mirror_subscribe_internal(sge_evc_class_t *evc, sge_object_type type,
741745 lFreeElem (&where_el);
742746 lFreeElem (&what_el);
743747
744- return SGE_EM_OK ;
748+ return ret ;
745749}
746750
747751/* ***** Eventmirror/sge_mirror_unsubscribe() ************************************
0 commit comments