osaf/tools/safimm/immadm/imm_admin.c |  15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)


diff --git a/osaf/tools/safimm/immadm/imm_admin.c 
b/osaf/tools/safimm/immadm/imm_admin.c
--- a/osaf/tools/safimm/immadm/imm_admin.c
+++ b/osaf/tools/safimm/immadm/imm_admin.c
@@ -37,6 +37,7 @@
 
 #include <saAis.h>
 #include <saImmOm.h>
+#include <immsv_api.h>
 
 #include <immutil.h>
 #include <saf_error.h>
@@ -250,6 +251,7 @@ int main(int argc, char *argv[])
        SaImmHandleT immHandle;
        SaImmAdminOwnerNameT adminOwnerName = basename(argv[0]);
        bool releaseAdmo=true;
+       bool explicitAdmo=false;
        SaImmAdminOwnerHandleT ownerHandle;
        SaNameT objectName;
        const SaNameT *objectNames[] = { &objectName, NULL };
@@ -328,6 +330,7 @@ int main(int argc, char *argv[])
                        adminOwnerName = 
(SaImmAdminOwnerNameT)malloc(strlen(optarg) + 1);
                        strcpy(adminOwnerName, optarg);
                        releaseAdmo=false;
+                       explicitAdmo=true;
                        break;
                case 'h':
                        usage(basename(argv[0]));
@@ -367,6 +370,18 @@ int main(int argc, char *argv[])
                exit(EXIT_FAILURE);
        }
 
+       if((optind < argc) && (!explicitAdmo)) {
+               strncpy((char *)objectName.value, argv[optind], 
SA_MAX_NAME_LENGTH);
+               objectName.length = strlen((char *)objectName.value);
+
+               if(strcmp((char *) objectName.value, OPENSAF_IMM_OBJECT_DN)==0) 
{
+                       releaseAdmo=false;
+                       adminOwnerName = (SaImmAdminOwnerNameT) 
malloc(strlen(OPENSAF_IMM_SERVICE_NAME) + 1);
+                       strcpy(adminOwnerName, OPENSAF_IMM_SERVICE_NAME);
+                       printf("[using admin-owner: '%s']\n", adminOwnerName);
+               }
+       }
+
        error = immutil_saImmOmAdminOwnerInitialize(immHandle, adminOwnerName, 
releaseAdmo?SA_TRUE:SA_FALSE, &ownerHandle);
        if (error != SA_AIS_OK) {
                fprintf(stderr, "error - saImmOmAdminOwnerInitialize FAILED: 
%s\n", saf_error(error));

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to