diff options
Diffstat (limited to 'linden/indra/llmessage/llservicebuilder.cpp')
-rw-r--r-- | linden/indra/llmessage/llservicebuilder.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/linden/indra/llmessage/llservicebuilder.cpp b/linden/indra/llmessage/llservicebuilder.cpp index 91040c0..0b35a69 100644 --- a/linden/indra/llmessage/llservicebuilder.cpp +++ b/linden/indra/llmessage/llservicebuilder.cpp | |||
@@ -109,7 +109,7 @@ std::string LLServiceBuilder::buildServiceURI( | |||
109 | const LLSD& option_map) | 109 | const LLSD& option_map) |
110 | { | 110 | { |
111 | std::string service_url = buildServiceURI(service_name); | 111 | std::string service_url = buildServiceURI(service_name); |
112 | 112 | ||
113 | // Find the Service Name | 113 | // Find the Service Name |
114 | if(!service_url.empty() && option_map.isMap()) | 114 | if(!service_url.empty() && option_map.isMap()) |
115 | { | 115 | { |
@@ -128,6 +128,23 @@ std::string LLServiceBuilder::buildServiceURI( | |||
128 | find_pos, | 128 | find_pos, |
129 | variable_name.length(), | 129 | variable_name.length(), |
130 | (*option_itr).second.asString()); | 130 | (*option_itr).second.asString()); |
131 | continue; | ||
132 | } | ||
133 | variable_name.assign("{%"); | ||
134 | variable_name.append((*option_itr).first); | ||
135 | variable_name.append("}"); | ||
136 | find_pos = service_url.find(variable_name); | ||
137 | if(find_pos != std::string::npos) | ||
138 | { | ||
139 | std::string query_str = LLURI::mapToQueryString( | ||
140 | (*option_itr).second); | ||
141 | if(!query_str.empty()) | ||
142 | { | ||
143 | service_url.replace( | ||
144 | find_pos, | ||
145 | variable_name.length(), | ||
146 | query_str); | ||
147 | } | ||
131 | } | 148 | } |
132 | } | 149 | } |
133 | } | 150 | } |