aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Client/VWoHTTP
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Client/VWoHTTP')
-rw-r--r--OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs1237
-rw-r--r--OpenSim/Client/VWoHTTP/VWoHTTPModule.cs133
2 files changed, 0 insertions, 1370 deletions
diff --git a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs b/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs
deleted file mode 100644
index 67a79c3..0000000
--- a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs
+++ /dev/null
@@ -1,1237 +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 MoveItemsAndLeaveCopy OnMoveItemsAndLeaveCopy = delegate { };
294 public event CreateNewInventoryItem OnCreateNewInventoryItem = delegate { };
295 public event LinkInventoryItem OnLinkInventoryItem = delegate { };
296 public event CreateInventoryFolder OnCreateNewInventoryFolder = delegate { };
297 public event UpdateInventoryFolder OnUpdateInventoryFolder = delegate { };
298 public event MoveInventoryFolder OnMoveInventoryFolder = delegate { };
299 public event FetchInventoryDescendents OnFetchInventoryDescendents = delegate { };
300 public event PurgeInventoryDescendents OnPurgeInventoryDescendents = delegate { };
301 public event FetchInventory OnFetchInventory = delegate { };
302 public event RequestTaskInventory OnRequestTaskInventory = delegate { };
303 public event UpdateInventoryItem OnUpdateInventoryItem = delegate { };
304 public event CopyInventoryItem OnCopyInventoryItem = delegate { };
305 public event MoveInventoryItem OnMoveInventoryItem = delegate { };
306 public event RemoveInventoryFolder OnRemoveInventoryFolder = delegate { };
307 public event RemoveInventoryItem OnRemoveInventoryItem = delegate { };
308 public event UDPAssetUploadRequest OnAssetUploadRequest = delegate { };
309 public event XferReceive OnXferReceive = delegate { };
310 public event RequestXfer OnRequestXfer = delegate { };
311 public event ConfirmXfer OnConfirmXfer = delegate { };
312 public event AbortXfer OnAbortXfer = delegate { };
313 public event RezScript OnRezScript = delegate { };
314 public event UpdateTaskInventory OnUpdateTaskInventory = delegate { };
315 public event MoveTaskInventory OnMoveTaskItem = delegate { };
316 public event RemoveTaskInventory OnRemoveTaskItem = delegate { };
317 public event RequestAsset OnRequestAsset = delegate { };
318 public event UUIDNameRequest OnNameFromUUIDRequest = delegate { };
319 public event ParcelAccessListRequest OnParcelAccessListRequest = delegate { };
320 public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest = delegate { };
321 public event ParcelPropertiesRequest OnParcelPropertiesRequest = delegate { };
322 public event ParcelDivideRequest OnParcelDivideRequest = delegate { };
323 public event ParcelJoinRequest OnParcelJoinRequest = delegate { };
324 public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest = delegate { };
325 public event ParcelSelectObjects OnParcelSelectObjects = delegate { };
326 public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest = delegate { };
327 public event ParcelAbandonRequest OnParcelAbandonRequest = delegate { };
328 public event ParcelGodForceOwner OnParcelGodForceOwner = delegate { };
329 public event ParcelReclaim OnParcelReclaim = delegate { };
330 public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest = delegate { };
331 public event ParcelDeedToGroup OnParcelDeedToGroup = delegate { };
332 public event RegionInfoRequest OnRegionInfoRequest = delegate { };
333 public event EstateCovenantRequest OnEstateCovenantRequest = delegate { };
334 public event FriendActionDelegate OnApproveFriendRequest = delegate { };
335 public event FriendActionDelegate OnDenyFriendRequest = delegate { };
336 public event FriendshipTermination OnTerminateFriendship = delegate { };
337 public event GrantUserFriendRights OnGrantUserRights = delegate { };
338 public event MoneyTransferRequest OnMoneyTransferRequest = delegate { };
339 public event EconomyDataRequest OnEconomyDataRequest = delegate { };
340 public event MoneyBalanceRequest OnMoneyBalanceRequest = delegate { };
341 public event UpdateAvatarProperties OnUpdateAvatarProperties = delegate { };
342 public event ParcelBuy OnParcelBuy = delegate { };
343 public event RequestPayPrice OnRequestPayPrice = delegate { };
344 public event ObjectSaleInfo OnObjectSaleInfo = delegate { };
345 public event ObjectBuy OnObjectBuy = delegate { };
346 public event BuyObjectInventory OnBuyObjectInventory = delegate { };
347 public event RequestTerrain OnRequestTerrain = delegate { };
348 public event RequestTerrain OnUploadTerrain = delegate { };
349 public event ObjectIncludeInSearch OnObjectIncludeInSearch = delegate { };
350 public event UUIDNameRequest OnTeleportHomeRequest = delegate { };
351 public event ScriptAnswer OnScriptAnswer = delegate { };
352 public event AgentSit OnUndo = delegate { };
353 public event AgentSit OnRedo = delegate { };
354 public event LandUndo OnLandUndo = delegate { };
355 public event ForceReleaseControls OnForceReleaseControls = delegate { };
356 public event GodLandStatRequest OnLandStatRequest = delegate { };
357 public event DetailedEstateDataRequest OnDetailedEstateDataRequest = delegate { };
358 public event SetEstateFlagsRequest OnSetEstateFlagsRequest = delegate { };
359 public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture = delegate { };
360 public event SetEstateTerrainDetailTexture OnSetEstateTerrainDetailTexture = delegate { };
361 public event SetEstateTerrainTextureHeights OnSetEstateTerrainTextureHeights = delegate { };
362 public event CommitEstateTerrainTextureRequest OnCommitEstateTerrainTextureRequest = delegate { };
363 public event SetRegionTerrainSettings OnSetRegionTerrainSettings = delegate { };
364 public event EstateRestartSimRequest OnEstateRestartSimRequest = delegate { };
365 public event EstateChangeCovenantRequest OnEstateChangeCovenantRequest = delegate { };
366 public event UpdateEstateAccessDeltaRequest OnUpdateEstateAccessDeltaRequest = delegate { };
367 public event SimulatorBlueBoxMessageRequest OnSimulatorBlueBoxMessageRequest = delegate { };
368 public event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest = delegate { };
369 public event EstateDebugRegionRequest OnEstateDebugRegionRequest = delegate { };
370 public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest = delegate { };
371 public event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest = delegate { };
372 public event UUIDNameRequest OnUUIDGroupNameRequest = delegate { };
373 public event RegionHandleRequest OnRegionHandleRequest = delegate { };
374 public event ParcelInfoRequest OnParcelInfoRequest = delegate { };
375 public event RequestObjectPropertiesFamily OnObjectGroupRequest = delegate { };
376 public event ScriptReset OnScriptReset = delegate { };
377 public event GetScriptRunning OnGetScriptRunning = delegate { };
378 public event SetScriptRunning OnSetScriptRunning = delegate { };
379 public event UpdateVector OnAutoPilotGo = delegate { };
380 public event TerrainUnacked OnUnackedTerrain = delegate { };
381 public event ActivateGesture OnActivateGesture = delegate { };
382 public event DeactivateGesture OnDeactivateGesture = delegate { };
383 public event ObjectOwner OnObjectOwner = delegate { };
384 public event DirPlacesQuery OnDirPlacesQuery = delegate { };
385 public event DirFindQuery OnDirFindQuery = delegate { };
386 public event DirLandQuery OnDirLandQuery = delegate { };
387 public event DirPopularQuery OnDirPopularQuery = delegate { };
388 public event DirClassifiedQuery OnDirClassifiedQuery = delegate { };
389 public event EventInfoRequest OnEventInfoRequest = delegate { };
390 public event ParcelSetOtherCleanTime OnParcelSetOtherCleanTime = delegate { };
391 public event MapItemRequest OnMapItemRequest = delegate { };
392 public event OfferCallingCard OnOfferCallingCard = delegate { };
393 public event AcceptCallingCard OnAcceptCallingCard = delegate { };
394 public event DeclineCallingCard OnDeclineCallingCard = delegate { };
395 public event SoundTrigger OnSoundTrigger = delegate { };
396 public event StartLure OnStartLure = delegate { };
397 public event TeleportLureRequest OnTeleportLureRequest = delegate { };
398 public event NetworkStats OnNetworkStatsUpdate = delegate { };
399 public event ClassifiedInfoRequest OnClassifiedInfoRequest = delegate { };
400 public event ClassifiedInfoUpdate OnClassifiedInfoUpdate = delegate { };
401 public event ClassifiedDelete OnClassifiedDelete = delegate { };
402 public event ClassifiedGodDelete OnClassifiedGodDelete = delegate { };
403 public event EventNotificationAddRequest OnEventNotificationAddRequest = delegate { };
404 public event EventNotificationRemoveRequest OnEventNotificationRemoveRequest = delegate { };
405 public event EventGodDelete OnEventGodDelete = delegate { };
406 public event ParcelDwellRequest OnParcelDwellRequest = delegate { };
407 public event UserInfoRequest OnUserInfoRequest = delegate { };
408 public event UpdateUserInfo OnUpdateUserInfo = delegate { };
409 public event RetrieveInstantMessages OnRetrieveInstantMessages = delegate { };
410 public event PickDelete OnPickDelete = delegate { };
411 public event PickGodDelete OnPickGodDelete = delegate { };
412 public event PickInfoUpdate OnPickInfoUpdate = delegate { };
413 public event AvatarNotesUpdate OnAvatarNotesUpdate = delegate { };
414 public event MuteListRequest OnMuteListRequest = delegate { };
415 public event AvatarInterestUpdate OnAvatarInterestUpdate = delegate { };
416 public event PlacesQuery OnPlacesQuery = delegate { };
417 public event FindAgentUpdate OnFindAgent = delegate { };
418 public event TrackAgentUpdate OnTrackAgent = delegate { };
419 public event NewUserReport OnUserReport = delegate { };
420 public event SaveStateHandler OnSaveState = delegate { };
421 public event GroupAccountSummaryRequest OnGroupAccountSummaryRequest = delegate { };
422 public event GroupAccountDetailsRequest OnGroupAccountDetailsRequest = delegate { };
423 public event GroupAccountTransactionsRequest OnGroupAccountTransactionsRequest = delegate { };
424 public event FreezeUserUpdate OnParcelFreezeUser = delegate { };
425 public event EjectUserUpdate OnParcelEjectUser = delegate { };
426 public event ParcelBuyPass OnParcelBuyPass = delegate { };
427 public event ParcelGodMark OnParcelGodMark = delegate { };
428 public event GroupActiveProposalsRequest OnGroupActiveProposalsRequest = delegate { };
429 public event GroupVoteHistoryRequest OnGroupVoteHistoryRequest = delegate { };
430 public event SimWideDeletesDelegate OnSimWideDeletes = delegate { };
431 public event SendPostcard OnSendPostcard = delegate { };
432 public event MuteListEntryUpdate OnUpdateMuteListEntry = delegate { };
433 public event MuteListEntryRemove OnRemoveMuteListEntry = delegate { };
434 public event GodlikeMessage onGodlikeMessage = delegate { };
435 public event GodUpdateRegionInfoUpdate OnGodUpdateRegionInfoUpdate = delegate { };
436
437
438
439 public void SetDebugPacketLevel(int newDebug)
440 {
441 throw new System.NotImplementedException();
442 }
443
444 public void InPacket(object NewPack)
445 {
446 throw new System.NotImplementedException();
447 }
448
449 public void ProcessInPacket(Packet NewPack)
450 {
451 throw new System.NotImplementedException();
452 }
453
454 public void Close()
455 {
456 Close(true);
457 }
458
459 public void Close(bool sendStop)
460 {
461 throw new System.NotImplementedException();
462 }
463
464 public void Kick(string message)
465 {
466 throw new System.NotImplementedException();
467 }
468
469 public void Start()
470 {
471 throw new System.NotImplementedException();
472 }
473
474 public void Stop()
475 {
476 throw new System.NotImplementedException();
477 }
478
479 public void SendWearables(AvatarWearable[] wearables, int serial)
480 {
481 throw new System.NotImplementedException();
482 }
483
484 public void SendAppearance(UUID agentID, byte[] visualParams, byte[] textureEntry)
485 {
486 throw new System.NotImplementedException();
487 }
488
489 public void SendStartPingCheck(byte seq)
490 {
491 throw new System.NotImplementedException();
492 }
493
494 public void SendKillObject(ulong regionHandle, List<uint> localID)
495 {
496 throw new System.NotImplementedException();
497 }
498
499 public void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs)
500 {
501 throw new System.NotImplementedException();
502 }
503
504 public void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args)
505 {
506 throw new System.NotImplementedException();
507 }
508
509 public void SendChatMessage(string message, byte type, Vector3 fromPos, string fromName, UUID fromAgentID, byte source, byte audible)
510 {
511 throw new System.NotImplementedException();
512 }
513
514 public void SendInstantMessage(GridInstantMessage im)
515 {
516 throw new System.NotImplementedException();
517 }
518
519 public void SendGenericMessage(string method, List<string> message)
520 {
521 }
522
523 public void SendGenericMessage(string method, List<byte[]> message)
524 {
525 throw new System.NotImplementedException();
526 }
527
528 public void SendLayerData(float[] map)
529 {
530 throw new System.NotImplementedException();
531 }
532
533 public void SendLayerData(int px, int py, float[] map)
534 {
535 throw new System.NotImplementedException();
536 }
537
538 public void SendWindData(Vector2[] windSpeeds)
539 {
540 throw new System.NotImplementedException();
541 }
542
543 public void SendCloudData(float[] cloudCover)
544 {
545 throw new System.NotImplementedException();
546 }
547
548 public void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look)
549 {
550 throw new System.NotImplementedException();
551 }
552
553 public void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint)
554 {
555 throw new System.NotImplementedException();
556 }
557
558 public AgentCircuitData RequestClientInfo()
559 {
560 throw new System.NotImplementedException();
561 }
562
563 public void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt, IPEndPoint newRegionExternalEndPoint, string capsURL)
564 {
565 throw new System.NotImplementedException();
566 }
567
568 public void SendMapBlock(List<MapBlockData> mapBlocks, uint flag)
569 {
570 throw new System.NotImplementedException();
571 }
572
573 public void SendLocalTeleport(Vector3 position, Vector3 lookAt, uint flags)
574 {
575 throw new System.NotImplementedException();
576 }
577
578 public void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, uint flags, string capsURL)
579 {
580 throw new System.NotImplementedException();
581 }
582
583 public void SendTeleportFailed(string reason)
584 {
585 throw new System.NotImplementedException();
586 }
587
588 public void SendTeleportStart(uint flags)
589 {
590 throw new System.NotImplementedException();
591 }
592
593 public void SendTeleportProgress(uint flags, string message)
594 {
595 throw new System.NotImplementedException();
596 }
597
598 public void SendMoneyBalance(UUID transaction, bool success, byte[] description, int balance)
599 {
600 throw new System.NotImplementedException();
601 }
602
603 public void SendPayPrice(UUID objectID, int[] payPrice)
604 {
605 throw new System.NotImplementedException();
606 }
607
608 public void SendCoarseLocationUpdate(List<UUID> users, List<Vector3> CoarseLocations)
609 {
610 throw new System.NotImplementedException();
611 }
612
613 public void SetChildAgentThrottle(byte[] throttle)
614 {
615 throw new System.NotImplementedException();
616 }
617
618 public void SendAvatarDataImmediate(ISceneEntity avatar)
619 {
620 throw new System.NotImplementedException();
621 }
622
623 public void SendPrimUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags)
624 {
625 throw new System.NotImplementedException();
626 }
627
628 public void ReprioritizeUpdates()
629 {
630 throw new System.NotImplementedException();
631 }
632
633 public void FlushPrimUpdates()
634 {
635 throw new System.NotImplementedException();
636 }
637
638 public void SendInventoryFolderDetails(UUID ownerID, UUID folderID, List<InventoryItemBase> items, List<InventoryFolderBase> folders, int version, bool fetchFolders, bool fetchItems)
639 {
640 throw new System.NotImplementedException();
641 }
642
643 public void SendInventoryItemDetails(UUID ownerID, InventoryItemBase item)
644 {
645 throw new System.NotImplementedException();
646 }
647
648 public void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackId)
649 {
650 throw new System.NotImplementedException();
651 }
652
653 public void SendRemoveInventoryItem(UUID itemID)
654 {
655 throw new System.NotImplementedException();
656 }
657
658 public void SendTakeControls(int controls, bool passToAgent, bool TakeControls)
659 {
660 throw new System.NotImplementedException();
661 }
662
663 public void SendTaskInventory(UUID taskID, short serial, byte[] fileName)
664 {
665 throw new System.NotImplementedException();
666 }
667
668 public void SendBulkUpdateInventory(InventoryNodeBase node)
669 {
670 throw new System.NotImplementedException();
671 }
672
673 public void SendXferPacket(ulong xferID, uint packet, byte[] data)
674 {
675 throw new System.NotImplementedException();
676 }
677
678 public virtual void SendAbortXferPacket(ulong xferID)
679 {
680 throw new System.NotImplementedException();
681 }
682
683 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)
684 {
685 throw new System.NotImplementedException();
686 }
687
688 public void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data)
689 {
690 throw new System.NotImplementedException();
691 }
692
693 public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle)
694 {
695 throw new System.NotImplementedException();
696 }
697
698 public void SendPreLoadSound(UUID objectID, UUID ownerID, UUID soundID)
699 {
700 throw new System.NotImplementedException();
701 }
702
703 public void SendPlayAttachedSound(UUID soundID, UUID objectID, UUID ownerID, float gain, byte flags)
704 {
705 throw new System.NotImplementedException();
706 }
707
708 public void SendTriggeredSound(UUID soundID, UUID ownerID, UUID objectID, UUID parentID, ulong handle, Vector3 position, float gain)
709 {
710 throw new System.NotImplementedException();
711 }
712
713 public void SendAttachedSoundGainChange(UUID objectID, float gain)
714 {
715 throw new System.NotImplementedException();
716 }
717
718 public void SendNameReply(UUID profileId, string firstname, string lastname)
719 {
720 throw new System.NotImplementedException();
721 }
722
723 public void SendAlertMessage(string message)
724 {
725 throw new System.NotImplementedException();
726 }
727
728 public void SendAgentAlertMessage(string message, bool modal)
729 {
730 throw new System.NotImplementedException();
731 }
732
733 public void SendLoadURL(string objectname, UUID objectID, UUID ownerID, bool groupOwned, string message, string url)
734 {
735 throw new System.NotImplementedException();
736 }
737
738 public void SendDialog(string objectname, UUID objectID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels)
739 {
740 throw new System.NotImplementedException();
741 }
742
743 public bool AddMoney(int debit)
744 {
745 throw new System.NotImplementedException();
746 }
747
748 public void SendSunPos(Vector3 sunPos, Vector3 sunVel, ulong CurrentTime, uint SecondsPerSunCycle, uint SecondsPerYear, float OrbitalPosition)
749 {
750 throw new System.NotImplementedException();
751 }
752
753 public void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks)
754 {
755 throw new System.NotImplementedException();
756 }
757
758 public void SendViewerTime(int phase)
759 {
760 throw new System.NotImplementedException();
761 }
762
763 public UUID GetDefaultAnimation(string name)
764 {
765 throw new System.NotImplementedException();
766 }
767
768 public void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, byte[] charterMember, string flAbout, uint flags, UUID flImageID, UUID imageID, string profileURL, UUID partnerID)
769 {
770 throw new System.NotImplementedException();
771 }
772
773 public void SendScriptQuestion(UUID taskID, string taskName, string ownerName, UUID itemID, int question)
774 {
775 throw new System.NotImplementedException();
776 }
777
778 public void SendHealth(float health)
779 {
780 throw new System.NotImplementedException();
781 }
782
783 public void SendEstateList(UUID invoice, int code, UUID[] Data, uint estateID)
784 {
785 throw new System.NotImplementedException();
786 }
787
788 public void SendBannedUserList(UUID invoice, EstateBan[] banlist, uint estateID)
789 {
790 throw new System.NotImplementedException();
791 }
792
793 public void SendRegionInfoToEstateMenu(RegionInfoForEstateMenuArgs args)
794 {
795 throw new System.NotImplementedException();
796 }
797
798 public void SendEstateCovenantInformation(UUID covenant)
799 {
800 throw new System.NotImplementedException();
801 }
802
803 public void SendDetailedEstateData(UUID invoice, string estateName, uint estateID, uint parentEstate, uint estateFlags, uint sunPosition, UUID covenant, string abuseEmail, UUID estateOwner)
804 {
805 throw new System.NotImplementedException();
806 }
807
808 public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags)
809 {
810 throw new System.NotImplementedException();
811 }
812
813 public void SendLandAccessListData(List<UUID> avatars, uint accessFlag, int localLandID)
814 {
815 throw new System.NotImplementedException();
816 }
817
818 public void SendForceClientSelectObjects(List<uint> objectIDs)
819 {
820 throw new System.NotImplementedException();
821 }
822
823 public void SendCameraConstraint(Vector4 ConstraintPlane)
824 {
825
826 }
827
828 public void SendLandObjectOwners(LandData land, List<UUID> groups, Dictionary<UUID, int> ownersAndCount)
829 {
830 throw new System.NotImplementedException();
831 }
832
833 public void SendLandParcelOverlay(byte[] data, int sequence_id)
834 {
835 throw new System.NotImplementedException();
836 }
837
838 public void SendParcelMediaCommand(uint flags, ParcelMediaCommandEnum command, float time)
839 {
840 throw new System.NotImplementedException();
841 }
842
843 public void SendParcelMediaUpdate(string mediaUrl, UUID mediaTextureID, byte autoScale, string mediaType, string mediaDesc, int mediaWidth, int mediaHeight, byte mediaLoop)
844 {
845 throw new System.NotImplementedException();
846 }
847
848 public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID)
849 {
850 throw new System.NotImplementedException();
851 }
852
853 public void SendConfirmXfer(ulong xferID, uint PacketID)
854 {
855 throw new System.NotImplementedException();
856 }
857
858 public void SendXferRequest(ulong XferID, short AssetType, UUID vFileID, byte FilePath, byte[] FileName)
859 {
860 throw new System.NotImplementedException();
861 }
862
863 public void SendInitiateDownload(string simFileName, string clientFileName)
864 {
865 throw new System.NotImplementedException();
866 }
867
868 public void SendImageFirstPart(ushort numParts, UUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec)
869 {
870 throw new System.NotImplementedException();
871 }
872
873 public void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData)
874 {
875 throw new System.NotImplementedException();
876 }
877
878 public void SendImageNotFound(UUID imageid)
879 {
880 throw new System.NotImplementedException();
881 }
882
883 public void SendShutdownConnectionNotice()
884 {
885 throw new System.NotImplementedException();
886 }
887
888 public void SendSimStats(SimStats stats)
889 {
890 throw new System.NotImplementedException();
891 }
892
893 public void SendObjectPropertiesFamilyData(ISceneEntity Entity, uint RequestFlags)
894 {
895 throw new System.NotImplementedException();
896 }
897
898 public void SendObjectPropertiesReply(ISceneEntity entity)
899 {
900 throw new System.NotImplementedException();
901 }
902
903 public void SendAgentOffline(UUID[] agentIDs)
904 {
905 throw new System.NotImplementedException();
906 }
907
908 public void SendAgentOnline(UUID[] agentIDs)
909 {
910 throw new System.NotImplementedException();
911 }
912
913 public void SendSitResponse(UUID TargetID, Vector3 OffsetPos, Quaternion SitOrientation, bool autopilot, Vector3 CameraAtOffset, Vector3 CameraEyeOffset, bool ForceMouseLook)
914 {
915 throw new System.NotImplementedException();
916 }
917
918 public void SendAdminResponse(UUID Token, uint AdminLevel)
919 {
920 throw new System.NotImplementedException();
921 }
922
923 public void SendGroupMembership(GroupMembershipData[] GroupMembership)
924 {
925 throw new System.NotImplementedException();
926 }
927
928 public void SendGroupNameReply(UUID groupLLUID, string GroupName)
929 {
930 throw new System.NotImplementedException();
931 }
932
933 public void SendJoinGroupReply(UUID groupID, bool success)
934 {
935 throw new System.NotImplementedException();
936 }
937
938 public void SendEjectGroupMemberReply(UUID agentID, UUID groupID, bool success)
939 {
940 throw new System.NotImplementedException();
941 }
942
943 public void SendLeaveGroupReply(UUID groupID, bool success)
944 {
945 throw new System.NotImplementedException();
946 }
947
948 public void SendCreateGroupReply(UUID groupID, bool success, string message)
949 {
950 throw new System.NotImplementedException();
951 }
952
953 public void SendLandStatReply(uint reportType, uint requestFlags, uint resultCount, LandStatReportItem[] lsrpia)
954 {
955 throw new System.NotImplementedException();
956 }
957
958 public void SendScriptRunningReply(UUID objectID, UUID itemID, bool running)
959 {
960 throw new System.NotImplementedException();
961 }
962
963 public void SendAsset(AssetRequestToClient req)
964 {
965 throw new System.NotImplementedException();
966 }
967
968 public void SendTexture(AssetBase TextureAsset)
969 {
970 throw new System.NotImplementedException();
971 }
972
973 public byte[] GetThrottlesPacked(float multiplier)
974 {
975 throw new System.NotImplementedException();
976 }
977
978 public event ViewerEffectEventHandler OnViewerEffect;
979 public event Action<IClientAPI> OnLogout;
980 public event Action<IClientAPI> OnConnectionClosed;
981 public void SendBlueBoxMessage(UUID FromAvatarID, string FromAvatarName, string Message)
982 {
983 throw new System.NotImplementedException();
984 }
985
986 public void SendLogoutPacket()
987 {
988 throw new System.NotImplementedException();
989 }
990
991 public EndPoint GetClientEP()
992 {
993 return null;
994 }
995
996 public ClientInfo GetClientInfo()
997 {
998 throw new System.NotImplementedException();
999 }
1000
1001 public void SetClientInfo(ClientInfo info)
1002 {
1003 throw new System.NotImplementedException();
1004 }
1005
1006 public void SetClientOption(string option, string value)
1007 {
1008 throw new System.NotImplementedException();
1009 }
1010
1011 public string GetClientOption(string option)
1012 {
1013 throw new System.NotImplementedException();
1014 }
1015
1016 public void Terminate()
1017 {
1018 throw new System.NotImplementedException();
1019 }
1020
1021 public void SendSetFollowCamProperties(UUID objectID, SortedDictionary<int, float> parameters)
1022 {
1023 throw new System.NotImplementedException();
1024 }
1025
1026 public void SendClearFollowCamProperties(UUID objectID)
1027 {
1028 throw new System.NotImplementedException();
1029 }
1030
1031 public void SendRegionHandle(UUID regoinID, ulong handle)
1032 {
1033 throw new System.NotImplementedException();
1034 }
1035
1036 public void SendParcelInfo(RegionInfo info, LandData land, UUID parcelID, uint x, uint y)
1037 {
1038 throw new System.NotImplementedException();
1039 }
1040
1041 public void SendScriptTeleportRequest(string objName, string simName, Vector3 pos, Vector3 lookAt)
1042 {
1043 throw new System.NotImplementedException();
1044 }
1045
1046 public void SendDirPlacesReply(UUID queryID, DirPlacesReplyData[] data)
1047 {
1048 throw new System.NotImplementedException();
1049 }
1050
1051 public void SendDirPeopleReply(UUID queryID, DirPeopleReplyData[] data)
1052 {
1053 throw new System.NotImplementedException();
1054 }
1055
1056 public void SendDirEventsReply(UUID queryID, DirEventsReplyData[] data)
1057 {
1058 throw new System.NotImplementedException();
1059 }
1060
1061 public void SendDirGroupsReply(UUID queryID, DirGroupsReplyData[] data)
1062 {
1063 throw new System.NotImplementedException();
1064 }
1065
1066 public void SendDirClassifiedReply(UUID queryID, DirClassifiedReplyData[] data)
1067 {
1068 throw new System.NotImplementedException();
1069 }
1070
1071 public void SendDirLandReply(UUID queryID, DirLandReplyData[] data)
1072 {
1073 throw new System.NotImplementedException();
1074 }
1075
1076 public void SendDirPopularReply(UUID queryID, DirPopularReplyData[] data)
1077 {
1078 throw new System.NotImplementedException();
1079 }
1080
1081 public void SendEventInfoReply(EventData info)
1082 {
1083 throw new System.NotImplementedException();
1084 }
1085
1086 public void SendMapItemReply(mapItemReply[] replies, uint mapitemtype, uint flags)
1087 {
1088 throw new System.NotImplementedException();
1089 }
1090
1091 public void SendAvatarGroupsReply(UUID avatarID, GroupMembershipData[] data)
1092 {
1093 throw new System.NotImplementedException();
1094 }
1095
1096 public void SendOfferCallingCard(UUID srcID, UUID transactionID)
1097 {
1098 throw new System.NotImplementedException();
1099 }
1100
1101 public void SendAcceptCallingCard(UUID transactionID)
1102 {
1103 throw new System.NotImplementedException();
1104 }
1105
1106 public void SendDeclineCallingCard(UUID transactionID)
1107 {
1108 throw new System.NotImplementedException();
1109 }
1110
1111 public void SendTerminateFriend(UUID exFriendID)
1112 {
1113 throw new System.NotImplementedException();
1114 }
1115
1116 public void SendAvatarClassifiedReply(UUID targetID, UUID[] classifiedID, string[] name)
1117 {
1118 throw new System.NotImplementedException();
1119 }
1120
1121 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)
1122 {
1123 throw new System.NotImplementedException();
1124 }
1125
1126 public void SendAgentDropGroup(UUID groupID)
1127 {
1128 throw new System.NotImplementedException();
1129 }
1130
1131 public void RefreshGroupMembership()
1132 {
1133 throw new System.NotImplementedException();
1134 }
1135
1136 public void SendAvatarNotesReply(UUID targetID, string text)
1137 {
1138 throw new System.NotImplementedException();
1139 }
1140
1141 public void SendAvatarPicksReply(UUID targetID, Dictionary<UUID, string> picks)
1142 {
1143 throw new System.NotImplementedException();
1144 }
1145
1146 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)
1147 {
1148 throw new System.NotImplementedException();
1149 }
1150
1151 public void SendAvatarClassifiedReply(UUID targetID, Dictionary<UUID, string> classifieds)
1152 {
1153 throw new System.NotImplementedException();
1154 }
1155
1156 public void SendAvatarInterestUpdate(IClientAPI client, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages)
1157 {
1158 throw new System.NotImplementedException();
1159 }
1160
1161 public void SendParcelDwellReply(int localID, UUID parcelID, float dwell)
1162 {
1163 throw new System.NotImplementedException();
1164 }
1165
1166 public void SendUserInfoReply(bool imViaEmail, bool visible, string email)
1167 {
1168 throw new System.NotImplementedException();
1169 }
1170
1171 public void SendUseCachedMuteList()
1172 {
1173 throw new System.NotImplementedException();
1174 }
1175
1176 public void SendMuteListUpdate(string filename)
1177 {
1178 throw new System.NotImplementedException();
1179 }
1180
1181 public void KillEndDone()
1182 {
1183 throw new System.NotImplementedException();
1184 }
1185
1186 public bool AddGenericPacketHandler(string MethodName, GenericMessage handler)
1187 {
1188 throw new System.NotImplementedException();
1189 }
1190
1191 #endregion
1192
1193 public void SendRebakeAvatarTextures(UUID textureID)
1194 {
1195 }
1196
1197 public void SendAvatarInterestsReply(UUID avatarID, uint wantMask, string wantText, uint skillsMask, string skillsText, string languages)
1198 {
1199 }
1200
1201 public void SendGroupAccountingDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID, int amt)
1202 {
1203 }
1204
1205 public void SendGroupAccountingSummary(IClientAPI sender,UUID groupID, uint moneyAmt, int totalTier, int usedTier)
1206 {
1207 }
1208
1209 public void SendGroupTransactionsSummaryDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID,int amt)
1210 {
1211 }
1212
1213 public void SendGroupVoteHistory(UUID groupID, UUID transactionID, GroupVoteHistory[] Votes)
1214 {
1215 }
1216
1217 public void SendGroupActiveProposals(UUID groupID, UUID transactionID, GroupActiveProposals[] Proposals)
1218 {
1219 }
1220
1221 public void SendChangeUserRights(UUID agentID, UUID friendID, int rights)
1222 {
1223 }
1224
1225 public void SendTextBoxRequest(string message, int chatChannel, string objectname, string ownerFirstName, string ownerLastName, UUID objectId)
1226 {
1227 }
1228
1229 public void StopFlying(ISceneEntity presence)
1230 {
1231 }
1232
1233 public void SendPlacesReply(UUID queryID, UUID transactionID, PlacesReplyData[] data)
1234 {
1235 }
1236 }
1237}
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}