aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs')
-rw-r--r--OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs41
1 files changed, 2 insertions, 39 deletions
diff --git a/OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs b/OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs
index a9b81f3..a0471bb 100644
--- a/OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs
+++ b/OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs
@@ -64,10 +64,7 @@ namespace OpenSim.Capabilities.Handlers
64 Hashtable ret = new Hashtable(); 64 Hashtable ret = new Hashtable();
65 ret["int_response_code"] = (int)System.Net.HttpStatusCode.NotFound; 65 ret["int_response_code"] = (int)System.Net.HttpStatusCode.NotFound;
66 ret["content_type"] = "text/plain"; 66 ret["content_type"] = "text/plain";
67 ret["keepalive"] = false;
68 ret["reusecontext"] = false;
69 ret["int_bytes"] = 0; 67 ret["int_bytes"] = 0;
70 ret["int_lod"] = 0;
71 string MeshStr = (string)request["mesh_id"]; 68 string MeshStr = (string)request["mesh_id"];
72 69
73 70
@@ -76,6 +73,8 @@ namespace OpenSim.Capabilities.Handlers
76 if (m_assetService == null) 73 if (m_assetService == null)
77 { 74 {
78 m_log.Error("[GETMESH]: Cannot fetch mesh " + MeshStr + " without an asset service"); 75 m_log.Error("[GETMESH]: Cannot fetch mesh " + MeshStr + " without an asset service");
76 ret["keepalive"] = false;
77 return ret;
79 } 78 }
80 79
81 UUID meshID; 80 UUID meshID;
@@ -101,10 +100,7 @@ namespace OpenSim.Capabilities.Handlers
101 Hashtable responsedata = new Hashtable(); 100 Hashtable responsedata = new Hashtable();
102 responsedata["int_response_code"] = 400; //501; //410; //404; 101 responsedata["int_response_code"] = 400; //501; //410; //404;
103 responsedata["content_type"] = "text/plain"; 102 responsedata["content_type"] = "text/plain";
104 responsedata["keepalive"] = false;
105 responsedata["str_response_string"] = "Request wasn't what was expected"; 103 responsedata["str_response_string"] = "Request wasn't what was expected";
106 responsedata["reusecontext"] = false;
107 responsedata["int_lod"] = 0;
108 responsedata["int_bytes"] = 0; 104 responsedata["int_bytes"] = 0;
109 105
110 string meshStr = string.Empty; 106 string meshStr = string.Empty;
@@ -118,10 +114,8 @@ namespace OpenSim.Capabilities.Handlers
118 if (m_assetService == null) 114 if (m_assetService == null)
119 { 115 {
120 responsedata["int_response_code"] = 404; //501; //410; //404; 116 responsedata["int_response_code"] = 404; //501; //410; //404;
121 responsedata["content_type"] = "text/plain";
122 responsedata["keepalive"] = false; 117 responsedata["keepalive"] = false;
123 responsedata["str_response_string"] = "The asset service is unavailable. So is your mesh."; 118 responsedata["str_response_string"] = "The asset service is unavailable. So is your mesh.";
124 responsedata["reusecontext"] = false;
125 return responsedata; 119 return responsedata;
126 } 120 }
127 121
@@ -155,10 +149,7 @@ namespace OpenSim.Capabilities.Handlers
155 { 149 {
156 responsedata["int_response_code"] = 404; //501; //410; //404; 150 responsedata["int_response_code"] = 404; //501; //410; //404;
157 responsedata["content_type"] = "text/plain"; 151 responsedata["content_type"] = "text/plain";
158 responsedata["keepalive"] = false;
159 responsedata["str_response_string"] = "This range doesnt exist."; 152 responsedata["str_response_string"] = "This range doesnt exist.";
160 responsedata["reusecontext"] = false;
161 responsedata["int_lod"] = 3;
162 return responsedata; 153 return responsedata;
163 } 154 }
164 else 155 else
@@ -169,28 +160,11 @@ namespace OpenSim.Capabilities.Handlers
169 160
170 //m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID); 161 //m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID);
171 162
172 if (start > 20000)
173 {
174 responsedata["int_lod"] = 3;
175 }
176 else if (start < 4097)
177 {
178 responsedata["int_lod"] = 1;
179 }
180 else
181 {
182 responsedata["int_lod"] = 2;
183 }
184
185
186 if (start == 0 && len == mesh.Data.Length) // well redudante maybe 163 if (start == 0 && len == mesh.Data.Length) // well redudante maybe
187 { 164 {
188 responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.OK; 165 responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.OK;
189 responsedata["bin_response_data"] = mesh.Data; 166 responsedata["bin_response_data"] = mesh.Data;
190 responsedata["int_bytes"] = mesh.Data.Length; 167 responsedata["int_bytes"] = mesh.Data.Length;
191 responsedata["reusecontext"] = false;
192 responsedata["int_lod"] = 3;
193
194 } 168 }
195 else 169 else
196 { 170 {
@@ -203,7 +177,6 @@ namespace OpenSim.Capabilities.Handlers
203 Array.Copy(mesh.Data, start, d, 0, len); 177 Array.Copy(mesh.Data, start, d, 0, len);
204 responsedata["bin_response_data"] = d; 178 responsedata["bin_response_data"] = d;
205 responsedata["int_bytes"] = len; 179 responsedata["int_bytes"] = len;
206 responsedata["reusecontext"] = false;
207 } 180 }
208 } 181 }
209 } 182 }
@@ -213,8 +186,6 @@ namespace OpenSim.Capabilities.Handlers
213 responsedata["str_response_string"] = Convert.ToBase64String(mesh.Data); 186 responsedata["str_response_string"] = Convert.ToBase64String(mesh.Data);
214 responsedata["content_type"] = "application/vnd.ll.mesh"; 187 responsedata["content_type"] = "application/vnd.ll.mesh";
215 responsedata["int_response_code"] = 200; 188 responsedata["int_response_code"] = 200;
216 responsedata["reusecontext"] = false;
217 responsedata["int_lod"] = 3;
218 } 189 }
219 } 190 }
220 else 191 else
@@ -222,8 +193,6 @@ namespace OpenSim.Capabilities.Handlers
222 responsedata["str_response_string"] = Convert.ToBase64String(mesh.Data); 193 responsedata["str_response_string"] = Convert.ToBase64String(mesh.Data);
223 responsedata["content_type"] = "application/vnd.ll.mesh"; 194 responsedata["content_type"] = "application/vnd.ll.mesh";
224 responsedata["int_response_code"] = 200; 195 responsedata["int_response_code"] = 200;
225 responsedata["reusecontext"] = false;
226 responsedata["int_lod"] = 3;
227 } 196 }
228 } 197 }
229 // Optionally add additional mesh types here 198 // Optionally add additional mesh types here
@@ -231,10 +200,7 @@ namespace OpenSim.Capabilities.Handlers
231 { 200 {
232 responsedata["int_response_code"] = 404; //501; //410; //404; 201 responsedata["int_response_code"] = 404; //501; //410; //404;
233 responsedata["content_type"] = "text/plain"; 202 responsedata["content_type"] = "text/plain";
234 responsedata["keepalive"] = false;
235 responsedata["str_response_string"] = "Unfortunately, this asset isn't a mesh."; 203 responsedata["str_response_string"] = "Unfortunately, this asset isn't a mesh.";
236 responsedata["reusecontext"] = false;
237 responsedata["int_lod"] = 1;
238 return responsedata; 204 return responsedata;
239 } 205 }
240 } 206 }
@@ -242,10 +208,7 @@ namespace OpenSim.Capabilities.Handlers
242 { 208 {
243 responsedata["int_response_code"] = 404; //501; //410; //404; 209 responsedata["int_response_code"] = 404; //501; //410; //404;
244 responsedata["content_type"] = "text/plain"; 210 responsedata["content_type"] = "text/plain";
245 responsedata["keepalive"] = false;
246 responsedata["str_response_string"] = "Your Mesh wasn't found. Sorry!"; 211 responsedata["str_response_string"] = "Your Mesh wasn't found. Sorry!";
247 responsedata["reusecontext"] = false;
248 responsedata["int_lod"] = 0;
249 return responsedata; 212 return responsedata;
250 } 213 }
251 } 214 }