summaryrefslogtreecommitdiff
path: root/TAO/tao/TAO_Internal.cpp
diff options
context:
space:
mode:
authorPhil Mesnier <mesnier_p@ociweb.com>2007-08-22 20:32:53 +0000
committerPhil Mesnier <mesnier_p@ociweb.com>2007-08-22 20:32:53 +0000
commitfcaa375f81c9b05c40d17095b3264a9e7d97cd86 (patch)
treec057397d755f18f9980bb86b1303e2e3c7c00e72 /TAO/tao/TAO_Internal.cpp
parentb39078b94bdf3e92b8d4f4220cb510e7c6e46650 (diff)
downloadATCD-fcaa375f81c9b05c40d17095b3264a9e7d97cd86.tar.gz
Wed Aug 22 20:27:35 UTC 2007 Phil Mesnier <mesnier_p@ociweb.com>
Diffstat (limited to 'TAO/tao/TAO_Internal.cpp')
-rw-r--r--TAO/tao/TAO_Internal.cpp28
1 files changed, 22 insertions, 6 deletions
diff --git a/TAO/tao/TAO_Internal.cpp b/TAO/tao/TAO_Internal.cpp
index c617d27024e..a55ed696ab4 100644
--- a/TAO/tao/TAO_Internal.cpp
+++ b/TAO/tao/TAO_Internal.cpp
@@ -313,6 +313,17 @@ TAO::ORB::open_services (ACE_Service_Gestalt* pcfg,
return -1;
}
+ // If the target configuration happens to be the global context,
+ // add any 'private' arguments here.
+ if (pcfg == theone && svc_config_argv.length() > 1)
+ {
+ CORBA::ULong glen = global_svc_config_argv.length();
+ global_svc_config_argv.length(glen + svc_config_argv.length() - 1);
+ for (CORBA::ULong i = 1; i < svc_config_argv.length(); i++)
+ global_svc_config_argv[glen++] = svc_config_argv[i];
+ svc_config_argv.length(1);
+ }
+
int global_svc_config_argc = global_svc_config_argv.length ();
int status =
open_private_services_i (theone,
@@ -381,12 +392,17 @@ TAO::ORB::open_services (ACE_Service_Gestalt* pcfg,
return -1;
}
- int svc_config_argc = svc_config_argv.length ();
- int status =
- open_private_services_i (pcfg,
- svc_config_argc,
- svc_config_argv.get_buffer (),
- skip_service_config_open);
+ int status = 0;
+ // only open the private context if it is not also the global context
+ if (pcfg != ACE_Service_Config::global())
+ {
+ int svc_config_argc = svc_config_argv.length ();
+ status =
+ open_private_services_i (pcfg,
+ svc_config_argc,
+ svc_config_argv.get_buffer (),
+ skip_service_config_open);
+ }
if (status >= 0)
{