aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Client/VWoHTTP
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs1231
-rw-r--r--OpenSim/Client/VWoHTTP/VWoHTTPModule.cs133
2 files changed, 0 insertions, 1364 deletions
diff --git a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs b/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs
deleted file mode 100644
index d8cd0ac..0000000
--- a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs
+++ /dev/null
@@ -1,1231 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Drawing;
31using System.Drawing.Imaging;
32using System.IO;
33using System.Net;
34using System.Text;
35using OpenMetaverse;
36using OpenMetaverse.Imaging;
37using OpenMetaverse.Packets;
38using OpenSim.Framework;
39using OpenSim.Framework.Servers;
40using OpenSim.Framework.Servers.HttpServer;
41using OpenSim.Region.Framework.Scenes;
42
43namespace OpenSim.Client.VWoHTTP.ClientStack
44{
45 class VWHClientView : IClientAPI
46 {
47 private Scene m_scene;
48
49
50 public bool ProcessInMsg(OSHttpRequest req, OSHttpResponse resp)
51 {
52 // 0 1 2 3
53 // http://simulator.com:9000/vwohttp/sessionid/methodname/param
54 string[] urlparts = req.Url.AbsolutePath.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries);
55
56 UUID sessionID;
57 // Check for session
58 if (!UUID.TryParse(urlparts[1], out sessionID))
59 return false;
60 // Check we match session
61 if (sessionID != SessionId)
62 return false;
63
64 string method = urlparts[2];
65
66 string param = String.Empty;
67 if (urlparts.Length > 3)
68 param = urlparts[3];
69
70 bool found;
71
72 switch (method.ToLower())
73 {
74 case "textures":
75 found = ProcessTextureRequest(param, resp);
76 break;
77 default:
78 found = false;
79 break;
80 }
81
82 return found;
83 }
84
85 private bool ProcessTextureRequest(string param, OSHttpResponse resp)
86 {
87 UUID assetID;
88 if (!UUID.TryParse(param, out assetID))
89 return false;
90
91 AssetBase asset = m_scene.AssetService.Get(assetID.ToString());
92
93 if (asset == null)
94 return false;
95
96 ManagedImage tmp;
97 Image imgData;
98 byte[] jpegdata;
99
100 OpenJPEG.DecodeToImage(asset.Data, out tmp, out imgData);
101
102 using (MemoryStream ms = new MemoryStream())
103 {
104 imgData.Save(ms, ImageFormat.Jpeg);
105 jpegdata = ms.GetBuffer();
106 }
107
108 resp.ContentType = "image/jpeg";
109 resp.ContentLength = jpegdata.Length;
110 resp.StatusCode = 200;
111 resp.Body.Write(jpegdata, 0, jpegdata.Length);
112
113 return true;
114 }
115
116 public VWHClientView(UUID sessionID, UUID agentID, string agentName, Scene scene)
117 {
118 m_scene = scene;
119 }
120
121 #region Implementation of IClientAPI
122
123 public Vector3 StartPos
124 {
125 get { throw new System.NotImplementedException(); }
126 set { throw new System.NotImplementedException(); }
127 }
128
129 public UUID AgentId
130 {
131 get { throw new System.NotImplementedException(); }
132 }
133
134 public UUID SessionId
135 {
136 get { throw new System.NotImplementedException(); }
137 }
138
139 public UUID SecureSessionId
140 {
141 get { throw new System.NotImplementedException(); }
142 }
143
144 public UUID ActiveGroupId
145 {
146 get { throw new System.NotImplementedException(); }
147 }
148
149 public string ActiveGroupName
150 {
151 get { throw new System.NotImplementedException(); }
152 }
153
154 public ulong ActiveGroupPowers
155 {
156 get { throw new System.NotImplementedException(); }
157 }
158
159 public ulong GetGroupPowers(UUID groupID)
160 {
161 throw new System.NotImplementedException();
162 }
163
164 public bool IsGroupMember(UUID GroupID)
165 {
166 throw new System.NotImplementedException();
167 }
168
169 public string FirstName
170 {
171 get { throw new System.NotImplementedException(); }
172 }
173
174 public string LastName
175 {
176 get { throw new System.NotImplementedException(); }
177 }
178
179 public IScene Scene
180 {
181 get { throw new System.NotImplementedException(); }
182 }
183
184 public int NextAnimationSequenceNumber
185 {
186 get { throw new System.NotImplementedException(); }
187 }
188
189 public string Name
190 {
191 get { throw new System.NotImplementedException(); }
192 }
193
194 public bool IsActive
195 {
196 get { throw new System.NotImplementedException(); }
197 set { throw new System.NotImplementedException(); }
198 }
199 public bool IsLoggingOut
200 {
201 get { throw new System.NotImplementedException(); }
202 set { throw new System.NotImplementedException(); }
203 }
204 public bool SendLogoutPacketWhenClosing
205 {
206 set { throw new System.NotImplementedException(); }
207 }
208
209 public uint CircuitCode
210 {
211 get { throw new System.NotImplementedException(); }
212 }
213
214 public IPEndPoint RemoteEndPoint
215 {
216 get { throw new System.NotImplementedException(); }
217 }
218
219 public event GenericMessage OnGenericMessage = delegate { };
220 public event ImprovedInstantMessage OnInstantMessage = delegate { };
221 public event ChatMessage OnChatFromClient = delegate { };
222 public event TextureRequest OnRequestTexture = delegate { };
223 public event RezObject OnRezObject = delegate { };
224 public event ModifyTerrain OnModifyTerrain = delegate { };
225 public event BakeTerrain OnBakeTerrain = delegate { };
226 public event EstateChangeInfo OnEstateChangeInfo = delegate { };
227 public event SetAppearance OnSetAppearance = delegate { };
228 public event AvatarNowWearing OnAvatarNowWearing = delegate { };
229 public event RezSingleAttachmentFromInv OnRezSingleAttachmentFromInv = delegate { return new UUID(); };
230 public event RezMultipleAttachmentsFromInv OnRezMultipleAttachmentsFromInv = delegate { };
231 public event UUIDNameRequest OnDetachAttachmentIntoInv = delegate { };
232 public event ObjectAttach OnObjectAttach = delegate { };
233 public event ObjectDeselect OnObjectDetach = delegate { };
234 public event ObjectDrop OnObjectDrop = delegate { };
235 public event StartAnim OnStartAnim = delegate { };
236 public event StopAnim OnStopAnim = delegate { };
237 public event LinkObjects OnLinkObjects = delegate { };
238 public event DelinkObjects OnDelinkObjects = delegate { };
239 public event RequestMapBlocks OnRequestMapBlocks = delegate { };
240 public event RequestMapName OnMapNameRequest = delegate { };
241 public event TeleportLocationRequest OnTeleportLocationRequest = delegate { };
242 public event DisconnectUser OnDisconnectUser = delegate { };
243 public event RequestAvatarProperties OnRequestAvatarProperties = delegate { };
244 public event SetAlwaysRun OnSetAlwaysRun = delegate { };
245 public event TeleportLandmarkRequest OnTeleportLandmarkRequest = delegate { };
246 public event DeRezObject OnDeRezObject = delegate { };
247 public event Action<IClientAPI> OnRegionHandShakeReply = delegate { };
248 public event GenericCall1 OnRequestWearables = delegate { };
249 public event GenericCall1 OnCompleteMovementToRegion = delegate { };
250 public event UpdateAgent OnPreAgentUpdate;
251 public event UpdateAgent OnAgentUpdate = delegate { };
252 public event AgentRequestSit OnAgentRequestSit = delegate { };
253 public event AgentSit OnAgentSit = delegate { };
254 public event AvatarPickerRequest OnAvatarPickerRequest = delegate { };
255 public event Action<IClientAPI> OnRequestAvatarsData = delegate { };
256 public event AddNewPrim OnAddPrim = delegate { };
257 public event FetchInventory OnAgentDataUpdateRequest = delegate { };
258 public event TeleportLocationRequest OnSetStartLocationRequest = delegate { };
259 public event RequestGodlikePowers OnRequestGodlikePowers = delegate { };
260 public event GodKickUser OnGodKickUser = delegate { };
261 public event ObjectDuplicate OnObjectDuplicate = delegate { };
262 public event ObjectDuplicateOnRay OnObjectDuplicateOnRay = delegate { };
263 public event GrabObject OnGrabObject = delegate { };
264 public event DeGrabObject OnDeGrabObject = delegate { };
265 public event MoveObject OnGrabUpdate = delegate { };
266 public event SpinStart OnSpinStart = delegate { };
267 public event SpinObject OnSpinUpdate = delegate { };
268 public event SpinStop OnSpinStop = delegate { };
269 public event UpdateShape OnUpdatePrimShape = delegate { };
270 public event ObjectExtraParams OnUpdateExtraParams = delegate { };
271 public event ObjectRequest OnObjectRequest = delegate { };
272 public event ObjectSelect OnObjectSelect = delegate { };
273 public event ObjectDeselect OnObjectDeselect = delegate { };
274 public event GenericCall7 OnObjectDescription = delegate { };
275 public event GenericCall7 OnObjectName = delegate { };
276 public event GenericCall7 OnObjectClickAction = delegate { };
277 public event GenericCall7 OnObjectMaterial = delegate { };
278 public event RequestObjectPropertiesFamily OnRequestObjectPropertiesFamily = delegate { };
279 public event UpdatePrimFlags OnUpdatePrimFlags = delegate { };
280 public event UpdatePrimTexture OnUpdatePrimTexture = delegate { };
281 public event UpdateVector OnUpdatePrimGroupPosition = delegate { };
282 public event UpdateVector OnUpdatePrimSinglePosition = delegate { };
283 public event UpdatePrimRotation OnUpdatePrimGroupRotation = delegate { };
284 public event UpdatePrimSingleRotation OnUpdatePrimSingleRotation = delegate { };
285 public event UpdatePrimSingleRotationPosition OnUpdatePrimSingleRotationPosition = delegate { };
286 public event UpdatePrimGroupRotation OnUpdatePrimGroupMouseRotation = delegate { };
287 public event UpdateVector OnUpdatePrimScale = delegate { };
288 public event UpdateVector OnUpdatePrimGroupScale = delegate { };
289 public event StatusChange OnChildAgentStatus = delegate { };
290 public event GenericCall2 OnStopMovement = delegate { };
291 public event Action<UUID> OnRemoveAvatar = delegate { };
292 public event ObjectPermissions OnObjectPermissions = delegate { };
293 public event CreateNewInventoryItem OnCreateNewInventoryItem = delegate { };
294 public event LinkInventoryItem OnLinkInventoryItem = delegate { };
295 public event CreateInventoryFolder OnCreateNewInventoryFolder = delegate { };
296 public event UpdateInventoryFolder OnUpdateInventoryFolder = delegate { };
297 public event MoveInventoryFolder OnMoveInventoryFolder = delegate { };
298 public event FetchInventoryDescendents OnFetchInventoryDescendents = delegate { };
299 public event PurgeInventoryDescendents OnPurgeInventoryDescendents = delegate { };
300 public event FetchInventory OnFetchInventory = delegate { };
301 public event RequestTaskInventory OnRequestTaskInventory = delegate { };
302 public event UpdateInventoryItem OnUpdateInventoryItem = delegate { };
303 public event CopyInventoryItem OnCopyInventoryItem = delegate { };
304 public event MoveInventoryItem OnMoveInventoryItem = delegate { };
305 public event RemoveInventoryFolder OnRemoveInventoryFolder = delegate { };
306 public event RemoveInventoryItem OnRemoveInventoryItem = delegate { };
307 public event UDPAssetUploadRequest OnAssetUploadRequest = delegate { };
308 public event XferReceive OnXferReceive = delegate { };
309 public event RequestXfer OnRequestXfer = delegate { };
310 public event ConfirmXfer OnConfirmXfer = delegate { };
311 public event AbortXfer OnAbortXfer = delegate { };
312 public event RezScript OnRezScript = delegate { };
313 public event UpdateTaskInventory OnUpdateTaskInventory = delegate { };
314 public event MoveTaskInventory OnMoveTaskItem = delegate { };
315 public event RemoveTaskInventory OnRemoveTaskItem = delegate { };
316 public event RequestAsset OnRequestAsset = delegate { };
317 public event UUIDNameRequest OnNameFromUUIDRequest = delegate { };
318 public event ParcelAccessListRequest OnParcelAccessListRequest = delegate { };
319 public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest = delegate { };
320 public event ParcelPropertiesRequest OnParcelPropertiesRequest = delegate { };
321 public event ParcelDivideRequest OnParcelDivideRequest = delegate { };
322 public event ParcelJoinRequest OnParcelJoinRequest = delegate { };
323 public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest = delegate { };
324 public event ParcelSelectObjects OnParcelSelectObjects = delegate { };
325 public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest = delegate { };
326 public event ParcelAbandonRequest OnParcelAbandonRequest = delegate { };
327 public event ParcelGodForceOwner OnParcelGodForceOwner = delegate { };
328 public event ParcelReclaim OnParcelReclaim = delegate { };
329 public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest = delegate { };
330 public event ParcelDeedToGroup OnParcelDeedToGroup = delegate { };
331 public event RegionInfoRequest OnRegionInfoRequest = delegate { };
332 public event EstateCovenantRequest OnEstateCovenantRequest = delegate { };
333 public event FriendActionDelegate OnApproveFriendRequest = delegate { };
334 public event FriendActionDelegate OnDenyFriendRequest = delegate { };
335 public event FriendshipTermination OnTerminateFriendship = delegate { };
336 public event GrantUserFriendRights OnGrantUserRights = delegate { };
337 public event MoneyTransferRequest OnMoneyTransferRequest = delegate { };
338 public event EconomyDataRequest OnEconomyDataRequest = delegate { };
339 public event MoneyBalanceRequest OnMoneyBalanceRequest = delegate { };
340 public event UpdateAvatarProperties OnUpdateAvatarProperties = delegate { };
341 public event ParcelBuy OnParcelBuy = delegate { };
342 public event RequestPayPrice OnRequestPayPrice = delegate { };
343 public event ObjectSaleInfo OnObjectSaleInfo = delegate { };
344 public event ObjectBuy OnObjectBuy = delegate { };
345 public event BuyObjectInventory OnBuyObjectInventory = delegate { };
346 public event RequestTerrain OnRequestTerrain = delegate { };
347 public event RequestTerrain OnUploadTerrain = delegate { };
348 public event ObjectIncludeInSearch OnObjectIncludeInSearch = delegate { };
349 public event UUIDNameRequest OnTeleportHomeRequest = delegate { };
350 public event ScriptAnswer OnScriptAnswer = delegate { };
351 public event AgentSit OnUndo = delegate { };
352 public event AgentSit OnRedo = delegate { };
353 public event LandUndo OnLandUndo = delegate { };
354 public event ForceReleaseControls OnForceReleaseControls = delegate { };
355 public event GodLandStatRequest OnLandStatRequest = delegate { };
356 public event DetailedEstateDataRequest OnDetailedEstateDataRequest = delegate { };
357 public event SetEstateFlagsRequest OnSetEstateFlagsRequest = delegate { };
358 public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture = delegate { };
359 public event SetEstateTerrainDetailTexture OnSetEstateTerrainDetailTexture = delegate { };
360 public event SetEstateTerrainTextureHeights OnSetEstateTerrainTextureHeights = delegate { };
361 public event CommitEstateTerrainTextureRequest OnCommitEstateTerrainTextureRequest = delegate { };
362 public event SetRegionTerrainSettings OnSetRegionTerrainSettings = delegate { };
363 public event EstateRestartSimRequest OnEstateRestartSimRequest = delegate { };
364 public event EstateChangeCovenantRequest OnEstateChangeCovenantRequest = delegate { };
365 public event UpdateEstateAccessDeltaRequest OnUpdateEstateAccessDeltaRequest = delegate { };
366 public event SimulatorBlueBoxMessageRequest OnSimulatorBlueBoxMessageRequest = delegate { };
367 public event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest = delegate { };
368 public event EstateDebugRegionRequest OnEstateDebugRegionRequest = delegate { };
369 public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest = delegate { };
370 public event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest = delegate { };
371 public event UUIDNameRequest OnUUIDGroupNameRequest = delegate { };
372 public event RegionHandleRequest OnRegionHandleRequest = delegate { };
373 public event ParcelInfoRequest OnParcelInfoRequest = delegate { };
374 public event RequestObjectPropertiesFamily OnObjectGroupRequest = delegate { };
375 public event ScriptReset OnScriptReset = delegate { };
376 public event GetScriptRunning OnGetScriptRunning = delegate { };
377 public event SetScriptRunning OnSetScriptRunning = delegate { };
378 public event UpdateVector OnAutoPilotGo = delegate { };
379 public event TerrainUnacked OnUnackedTerrain = delegate { };
380 public event ActivateGesture OnActivateGesture = delegate { };
381 public event DeactivateGesture OnDeactivateGesture = delegate { };
382 public event ObjectOwner OnObjectOwner = delegate { };
383 public event DirPlacesQuery OnDirPlacesQuery = delegate { };
384 public event DirFindQuery OnDirFindQuery = delegate { };
385 public event DirLandQuery OnDirLandQuery = delegate { };
386 public event DirPopularQuery OnDirPopularQuery = delegate { };
387 public event DirClassifiedQuery OnDirClassifiedQuery = delegate { };
388 public event EventInfoRequest OnEventInfoRequest = delegate { };
389 public event ParcelSetOtherCleanTime OnParcelSetOtherCleanTime = delegate { };
390 public event MapItemRequest OnMapItemRequest = delegate { };
391 public event OfferCallingCard OnOfferCallingCard = delegate { };
392 public event AcceptCallingCard OnAcceptCallingCard = delegate { };
393 public event DeclineCallingCard OnDeclineCallingCard = delegate { };
394 public event SoundTrigger OnSoundTrigger = delegate { };
395 public event StartLure OnStartLure = delegate { };
396 public event TeleportLureRequest OnTeleportLureRequest = delegate { };
397 public event NetworkStats OnNetworkStatsUpdate = delegate { };
398 public event ClassifiedInfoRequest OnClassifiedInfoRequest = delegate { };
399 public event ClassifiedInfoUpdate OnClassifiedInfoUpdate = delegate { };
400 public event ClassifiedDelete OnClassifiedDelete = delegate { };
401 public event ClassifiedDelete OnClassifiedGodDelete = delegate { };
402 public event EventNotificationAddRequest OnEventNotificationAddRequest = delegate { };
403 public event EventNotificationRemoveRequest OnEventNotificationRemoveRequest = delegate { };
404 public event EventGodDelete OnEventGodDelete = delegate { };
405 public event ParcelDwellRequest OnParcelDwellRequest = delegate { };
406 public event UserInfoRequest OnUserInfoRequest = delegate { };
407 public event UpdateUserInfo OnUpdateUserInfo = delegate { };
408 public event RetrieveInstantMessages OnRetrieveInstantMessages = delegate { };
409 public event PickDelete OnPickDelete = delegate { };
410 public event PickGodDelete OnPickGodDelete = delegate { };
411 public event PickInfoUpdate OnPickInfoUpdate = delegate { };
412 public event AvatarNotesUpdate OnAvatarNotesUpdate = delegate { };
413 public event MuteListRequest OnMuteListRequest = delegate { };
414 public event AvatarInterestUpdate OnAvatarInterestUpdate = delegate { };
415 public event PlacesQuery OnPlacesQuery = delegate { };
416 public event FindAgentUpdate OnFindAgent = delegate { };
417 public event TrackAgentUpdate OnTrackAgent = delegate { };
418 public event NewUserReport OnUserReport = delegate { };
419 public event SaveStateHandler OnSaveState = delegate { };
420 public event GroupAccountSummaryRequest OnGroupAccountSummaryRequest = delegate { };
421 public event GroupAccountDetailsRequest OnGroupAccountDetailsRequest = delegate { };
422 public event GroupAccountTransactionsRequest OnGroupAccountTransactionsRequest = delegate { };
423 public event FreezeUserUpdate OnParcelFreezeUser = delegate { };
424 public event EjectUserUpdate OnParcelEjectUser = delegate { };
425 public event ParcelBuyPass OnParcelBuyPass = delegate { };
426 public event ParcelGodMark OnParcelGodMark = delegate { };
427 public event GroupActiveProposalsRequest OnGroupActiveProposalsRequest = delegate { };
428 public event GroupVoteHistoryRequest OnGroupVoteHistoryRequest = delegate { };
429 public event SimWideDeletesDelegate OnSimWideDeletes = delegate { };
430 public event SendPostcard OnSendPostcard = delegate { };
431 public event MuteListEntryUpdate OnUpdateMuteListEntry = delegate { };
432 public event MuteListEntryRemove OnRemoveMuteListEntry = delegate { };
433 public event GodlikeMessage onGodlikeMessage = delegate { };
434 public event GodUpdateRegionInfoUpdate OnGodUpdateRegionInfoUpdate = delegate { };
435
436
437
438 public void SetDebugPacketLevel(int newDebug)
439 {
440 throw new System.NotImplementedException();
441 }
442
443 public void InPacket(object NewPack)
444 {
445 throw new System.NotImplementedException();
446 }
447
448 public void ProcessInPacket(Packet NewPack)
449 {
450 throw new System.NotImplementedException();
451 }
452
453 public void Close()
454 {
455 throw new System.NotImplementedException();
456 }
457
458 public void Kick(string message)
459 {
460 throw new System.NotImplementedException();
461 }
462
463 public void Start()
464 {
465 throw new System.NotImplementedException();
466 }
467
468 public void Stop()
469 {
470 throw new System.NotImplementedException();
471 }
472
473 public void SendWearables(AvatarWearable[] wearables, int serial)
474 {
475 throw new System.NotImplementedException();
476 }
477
478 public void SendAppearance(UUID agentID, byte[] visualParams, byte[] textureEntry)
479 {
480 throw new System.NotImplementedException();
481 }
482
483 public void SendStartPingCheck(byte seq)
484 {
485 throw new System.NotImplementedException();
486 }
487
488 public void SendKillObject(ulong regionHandle, uint localID)
489 {
490 throw new System.NotImplementedException();
491 }
492
493 public void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs)
494 {
495 throw new System.NotImplementedException();
496 }
497
498 public void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args)
499 {
500 throw new System.NotImplementedException();
501 }
502
503 public void SendChatMessage(string message, byte type, Vector3 fromPos, string fromName, UUID fromAgentID, byte source, byte audible)
504 {
505 throw new System.NotImplementedException();
506 }
507
508 public void SendInstantMessage(GridInstantMessage im)
509 {
510 throw new System.NotImplementedException();
511 }
512
513 public void SendGenericMessage(string method, List<string> message)
514 {
515 }
516
517 public void SendGenericMessage(string method, List<byte[]> message)
518 {
519 throw new System.NotImplementedException();
520 }
521
522 public void SendLayerData(float[] map)
523 {
524 throw new System.NotImplementedException();
525 }
526
527 public void SendLayerData(int px, int py, float[] map)
528 {
529 throw new System.NotImplementedException();
530 }
531
532 public void SendWindData(Vector2[] windSpeeds)
533 {
534 throw new System.NotImplementedException();
535 }
536
537 public void SendCloudData(float[] cloudCover)
538 {
539 throw new System.NotImplementedException();
540 }
541
542 public void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look)
543 {
544 throw new System.NotImplementedException();
545 }
546
547 public void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint)
548 {
549 throw new System.NotImplementedException();
550 }
551
552 public AgentCircuitData RequestClientInfo()
553 {
554 throw new System.NotImplementedException();
555 }
556
557 public void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt, IPEndPoint newRegionExternalEndPoint, string capsURL)
558 {
559 throw new System.NotImplementedException();
560 }
561
562 public void SendMapBlock(List<MapBlockData> mapBlocks, uint flag)
563 {
564 throw new System.NotImplementedException();
565 }
566
567 public void SendLocalTeleport(Vector3 position, Vector3 lookAt, uint flags)
568 {
569 throw new System.NotImplementedException();
570 }
571
572 public void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, uint flags, string capsURL)
573 {
574 throw new System.NotImplementedException();
575 }
576
577 public void SendTeleportFailed(string reason)
578 {
579 throw new System.NotImplementedException();
580 }
581
582 public void SendTeleportStart(uint flags)
583 {
584 throw new System.NotImplementedException();
585 }
586
587 public void SendTeleportProgress(uint flags, string message)
588 {
589 throw new System.NotImplementedException();
590 }
591
592 public void SendMoneyBalance(UUID transaction, bool success, byte[] description, int balance)
593 {
594 throw new System.NotImplementedException();
595 }
596
597 public void SendPayPrice(UUID objectID, int[] payPrice)
598 {
599 throw new System.NotImplementedException();
600 }
601
602 public void SendCoarseLocationUpdate(List<UUID> users, List<Vector3> CoarseLocations)
603 {
604 throw new System.NotImplementedException();
605 }
606
607 public void SetChildAgentThrottle(byte[] throttle)
608 {
609 throw new System.NotImplementedException();
610 }
611
612 public void SendAvatarDataImmediate(ISceneEntity avatar)
613 {
614 throw new System.NotImplementedException();
615 }
616
617 public void SendPrimUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags)
618 {
619 throw new System.NotImplementedException();
620 }
621
622 public void ReprioritizeUpdates()
623 {
624 throw new System.NotImplementedException();
625 }
626
627 public void FlushPrimUpdates()
628 {
629 throw new System.NotImplementedException();
630 }
631
632 public void SendInventoryFolderDetails(UUID ownerID, UUID folderID, List<InventoryItemBase> items, List<InventoryFolderBase> folders, int version, bool fetchFolders, bool fetchItems)
633 {
634 throw new System.NotImplementedException();
635 }
636
637 public void SendInventoryItemDetails(UUID ownerID, InventoryItemBase item)
638 {
639 throw new System.NotImplementedException();
640 }
641
642 public void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackId)
643 {
644 throw new System.NotImplementedException();
645 }
646
647 public void SendRemoveInventoryItem(UUID itemID)
648 {
649 throw new System.NotImplementedException();
650 }
651
652 public void SendTakeControls(int controls, bool passToAgent, bool TakeControls)
653 {
654 throw new System.NotImplementedException();
655 }
656
657 public void SendTaskInventory(UUID taskID, short serial, byte[] fileName)
658 {
659 throw new System.NotImplementedException();
660 }
661
662 public void SendBulkUpdateInventory(InventoryNodeBase node)
663 {
664 throw new System.NotImplementedException();
665 }
666
667 public void SendXferPacket(ulong xferID, uint packet, byte[] data)
668 {
669 throw new System.NotImplementedException();
670 }
671
672 public virtual void SendAbortXferPacket(ulong xferID)
673 {
674 throw new System.NotImplementedException();
675 }
676
677 public void SendEconomyData(float EnergyEfficiency, int ObjectCapacity, int ObjectCount, int PriceEnergyUnit, int PriceGroupCreate, int PriceObjectClaim, float PriceObjectRent, float PriceObjectScaleFactor, int PriceParcelClaim, float PriceParcelClaimFactor, int PriceParcelRent, int PricePublicObjectDecay, int PricePublicObjectDelete, int PriceRentLight, int PriceUpload, int TeleportMinPrice, float TeleportPriceExponent)
678 {
679 throw new System.NotImplementedException();
680 }
681
682 public void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data)
683 {
684 throw new System.NotImplementedException();
685 }
686
687 public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle)
688 {
689 throw new System.NotImplementedException();
690 }
691
692 public void SendPreLoadSound(UUID objectID, UUID ownerID, UUID soundID)
693 {
694 throw new System.NotImplementedException();
695 }
696
697 public void SendPlayAttachedSound(UUID soundID, UUID objectID, UUID ownerID, float gain, byte flags)
698 {
699 throw new System.NotImplementedException();
700 }
701
702 public void SendTriggeredSound(UUID soundID, UUID ownerID, UUID objectID, UUID parentID, ulong handle, Vector3 position, float gain)
703 {
704 throw new System.NotImplementedException();
705 }
706
707 public void SendAttachedSoundGainChange(UUID objectID, float gain)
708 {
709 throw new System.NotImplementedException();
710 }
711
712 public void SendNameReply(UUID profileId, string firstname, string lastname)
713 {
714 throw new System.NotImplementedException();
715 }
716
717 public void SendAlertMessage(string message)
718 {
719 throw new System.NotImplementedException();
720 }
721
722 public void SendAgentAlertMessage(string message, bool modal)
723 {
724 throw new System.NotImplementedException();
725 }
726
727 public void SendLoadURL(string objectname, UUID objectID, UUID ownerID, bool groupOwned, string message, string url)
728 {
729 throw new System.NotImplementedException();
730 }
731
732 public void SendDialog(string objectname, UUID objectID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
733 {
734 throw new System.NotImplementedException();
735 }
736
737 public bool AddMoney(int debit)
738 {
739 throw new System.NotImplementedException();
740 }
741
742 public void SendSunPos(Vector3 sunPos, Vector3 sunVel, ulong CurrentTime, uint SecondsPerSunCycle, uint SecondsPerYear, float OrbitalPosition)
743 {
744 throw new System.NotImplementedException();
745 }
746
747 public void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks)
748 {
749 throw new System.NotImplementedException();
750 }
751
752 public void SendViewerTime(int phase)
753 {
754 throw new System.NotImplementedException();
755 }
756
757 public UUID GetDefaultAnimation(string name)
758 {
759 throw new System.NotImplementedException();
760 }
761
762 public void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, byte[] charterMember, string flAbout, uint flags, UUID flImageID, UUID imageID, string profileURL, UUID partnerID)
763 {
764 throw new System.NotImplementedException();
765 }
766
767 public void SendScriptQuestion(UUID taskID, string taskName, string ownerName, UUID itemID, int question)
768 {
769 throw new System.NotImplementedException();
770 }
771
772 public void SendHealth(float health)
773 {
774 throw new System.NotImplementedException();
775 }
776
777 public void SendEstateList(UUID invoice, int code, UUID[] Data, uint estateID)
778 {
779 throw new System.NotImplementedException();
780 }
781
782 public void SendBannedUserList(UUID invoice, EstateBan[] banlist, uint estateID)
783 {
784 throw new System.NotImplementedException();
785 }
786
787 public void SendRegionInfoToEstateMenu(RegionInfoForEstateMenuArgs args)
788 {
789 throw new System.NotImplementedException();
790 }
791
792 public void SendEstateCovenantInformation(UUID covenant)
793 {
794 throw new System.NotImplementedException();
795 }
796
797 public void SendDetailedEstateData(UUID invoice, string estateName, uint estateID, uint parentEstate, uint estateFlags, uint sunPosition, UUID covenant, string abuseEmail, UUID estateOwner)
798 {
799 throw new System.NotImplementedException();
800 }
801
802 public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags)
803 {
804 throw new System.NotImplementedException();
805 }
806
807 public void SendLandAccessListData(List<UUID> avatars, uint accessFlag, int localLandID)
808 {
809 throw new System.NotImplementedException();
810 }
811
812 public void SendForceClientSelectObjects(List<uint> objectIDs)
813 {
814 throw new System.NotImplementedException();
815 }
816
817 public void SendCameraConstraint(Vector4 ConstraintPlane)
818 {
819
820 }
821
822 public void SendLandObjectOwners(LandData land, List<UUID> groups, Dictionary<UUID, int> ownersAndCount)
823 {
824 throw new System.NotImplementedException();
825 }
826
827 public void SendLandParcelOverlay(byte[] data, int sequence_id)
828 {
829 throw new System.NotImplementedException();
830 }
831
832 public void SendParcelMediaCommand(uint flags, ParcelMediaCommandEnum command, float time)
833 {
834 throw new System.NotImplementedException();
835 }
836
837 public void SendParcelMediaUpdate(string mediaUrl, UUID mediaTextureID, byte autoScale, string mediaType, string mediaDesc, int mediaWidth, int mediaHeight, byte mediaLoop)
838 {
839 throw new System.NotImplementedException();
840 }
841
842 public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID)
843 {
844 throw new System.NotImplementedException();
845 }
846
847 public void SendConfirmXfer(ulong xferID, uint PacketID)
848 {
849 throw new System.NotImplementedException();
850 }
851
852 public void SendXferRequest(ulong XferID, short AssetType, UUID vFileID, byte FilePath, byte[] FileName)
853 {
854 throw new System.NotImplementedException();
855 }
856
857 public void SendInitiateDownload(string simFileName, string clientFileName)
858 {
859 throw new System.NotImplementedException();
860 }
861
862 public void SendImageFirstPart(ushort numParts, UUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec)
863 {
864 throw new System.NotImplementedException();
865 }
866
867 public void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData)
868 {
869 throw new System.NotImplementedException();
870 }
871
872 public void SendImageNotFound(UUID imageid)
873 {
874 throw new System.NotImplementedException();
875 }
876
877 public void SendShutdownConnectionNotice()
878 {
879 throw new System.NotImplementedException();
880 }
881
882 public void SendSimStats(SimStats stats)
883 {
884 throw new System.NotImplementedException();
885 }
886
887 public void SendObjectPropertiesFamilyData(ISceneEntity Entity, uint RequestFlags)
888 {
889 throw new System.NotImplementedException();
890 }
891
892 public void SendObjectPropertiesReply(ISceneEntity entity)
893 {
894 throw new System.NotImplementedException();
895 }
896
897 public void SendAgentOffline(UUID[] agentIDs)
898 {
899 throw new System.NotImplementedException();
900 }
901
902 public void SendAgentOnline(UUID[] agentIDs)
903 {
904 throw new System.NotImplementedException();
905 }
906
907 public void SendSitResponse(UUID TargetID, Vector3 OffsetPos, Quaternion SitOrientation, bool autopilot, Vector3 CameraAtOffset, Vector3 CameraEyeOffset, bool ForceMouseLook)
908 {
909 throw new System.NotImplementedException();
910 }
911
912 public void SendAdminResponse(UUID Token, uint AdminLevel)
913 {
914 throw new System.NotImplementedException();
915 }
916
917 public void SendGroupMembership(GroupMembershipData[] GroupMembership)
918 {
919 throw new System.NotImplementedException();
920 }
921
922 public void SendGroupNameReply(UUID groupLLUID, string GroupName)
923 {
924 throw new System.NotImplementedException();
925 }
926
927 public void SendJoinGroupReply(UUID groupID, bool success)
928 {
929 throw new System.NotImplementedException();
930 }
931
932 public void SendEjectGroupMemberReply(UUID agentID, UUID groupID, bool success)
933 {
934 throw new System.NotImplementedException();
935 }
936
937 public void SendLeaveGroupReply(UUID groupID, bool success)
938 {
939 throw new System.NotImplementedException();
940 }
941
942 public void SendCreateGroupReply(UUID groupID, bool success, string message)
943 {
944 throw new System.NotImplementedException();
945 }
946
947 public void SendLandStatReply(uint reportType, uint requestFlags, uint resultCount, LandStatReportItem[] lsrpia)
948 {
949 throw new System.NotImplementedException();
950 }
951
952 public void SendScriptRunningReply(UUID objectID, UUID itemID, bool running)
953 {
954 throw new System.NotImplementedException();
955 }
956
957 public void SendAsset(AssetRequestToClient req)
958 {
959 throw new System.NotImplementedException();
960 }
961
962 public void SendTexture(AssetBase TextureAsset)
963 {
964 throw new System.NotImplementedException();
965 }
966
967 public byte[] GetThrottlesPacked(float multiplier)
968 {
969 throw new System.NotImplementedException();
970 }
971
972 public event ViewerEffectEventHandler OnViewerEffect;
973 public event Action<IClientAPI> OnLogout;
974 public event Action<IClientAPI> OnConnectionClosed;
975 public void SendBlueBoxMessage(UUID FromAvatarID, string FromAvatarName, string Message)
976 {
977 throw new System.NotImplementedException();
978 }
979
980 public void SendLogoutPacket()
981 {
982 throw new System.NotImplementedException();
983 }
984
985 public EndPoint GetClientEP()
986 {
987 return null;
988 }
989
990 public ClientInfo GetClientInfo()
991 {
992 throw new System.NotImplementedException();
993 }
994
995 public void SetClientInfo(ClientInfo info)
996 {
997 throw new System.NotImplementedException();
998 }
999
1000 public void SetClientOption(string option, string value)
1001 {
1002 throw new System.NotImplementedException();
1003 }
1004
1005 public string GetClientOption(string option)
1006 {
1007 throw new System.NotImplementedException();
1008 }
1009
1010 public void Terminate()
1011 {
1012 throw new System.NotImplementedException();
1013 }
1014
1015 public void SendSetFollowCamProperties(UUID objectID, SortedDictionary<int, float> parameters)
1016 {
1017 throw new System.NotImplementedException();
1018 }
1019
1020 public void SendClearFollowCamProperties(UUID objectID)
1021 {
1022 throw new System.NotImplementedException();
1023 }
1024
1025 public void SendRegionHandle(UUID regoinID, ulong handle)
1026 {
1027 throw new System.NotImplementedException();
1028 }
1029
1030 public void SendParcelInfo(RegionInfo info, LandData land, UUID parcelID, uint x, uint y)
1031 {
1032 throw new System.NotImplementedException();
1033 }
1034
1035 public void SendScriptTeleportRequest(string objName, string simName, Vector3 pos, Vector3 lookAt)
1036 {
1037 throw new System.NotImplementedException();
1038 }
1039
1040 public void SendDirPlacesReply(UUID queryID, DirPlacesReplyData[] data)
1041 {
1042 throw new System.NotImplementedException();
1043 }
1044
1045 public void SendDirPeopleReply(UUID queryID, DirPeopleReplyData[] data)
1046 {
1047 throw new System.NotImplementedException();
1048 }
1049
1050 public void SendDirEventsReply(UUID queryID, DirEventsReplyData[] data)
1051 {
1052 throw new System.NotImplementedException();
1053 }
1054
1055 public void SendDirGroupsReply(UUID queryID, DirGroupsReplyData[] data)
1056 {
1057 throw new System.NotImplementedException();
1058 }
1059
1060 public void SendDirClassifiedReply(UUID queryID, DirClassifiedReplyData[] data)
1061 {
1062 throw new System.NotImplementedException();
1063 }
1064
1065 public void SendDirLandReply(UUID queryID, DirLandReplyData[] data)
1066 {
1067 throw new System.NotImplementedException();
1068 }
1069
1070 public void SendDirPopularReply(UUID queryID, DirPopularReplyData[] data)
1071 {
1072 throw new System.NotImplementedException();
1073 }
1074
1075 public void SendEventInfoReply(EventData info)
1076 {
1077 throw new System.NotImplementedException();
1078 }
1079
1080 public void SendMapItemReply(mapItemReply[] replies, uint mapitemtype, uint flags)
1081 {
1082 throw new System.NotImplementedException();
1083 }
1084
1085 public void SendAvatarGroupsReply(UUID avatarID, GroupMembershipData[] data)
1086 {
1087 throw new System.NotImplementedException();
1088 }
1089
1090 public void SendOfferCallingCard(UUID srcID, UUID transactionID)
1091 {
1092 throw new System.NotImplementedException();
1093 }
1094
1095 public void SendAcceptCallingCard(UUID transactionID)
1096 {
1097 throw new System.NotImplementedException();
1098 }
1099
1100 public void SendDeclineCallingCard(UUID transactionID)
1101 {
1102 throw new System.NotImplementedException();
1103 }
1104
1105 public void SendTerminateFriend(UUID exFriendID)
1106 {
1107 throw new System.NotImplementedException();
1108 }
1109
1110 public void SendAvatarClassifiedReply(UUID targetID, UUID[] classifiedID, string[] name)
1111 {
1112 throw new System.NotImplementedException();
1113 }
1114
1115 public void SendClassifiedInfoReply(UUID classifiedID, UUID creatorID, uint creationDate, uint expirationDate, uint category, string name, string description, UUID parcelID, uint parentEstate, UUID snapshotID, string simName, Vector3 globalPos, string parcelName, byte classifiedFlags, int price)
1116 {
1117 throw new System.NotImplementedException();
1118 }
1119
1120 public void SendAgentDropGroup(UUID groupID)
1121 {
1122 throw new System.NotImplementedException();
1123 }
1124
1125 public void RefreshGroupMembership()
1126 {
1127 throw new System.NotImplementedException();
1128 }
1129
1130 public void SendAvatarNotesReply(UUID targetID, string text)
1131 {
1132 throw new System.NotImplementedException();
1133 }
1134
1135 public void SendAvatarPicksReply(UUID targetID, Dictionary<UUID, string> picks)
1136 {
1137 throw new System.NotImplementedException();
1138 }
1139
1140 public void SendPickInfoReply(UUID pickID, UUID creatorID, bool topPick, UUID parcelID, string name, string desc, UUID snapshotID, string user, string originalName, string simName, Vector3 posGlobal, int sortOrder, bool enabled)
1141 {
1142 throw new System.NotImplementedException();
1143 }
1144
1145 public void SendAvatarClassifiedReply(UUID targetID, Dictionary<UUID, string> classifieds)
1146 {
1147 throw new System.NotImplementedException();
1148 }
1149
1150 public void SendAvatarInterestUpdate(IClientAPI client, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages)
1151 {
1152 throw new System.NotImplementedException();
1153 }
1154
1155 public void SendParcelDwellReply(int localID, UUID parcelID, float dwell)
1156 {
1157 throw new System.NotImplementedException();
1158 }
1159
1160 public void SendUserInfoReply(bool imViaEmail, bool visible, string email)
1161 {
1162 throw new System.NotImplementedException();
1163 }
1164
1165 public void SendUseCachedMuteList()
1166 {
1167 throw new System.NotImplementedException();
1168 }
1169
1170 public void SendMuteListUpdate(string filename)
1171 {
1172 throw new System.NotImplementedException();
1173 }
1174
1175 public void KillEndDone()
1176 {
1177 throw new System.NotImplementedException();
1178 }
1179
1180 public bool AddGenericPacketHandler(string MethodName, GenericMessage handler)
1181 {
1182 throw new System.NotImplementedException();
1183 }
1184
1185 #endregion
1186
1187 public void SendRebakeAvatarTextures(UUID textureID)
1188 {
1189 }
1190
1191 public void SendAvatarInterestsReply(UUID avatarID, uint wantMask, string wantText, uint skillsMask, string skillsText, string languages)
1192 {
1193 }
1194
1195 public void SendGroupAccountingDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID, int amt)
1196 {
1197 }
1198
1199 public void SendGroupAccountingSummary(IClientAPI sender,UUID groupID, uint moneyAmt, int totalTier, int usedTier)
1200 {
1201 }
1202
1203 public void SendGroupTransactionsSummaryDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID,int amt)
1204 {
1205 }
1206
1207 public void SendGroupVoteHistory(UUID groupID, UUID transactionID, GroupVoteHistory[] Votes)
1208 {
1209 }
1210
1211 public void SendGroupActiveProposals(UUID groupID, UUID transactionID, GroupActiveProposals[] Proposals)
1212 {
1213 }
1214
1215 public void SendChangeUserRights(UUID agentID, UUID friendID, int rights)
1216 {
1217 }
1218
1219 public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
1220 {
1221 }
1222
1223 public void StopFlying(ISceneEntity presence)
1224 {
1225 }
1226
1227 public void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data)
1228 {
1229 }
1230 }
1231}
diff --git a/OpenSim/Client/VWoHTTP/VWoHTTPModule.cs b/OpenSim/Client/VWoHTTP/VWoHTTPModule.cs
deleted file mode 100644
index 31385ba..0000000
--- a/OpenSim/Client/VWoHTTP/VWoHTTPModule.cs
+++ /dev/null
@@ -1,133 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27using System;
28using System.Collections.Generic;
29using System.Text;
30using Nini.Config;
31using OpenMetaverse;
32using OpenSim.Client.VWoHTTP.ClientStack;
33using OpenSim.Framework;
34using OpenSim.Framework.Servers;
35using OpenSim.Framework.Servers.HttpServer;
36using OpenSim.Region.Framework.Interfaces;
37using OpenSim.Region.Framework.Scenes;
38
39namespace OpenSim.Client.VWoHTTP
40{
41 class VWoHTTPModule : IRegionModule, IHttpAgentHandler
42 {
43 private bool m_disabled = true;
44
45 private IHttpServer m_httpd;
46
47 private readonly List<Scene> m_scenes = new List<Scene>();
48
49 private Dictionary<UUID, VWHClientView> m_clients = new Dictionary<UUID, VWHClientView>();
50
51 #region Implementation of IRegionModule
52
53 public void Initialise(Scene scene, IConfigSource source)
54 {
55 if (m_disabled)
56 return;
57
58 m_scenes.Add(scene);
59
60 m_httpd = MainServer.Instance;
61 }
62
63 public void PostInitialise()
64 {
65 if (m_disabled)
66 return;
67
68 m_httpd.AddAgentHandler("vwohttp", this);
69 }
70
71 public void Close()
72 {
73 if (m_disabled)
74 return;
75
76 m_httpd.RemoveAgentHandler("vwohttp", this);
77 }
78
79 public string Name
80 {
81 get { return "VWoHTTP ClientStack"; }
82 }
83
84 public bool IsSharedModule
85 {
86 get { return true; }
87 }
88
89 #endregion
90
91 #region Implementation of IHttpAgentHandler
92
93 public bool Handle(OSHttpRequest req, OSHttpResponse resp)
94 {
95 string[] urlparts = req.Url.AbsolutePath.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries);
96
97 if (urlparts.Length < 2)
98 return false;
99
100 if (urlparts[1] == "connect")
101 {
102 UUID sessID = UUID.Random();
103
104 VWHClientView client = new VWHClientView(sessID, UUID.Random(), "VWoHTTPClient", m_scenes[0]);
105
106 m_clients.Add(sessID, client);
107
108 return true;
109 }
110 else
111 {
112 if (urlparts.Length < 3)
113 return false;
114
115 UUID sessionID;
116 if (!UUID.TryParse(urlparts[1], out sessionID))
117 return false;
118
119 if (!m_clients.ContainsKey(sessionID))
120 return false;
121
122 return m_clients[sessionID].ProcessInMsg(req, resp);
123 }
124 }
125
126 public bool Match(OSHttpRequest req, OSHttpResponse resp)
127 {
128 return req.Url.ToString().Contains("vwohttp");
129 }
130
131 #endregion
132 }
133}