diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs (renamed from OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Authentication/AuthenticationServicesConnector.cs (renamed from OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Authorization/AuthorizationServicesConnector.cs (renamed from OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Avatar/AvatarServicesConnector.cs (renamed from OpenSim/Services/Connectors/Avatar/AvatarServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Friends/FriendsServicesConnector.cs (renamed from OpenSim/Services/Connectors/Friends/FriendsServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Grid/GridServicesConnector.cs (renamed from OpenSim/Services/Connectors/Grid/GridServiceConnector.cs) | 23 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/GridUser/GridUserServicesConnector.cs (renamed from OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs | 25 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Hypergrid/HGFriendsServicesConnector.cs (renamed from OpenSim/Services/Connectors/Hypergrid/HGFriendsServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs (renamed from OpenSim/Services/Connectors/Hypergrid/HeloServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs (renamed from OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Land/LandServicesConnector.cs (renamed from OpenSim/Services/Connectors/Land/LandServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/MapImage/MapImageServicesConnector.cs (renamed from OpenSim/Services/Connectors/MapImage/MapImageServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Neighbour/NeighbourServicesConnector.cs (renamed from OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs) | 3 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Presence/PresenceServicesConnector.cs (renamed from OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs) | 0 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs | 28 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Simulation/SimulationDataService.cs | 15 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | 39 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/UserAccounts/UserAccountServicesConnector.cs (renamed from OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs) | 0 |
19 files changed, 83 insertions, 50 deletions
diff --git a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 45ebf3a..45ebf3a 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs b/OpenSim/Services/Connectors/Authentication/AuthenticationServicesConnector.cs index 2b77154..2b77154 100644 --- a/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Authentication/AuthenticationServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs b/OpenSim/Services/Connectors/Authorization/AuthorizationServicesConnector.cs index 35b7109..35b7109 100644 --- a/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Authorization/AuthorizationServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Avatar/AvatarServiceConnector.cs b/OpenSim/Services/Connectors/Avatar/AvatarServicesConnector.cs index ddfca57..ddfca57 100644 --- a/OpenSim/Services/Connectors/Avatar/AvatarServiceConnector.cs +++ b/OpenSim/Services/Connectors/Avatar/AvatarServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Friends/FriendsServiceConnector.cs b/OpenSim/Services/Connectors/Friends/FriendsServicesConnector.cs index b1dd84e..b1dd84e 100644 --- a/OpenSim/Services/Connectors/Friends/FriendsServiceConnector.cs +++ b/OpenSim/Services/Connectors/Friends/FriendsServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs b/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs index 7deaf95..f982cc1 100644 --- a/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs +++ b/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs | |||
@@ -116,29 +116,36 @@ namespace OpenSim.Services.Connectors | |||
116 | } | 116 | } |
117 | else if (replyData.ContainsKey("Result")&& (replyData["Result"].ToString().ToLower() == "failure")) | 117 | else if (replyData.ContainsKey("Result")&& (replyData["Result"].ToString().ToLower() == "failure")) |
118 | { | 118 | { |
119 | m_log.DebugFormat("[GRID CONNECTOR]: Registration failed: {0}", replyData["Message"].ToString()); | 119 | m_log.ErrorFormat( |
120 | "[GRID CONNECTOR]: Registration failed: {0} when contacting {1}", replyData["Message"], uri); | ||
121 | |||
120 | return replyData["Message"].ToString(); | 122 | return replyData["Message"].ToString(); |
121 | } | 123 | } |
122 | else if (!replyData.ContainsKey("Result")) | 124 | else if (!replyData.ContainsKey("Result")) |
123 | { | 125 | { |
124 | m_log.DebugFormat("[GRID CONNECTOR]: reply data does not contain result field"); | 126 | m_log.ErrorFormat( |
127 | "[GRID CONNECTOR]: reply data does not contain result field when contacting {0}", uri); | ||
125 | } | 128 | } |
126 | else | 129 | else |
127 | { | 130 | { |
128 | m_log.DebugFormat("[GRID CONNECTOR]: unexpected result {0}", replyData["Result"].ToString()); | 131 | m_log.ErrorFormat( |
129 | return "Unexpected result "+replyData["Result"].ToString(); | 132 | "[GRID CONNECTOR]: unexpected result {0} when contacting {1}", replyData["Result"], uri); |
133 | |||
134 | return "Unexpected result " + replyData["Result"].ToString(); | ||
130 | } | 135 | } |
131 | |||
132 | } | 136 | } |
133 | else | 137 | else |
134 | m_log.DebugFormat("[GRID CONNECTOR]: RegisterRegion received null reply"); | 138 | { |
139 | m_log.ErrorFormat( | ||
140 | "[GRID CONNECTOR]: RegisterRegion received null reply when contacting grid server at {0}", uri); | ||
141 | } | ||
135 | } | 142 | } |
136 | catch (Exception e) | 143 | catch (Exception e) |
137 | { | 144 | { |
138 | m_log.DebugFormat("[GRID CONNECTOR]: Exception when contacting grid server at {0}: {1}", uri, e.Message); | 145 | m_log.ErrorFormat("[GRID CONNECTOR]: Exception when contacting grid server at {0}: {1}", uri, e.Message); |
139 | } | 146 | } |
140 | 147 | ||
141 | return "Error communicating with grid service"; | 148 | return string.Format("Error communicating with the grid service at {0}", uri); |
142 | } | 149 | } |
143 | 150 | ||
144 | public bool DeregisterRegion(UUID regionID) | 151 | public bool DeregisterRegion(UUID regionID) |
diff --git a/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs b/OpenSim/Services/Connectors/GridUser/GridUserServicesConnector.cs index 20d7eaf..20d7eaf 100644 --- a/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs +++ b/OpenSim/Services/Connectors/GridUser/GridUserServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs index bc0bc54..4cd933c 100644 --- a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs +++ b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs | |||
@@ -154,17 +154,32 @@ namespace OpenSim.Services.Connectors.Hypergrid | |||
154 | 154 | ||
155 | UUID mapTile = m_HGMapImage; | 155 | UUID mapTile = m_HGMapImage; |
156 | string filename = string.Empty; | 156 | string filename = string.Empty; |
157 | Bitmap bitmap = null; | 157 | |
158 | try | 158 | try |
159 | { | 159 | { |
160 | WebClient c = new WebClient(); | 160 | WebClient c = new WebClient(); |
161 | //m_log.Debug("JPEG: " + imageURL); | 161 | //m_log.Debug("JPEG: " + imageURL); |
162 | string name = regionID.ToString(); | 162 | string name = regionID.ToString(); |
163 | filename = Path.Combine(storagePath, name + ".jpg"); | 163 | filename = Path.Combine(storagePath, name + ".jpg"); |
164 | c.DownloadFile(imageURL, filename); | 164 | m_log.DebugFormat("[GATEKEEPER SERVICE CONNECTOR]: Map image at {0}, cached at {1}", imageURL, filename); |
165 | bitmap = new Bitmap(filename); | 165 | if (!File.Exists(filename)) |
166 | //m_log.Debug("Size: " + m.PhysicalDimension.Height + "-" + m.PhysicalDimension.Width); | 166 | { |
167 | byte[] imageData = OpenJPEG.EncodeFromImage(bitmap, true); | 167 | m_log.DebugFormat("[GATEKEEPER SERVICE CONNECTOR]: downloading..."); |
168 | c.DownloadFile(imageURL, filename); | ||
169 | } | ||
170 | else | ||
171 | { | ||
172 | m_log.DebugFormat("[GATEKEEPER SERVICE CONNECTOR]: using cached image"); | ||
173 | } | ||
174 | |||
175 | byte[] imageData = null; | ||
176 | |||
177 | using (Bitmap bitmap = new Bitmap(filename)) | ||
178 | { | ||
179 | //m_log.Debug("Size: " + m.PhysicalDimension.Height + "-" + m.PhysicalDimension.Width); | ||
180 | imageData = OpenJPEG.EncodeFromImage(bitmap, true); | ||
181 | } | ||
182 | |||
168 | AssetBase ass = new AssetBase(UUID.Random(), "region " + name, (sbyte)AssetType.Texture, regionID.ToString()); | 183 | AssetBase ass = new AssetBase(UUID.Random(), "region " + name, (sbyte)AssetType.Texture, regionID.ToString()); |
169 | 184 | ||
170 | // !!! for now | 185 | // !!! for now |
diff --git a/OpenSim/Services/Connectors/Hypergrid/HGFriendsServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/HGFriendsServicesConnector.cs index e984a54..e984a54 100644 --- a/OpenSim/Services/Connectors/Hypergrid/HGFriendsServiceConnector.cs +++ b/OpenSim/Services/Connectors/Hypergrid/HGFriendsServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Hypergrid/HeloServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs index 5c50936..5c50936 100644 --- a/OpenSim/Services/Connectors/Hypergrid/HeloServiceConnector.cs +++ b/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs index 9d96703..9d96703 100644 --- a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs +++ b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs b/OpenSim/Services/Connectors/Land/LandServicesConnector.cs index 833e22a..833e22a 100644 --- a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs +++ b/OpenSim/Services/Connectors/Land/LandServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/MapImage/MapImageServiceConnector.cs b/OpenSim/Services/Connectors/MapImage/MapImageServicesConnector.cs index 30bfb70..30bfb70 100644 --- a/OpenSim/Services/Connectors/MapImage/MapImageServiceConnector.cs +++ b/OpenSim/Services/Connectors/MapImage/MapImageServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs b/OpenSim/Services/Connectors/Neighbour/NeighbourServicesConnector.cs index 888b072..7429293 100644 --- a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs +++ b/OpenSim/Services/Connectors/Neighbour/NeighbourServicesConnector.cs | |||
@@ -132,8 +132,7 @@ namespace OpenSim.Services.Connectors | |||
132 | try | 132 | try |
133 | { | 133 | { |
134 | strBuffer = OSDParser.SerializeJsonString(args); | 134 | strBuffer = OSDParser.SerializeJsonString(args); |
135 | UTF8Encoding str = new UTF8Encoding(); | 135 | buffer = Util.UTF8NoBomEncoding.GetBytes(strBuffer); |
136 | buffer = str.GetBytes(strBuffer); | ||
137 | } | 136 | } |
138 | catch (Exception e) | 137 | catch (Exception e) |
139 | { | 138 | { |
diff --git a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs b/OpenSim/Services/Connectors/Presence/PresenceServicesConnector.cs index 378aab6..378aab6 100644 --- a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs +++ b/OpenSim/Services/Connectors/Presence/PresenceServicesConnector.cs | |||
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs index 2267325..95e4bab 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs | |||
@@ -79,27 +79,13 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
79 | 79 | ||
80 | public void OnConnectionClose(IClientAPI client) | 80 | public void OnConnectionClose(IClientAPI client) |
81 | { | 81 | { |
82 | if (client.IsLoggingOut) | 82 | if (client.SceneAgent.IsChildAgent) |
83 | { | 83 | return; |
84 | object sp = null; | ||
85 | Vector3 position = new Vector3(128, 128, 0); | ||
86 | Vector3 lookat = new Vector3(0, 1, 0); | ||
87 | |||
88 | if (client.Scene.TryGetScenePresence(client.AgentId, out sp)) | ||
89 | { | ||
90 | if (sp is ScenePresence) | ||
91 | { | ||
92 | if (((ScenePresence)sp).IsChildAgent) | ||
93 | return; | ||
94 | |||
95 | position = ((ScenePresence)sp).AbsolutePosition; | ||
96 | lookat = ((ScenePresence)sp).Lookat; | ||
97 | } | ||
98 | } | ||
99 | 84 | ||
100 | // m_log.DebugFormat("[SIMIAN ACTIVITY DETECTOR]: Detected client logout {0} in {1}", client.AgentId, client.Scene.RegionInfo.RegionName); | 85 | // m_log.DebugFormat("[ACTIVITY DETECTOR]: Detected client logout {0} in {1}", client.AgentId, client.Scene.RegionInfo.RegionName); |
101 | m_GridUserService.LoggedOut(client.AgentId.ToString(), client.SessionId, client.Scene.RegionInfo.RegionID, position, lookat); | 86 | m_GridUserService.LoggedOut( |
102 | } | 87 | client.AgentId.ToString(), client.SessionId, client.Scene.RegionInfo.RegionID, |
88 | client.SceneAgent.AbsolutePosition, client.SceneAgent.Lookat); | ||
103 | } | 89 | } |
104 | 90 | ||
105 | void OnEnteringNewParcel(ScenePresence sp, int localLandID, UUID regionID) | 91 | void OnEnteringNewParcel(ScenePresence sp, int localLandID, UUID regionID) |
@@ -111,4 +97,4 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
111 | }); | 97 | }); |
112 | } | 98 | } |
113 | } | 99 | } |
114 | } | 100 | } \ No newline at end of file |
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs b/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs index 620bb10..6db830b 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs | |||
@@ -149,6 +149,21 @@ namespace OpenSim.Services.Connectors | |||
149 | m_database.RemoveRegionWindlightSettings(regionID); | 149 | m_database.RemoveRegionWindlightSettings(regionID); |
150 | } | 150 | } |
151 | 151 | ||
152 | public string LoadRegionEnvironmentSettings(UUID regionUUID) | ||
153 | { | ||
154 | return m_database.LoadRegionEnvironmentSettings(regionUUID); | ||
155 | } | ||
156 | |||
157 | public void StoreRegionEnvironmentSettings(UUID regionUUID, string settings) | ||
158 | { | ||
159 | m_database.StoreRegionEnvironmentSettings(regionUUID, settings); | ||
160 | } | ||
161 | |||
162 | public void RemoveRegionEnvironmentSettings(UUID regionUUID) | ||
163 | { | ||
164 | m_database.RemoveRegionEnvironmentSettings(regionUUID); | ||
165 | } | ||
166 | |||
152 | public UUID[] GetObjectIDs(UUID regionID) | 167 | public UUID[] GetObjectIDs(UUID regionID) |
153 | { | 168 | { |
154 | return m_database.GetObjectIDs(regionID); | 169 | return m_database.GetObjectIDs(regionID); |
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs index 5037543..cd93386 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | |||
@@ -62,7 +62,7 @@ namespace OpenSim.Services.Connectors.Simulation | |||
62 | //m_Region = region; | 62 | //m_Region = region; |
63 | } | 63 | } |
64 | 64 | ||
65 | public IScene GetScene(ulong regionHandle) | 65 | public IScene GetScene(UUID regionId) |
66 | { | 66 | { |
67 | return null; | 67 | return null; |
68 | } | 68 | } |
@@ -320,29 +320,40 @@ namespace OpenSim.Services.Connectors.Simulation | |||
320 | { | 320 | { |
321 | OSDMap data = (OSDMap)result["_Result"]; | 321 | OSDMap data = (OSDMap)result["_Result"]; |
322 | 322 | ||
323 | // FIXME: If there is a _Result map then it's the success key here that indicates the true success | ||
324 | // or failure, not the sibling result node. | ||
325 | success = data["success"]; | ||
326 | |||
323 | reason = data["reason"].AsString(); | 327 | reason = data["reason"].AsString(); |
324 | if (data["version"] != null && data["version"].AsString() != string.Empty) | 328 | if (data["version"] != null && data["version"].AsString() != string.Empty) |
325 | version = data["version"].AsString(); | 329 | version = data["version"].AsString(); |
326 | 330 | ||
327 | m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: QueryAccess to {0} returned {1} version {2} ({3})", uri, success, version, data["version"].AsString()); | 331 | m_log.DebugFormat( |
332 | "[REMOTE SIMULATION CONNECTOR]: QueryAccess to {0} returned {1}, reason {2}, version {3} ({4})", | ||
333 | uri, success, reason, version, data["version"].AsString()); | ||
328 | } | 334 | } |
329 | 335 | ||
330 | if (!success) | 336 | if (!success) |
331 | { | 337 | { |
332 | if (result.ContainsKey("Message")) | 338 | // If we don't check this then OpenSimulator 0.7.3.1 and some period before will never see the |
339 | // actual failure message | ||
340 | if (!result.ContainsKey("_Result")) | ||
333 | { | 341 | { |
334 | string message = result["Message"].AsString(); | 342 | if (result.ContainsKey("Message")) |
335 | if (message == "Service request failed: [MethodNotAllowed] MethodNotAllowed") // Old style region | ||
336 | { | 343 | { |
337 | m_log.Info("[REMOTE SIMULATION CONNECTOR]: The above web util error was caused by a TP to a sim that doesn't support QUERYACCESS and can be ignored"); | 344 | string message = result["Message"].AsString(); |
338 | return true; | 345 | if (message == "Service request failed: [MethodNotAllowed] MethodNotAllowed") // Old style region |
346 | { | ||
347 | m_log.Info("[REMOTE SIMULATION CONNECTOR]: The above web util error was caused by a TP to a sim that doesn't support QUERYACCESS and can be ignored"); | ||
348 | return true; | ||
349 | } | ||
350 | |||
351 | reason = result["Message"]; | ||
352 | } | ||
353 | else | ||
354 | { | ||
355 | reason = "Communications failure"; | ||
339 | } | 356 | } |
340 | |||
341 | reason = result["Message"]; | ||
342 | } | ||
343 | else | ||
344 | { | ||
345 | reason = "Communications failure"; | ||
346 | } | 357 | } |
347 | 358 | ||
348 | return false; | 359 | return false; |
@@ -356,7 +367,7 @@ namespace OpenSim.Services.Connectors.Simulation | |||
356 | } | 367 | } |
357 | catch (Exception e) | 368 | catch (Exception e) |
358 | { | 369 | { |
359 | m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR] QueryAcess failed with exception; {0}",e.ToString()); | 370 | m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR] QueryAcesss failed with exception; {0}",e.ToString()); |
360 | } | 371 | } |
361 | 372 | ||
362 | return false; | 373 | return false; |
diff --git a/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs b/OpenSim/Services/Connectors/UserAccounts/UserAccountServicesConnector.cs index 5731e2f..5731e2f 100644 --- a/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs +++ b/OpenSim/Services/Connectors/UserAccounts/UserAccountServicesConnector.cs | |||