@@ -95,12 +95,13 @@ ResolvingChannelFactory_Channel::ResolvingChannelFactory_Channel(
9595 bslma::Allocator* basicAllocator)
9696: DecoratingChannelPartialImp(channel, basicAllocator)
9797, d_resolvedPeerUri(basicAllocator)
98+ , d_basePeerUri(channel->peerUri (), basicAllocator)
9899, d_peerUri()
99100{
100101 // PRECONDITIONS
101102 BSLS_ASSERT (channel);
102103
103- d_peerUri = &channel-> peerUri () ;
104+ d_peerUri = &d_basePeerUri ;
104105}
105106
106107// MANIPULATORS
@@ -117,7 +118,7 @@ void ResolvingChannelFactory_Channel::updatePeerUri()
117118}
118119
119120// ACCESSORS
120- const bsl::string& ResolvingChannelFactory_Channel::peerUri () const
121+ bsl::string ResolvingChannelFactory_Channel::peerUri () const
121122{
122123 return *d_peerUri;
123124}
@@ -235,7 +236,7 @@ void ResolvingChannelFactoryUtil::defaultResolutionFn(
235236 const ResolveFn& resolveFn,
236237 bool verbose)
237238{
238- bslstl::StringRef peerUri = baseChannel.peerUri ();
239+ bsl::string peerUri = baseChannel.peerUri ();
239240 bslstl::StringRef colon = bdlb::StringRefUtil::strstr (peerUri, " :" );
240241 if (colon.length () == 0 ) {
241242 if (verbose) {
@@ -248,7 +249,7 @@ void ResolvingChannelFactoryUtil::defaultResolutionFn(
248249
249250 bdlma::LocalSequentialAllocator<128 > arena;
250251
251- bsl::string ipAddrStr (peerUri.data (), colon.data (), &arena);
252+ bsl::string ipAddrStr (peerUri.c_str (), colon.data (), &arena);
252253 ntsa::IpAddress ipAddr;
253254
254255 if (!ipAddr.parse (ipAddrStr)) {
@@ -277,7 +278,7 @@ void ResolvingChannelFactoryUtil::defaultResolutionFn(
277278 resolvedUri->append (ipAddrStr);
278279 resolvedUri->append (1 , ' ~' );
279280 resolvedUri->append (resolvedName);
280- resolvedUri->append (colon.data (), peerUri.end ());
281+ resolvedUri->append (colon.data (), peerUri.c_str () + peerUri. length ());
281282}
282283
283284} // close package namespace
0 commit comments