aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Addons/OfflineIM
diff options
context:
space:
mode:
authorMelanie Thielker2014-06-21 00:39:55 +0200
committerMelanie Thielker2014-06-21 00:39:55 +0200
commit159fcbf150b7da0e229b29aa7b94793484543d12 (patch)
treeb8c0ff3b4c758a3fba8315b556c923ef4c02a185 /OpenSim/Addons/OfflineIM
parentMerge commit '68c8633ba18f0a11cfc0ed04d1d0c7c59e6cec76' (diff)
parentMerge branch 'master' into careminster (diff)
downloadopensim-SC-159fcbf150b7da0e229b29aa7b94793484543d12.zip
opensim-SC-159fcbf150b7da0e229b29aa7b94793484543d12.tar.gz
opensim-SC-159fcbf150b7da0e229b29aa7b94793484543d12.tar.bz2
opensim-SC-159fcbf150b7da0e229b29aa7b94793484543d12.tar.xz
Merge branch 'master' of ssh://3dhosting.de/var/git/careminster
Conflicts: OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
Diffstat (limited to '')
-rw-r--r--OpenSim/Addons/OfflineIM/OfflineIMRegionModule.cs5
-rw-r--r--OpenSim/Addons/OfflineIM/Properties/AssemblyInfo.cs2
-rw-r--r--OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRemoteConnector.cs8
-rw-r--r--OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRobustConnector.cs22
-rw-r--r--OpenSim/Addons/OfflineIM/Service/OfflineIMService.cs24
5 files changed, 47 insertions, 14 deletions
diff --git a/OpenSim/Addons/OfflineIM/OfflineIMRegionModule.cs b/OpenSim/Addons/OfflineIM/OfflineIMRegionModule.cs
index 050ebd2..5ef068a 100644
--- a/OpenSim/Addons/OfflineIM/OfflineIMRegionModule.cs
+++ b/OpenSim/Addons/OfflineIM/OfflineIMRegionModule.cs
@@ -261,6 +261,11 @@ namespace OpenSim.OfflineIM
261 return m_OfflineIMService.StoreMessage(im, out reason); 261 return m_OfflineIMService.StoreMessage(im, out reason);
262 } 262 }
263 263
264 public void DeleteMessages(UUID userID)
265 {
266 m_OfflineIMService.DeleteMessages(userID);
267 }
268
264 #endregion 269 #endregion
265 } 270 }
266} 271}
diff --git a/OpenSim/Addons/OfflineIM/Properties/AssemblyInfo.cs b/OpenSim/Addons/OfflineIM/Properties/AssemblyInfo.cs
index ffe8a3e..5d71edc 100644
--- a/OpenSim/Addons/OfflineIM/Properties/AssemblyInfo.cs
+++ b/OpenSim/Addons/OfflineIM/Properties/AssemblyInfo.cs
@@ -30,7 +30,7 @@ using Mono.Addins;
30// Build Number 30// Build Number
31// Revision 31// Revision
32// 32//
33[assembly: AssemblyVersion("0.7.6.*")] 33[assembly: AssemblyVersion("0.8.0.*")]
34 34
35[assembly: Addin("OpenSim.OfflineIM", "0.1")] 35[assembly: Addin("OpenSim.OfflineIM", "0.1")]
36[assembly: AddinDependency("OpenSim", "0.5")] 36[assembly: AddinDependency("OpenSim", "0.5")]
diff --git a/OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRemoteConnector.cs b/OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRemoteConnector.cs
index 69feb76..f6b17e5 100644
--- a/OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRemoteConnector.cs
+++ b/OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRemoteConnector.cs
@@ -117,6 +117,14 @@ namespace OpenSim.OfflineIM
117 return true; 117 return true;
118 } 118 }
119 119
120 public void DeleteMessages(UUID userID)
121 {
122 Dictionary<string, object> sendData = new Dictionary<string, object>();
123 sendData["UserID"] = userID;
124
125 MakeRequest("DELETE", sendData);
126 }
127
120 #endregion 128 #endregion
121 129
122 130
diff --git a/OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRobustConnector.cs b/OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRobustConnector.cs
index 2b3a01d..13b0e7e 100644
--- a/OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRobustConnector.cs
+++ b/OpenSim/Addons/OfflineIM/Remote/OfflineIMServiceRobustConnector.cs
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
@@ -75,7 +75,7 @@ namespace OpenSim.OfflineIM
75 m_OfflineIMService = service; 75 m_OfflineIMService = service;
76 } 76 }
77 77
78 public override byte[] Handle(string path, Stream requestData, 78 protected override byte[] ProcessRequest(string path, Stream requestData,
79 IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) 79 IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
80 { 80 {
81 StreamReader sr = new StreamReader(requestData); 81 StreamReader sr = new StreamReader(requestData);
@@ -96,13 +96,14 @@ namespace OpenSim.OfflineIM
96 string method = request["METHOD"].ToString(); 96 string method = request["METHOD"].ToString();
97 request.Remove("METHOD"); 97 request.Remove("METHOD");
98 98
99 m_log.DebugFormat("[OfflineIM.V2.Handler]: {0}", method);
100 switch (method) 99 switch (method)
101 { 100 {
102 case "GET": 101 case "GET":
103 return HandleGet(request); 102 return HandleGet(request);
104 case "STORE": 103 case "STORE":
105 return HandleStore(request); 104 return HandleStore(request);
105 case "DELETE":
106 return HandleDelete(request);
106 } 107 }
107 m_log.DebugFormat("[OFFLINE IM HANDLER]: unknown method request: {0}", method); 108 m_log.DebugFormat("[OFFLINE IM HANDLER]: unknown method request: {0}", method);
108 } 109 }
@@ -159,6 +160,21 @@ namespace OpenSim.OfflineIM
159 return Util.UTF8NoBomEncoding.GetBytes(xmlString); 160 return Util.UTF8NoBomEncoding.GetBytes(xmlString);
160 } 161 }
161 162
163 byte[] HandleDelete(Dictionary<string, object> request)
164 {
165 if (!request.ContainsKey("UserID"))
166 {
167 return FailureResult();
168 }
169 else
170 {
171 UUID userID = new UUID(request["UserID"].ToString());
172 m_OfflineIMService.DeleteMessages(userID);
173
174 return SuccessResult();
175 }
176 }
177
162 #region Helpers 178 #region Helpers
163 179
164 private void NullResult(Dictionary<string, object> result, string reason) 180 private void NullResult(Dictionary<string, object> result, string reason)
diff --git a/OpenSim/Addons/OfflineIM/Service/OfflineIMService.cs b/OpenSim/Addons/OfflineIM/Service/OfflineIMService.cs
index 6ba022c..690c955 100644
--- a/OpenSim/Addons/OfflineIM/Service/OfflineIMService.cs
+++ b/OpenSim/Addons/OfflineIM/Service/OfflineIMService.cs
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
@@ -46,7 +46,7 @@ namespace OpenSim.OfflineIM
46{ 46{
47 public class OfflineIMService : OfflineIMServiceBase, IOfflineIMService 47 public class OfflineIMService : OfflineIMServiceBase, IOfflineIMService
48 { 48 {
49 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 49// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
50 private const int MAX_IM = 25; 50 private const int MAX_IM = 25;
51 51
52 private XmlSerializer m_serializer; 52 private XmlSerializer m_serializer;
@@ -91,7 +91,7 @@ namespace OpenSim.OfflineIM
91 { 91 {
92 reason = string.Empty; 92 reason = string.Empty;
93 93
94 // TODO Check limits 94 // Check limits
95 UUID principalID = new UUID(im.toAgentID); 95 UUID principalID = new UUID(im.toAgentID);
96 long count = m_Database.GetCount("PrincipalID", principalID.ToString()); 96 long count = m_Database.GetCount("PrincipalID", principalID.ToString());
97 if (count >= MAX_IM) 97 if (count >= MAX_IM)
@@ -100,7 +100,7 @@ namespace OpenSim.OfflineIM
100 return false; 100 return false;
101 } 101 }
102 102
103 string imXml = string.Empty; 103 string imXml;
104 using (MemoryStream mstream = new MemoryStream()) 104 using (MemoryStream mstream = new MemoryStream())
105 { 105 {
106 XmlWriterSettings settings = new XmlWriterSettings(); 106 XmlWriterSettings settings = new XmlWriterSettings();
@@ -110,22 +110,26 @@ namespace OpenSim.OfflineIM
110 { 110 {
111 m_serializer.Serialize(writer, im); 111 m_serializer.Serialize(writer, im);
112 writer.Flush(); 112 writer.Flush();
113
114 mstream.Position = 0;
115 using (StreamReader sreader = new StreamReader(mstream))
116 {
117 imXml = sreader.ReadToEnd();
118 }
119 } 113 }
114
115 imXml = Util.UTF8.GetString(mstream.ToArray());
120 } 116 }
121 117
122 OfflineIMData data = new OfflineIMData(); 118 OfflineIMData data = new OfflineIMData();
123 data.PrincipalID = principalID; 119 data.PrincipalID = principalID;
120 data.FromID = new UUID(im.fromAgentID);
124 data.Data = new Dictionary<string, string>(); 121 data.Data = new Dictionary<string, string>();
125 data.Data["Message"] = imXml; 122 data.Data["Message"] = imXml;
126 123
127 return m_Database.Store(data); 124 return m_Database.Store(data);
128 125
129 } 126 }
127
128 public void DeleteMessages(UUID userID)
129 {
130 m_Database.Delete("PrincipalID", userID.ToString());
131 m_Database.Delete("FromID", userID.ToString());
132 }
133
130 } 134 }
131} 135}