aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorlbsa712007-07-04 16:28:59 +0000
committerlbsa712007-07-04 16:28:59 +0000
commit5c32b33a66fbdf371d53d85ee54ee8e837481570 (patch)
tree68121d2b62aa34e2f8e627823314460a19fe06f8
parent* Removed AssetHttpServer, using BaseHttpServer instead (diff)
downloadopensim-SC_OLD-5c32b33a66fbdf371d53d85ee54ee8e837481570.zip
opensim-SC_OLD-5c32b33a66fbdf371d53d85ee54ee8e837481570.tar.gz
opensim-SC_OLD-5c32b33a66fbdf371d53d85ee54ee8e837481570.tar.bz2
opensim-SC_OLD-5c32b33a66fbdf371d53d85ee54ee8e837481570.tar.xz
* re-fixed the utf-16 bug in xmlRpcResponse serialization
* added LLSDStreamHandler.cs to Caps (Haven't enabled it yet, though) * removed last traces of old rest handling
-rw-r--r--OpenGridServices.sln125
-rw-r--r--OpenSim.sln309
-rw-r--r--OpenSim/Framework/Servers/BaseHttpServer.cs175
-rw-r--r--OpenSim/Framework/Servers/BaseStreamHandler.cs6
-rw-r--r--OpenSim/Framework/Servers/ILlsdMethodHandler.cs37
-rw-r--r--OpenSim/Framework/Servers/LlsdMethod.cs32
-rw-r--r--OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj9
-rw-r--r--OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build3
-rw-r--r--OpenSim/Framework/Servers/RestMethodEntry.cs27
-rw-r--r--OpenSim/Framework/UserManager/LoginResponse.cs2
-rw-r--r--OpenSim/Region/Capabilities/Caps.cs38
-rw-r--r--OpenSim/Region/Capabilities/LLSDMethod.cs8
-rw-r--r--OpenSim/Region/Capabilities/LLSDStreamHandler.cs40
-rw-r--r--OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.csproj6
-rw-r--r--OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.dll.build2
-rw-r--r--OpenSim/Region/Examples/SimpleApp/LlsdMethodEntry.cs35
-rw-r--r--OpenSim/Region/Examples/SimpleApp/Program.cs23
17 files changed, 387 insertions, 490 deletions
diff --git a/OpenGridServices.sln b/OpenGridServices.sln
index 947dbb2..2343bc0 100644
--- a/OpenGridServices.sln
+++ b/OpenGridServices.sln
@@ -25,61 +25,72 @@ EndProject
25Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Grid.UserServer.Config", "OpenSim\Grid\UserServer.Config\OpenSim.Grid.UserServer.Config.csproj", "{08F87229-0000-0000-0000-000000000000}" 25Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Grid.UserServer.Config", "OpenSim\Grid\UserServer.Config\OpenSim.Grid.UserServer.Config.csproj", "{08F87229-0000-0000-0000-000000000000}"
26EndProject 26EndProject
27Global 27Global
28 GlobalSection(SolutionConfigurationPlatforms) = preSolution 28 GlobalSection(SolutionConfigurationPlatforms) = preSolution
29 Debug|Any CPU = Debug|Any CPU 29 Debug|Any CPU = Debug|Any CPU
30 Release|Any CPU = Release|Any CPU 30 Release|Any CPU = Release|Any CPU
31 EndGlobalSection 31 EndGlobalSection
32 GlobalSection(ProjectConfigurationPlatforms) = postSolution 32 GlobalSection(ProjectDependencies) = postSolution
33 {36B72A9B-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 33 ({FD2D303D-0000-0000-0000-000000000000}).2 = ({36B72A9B-0000-0000-0000-000000000000})
34 {36B72A9B-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 34 ({17F7F694-0000-0000-0000-000000000000}).1 = ({36B72A9B-0000-0000-0000-000000000000})
35 {36B72A9B-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 35 ({17F7F6BE-0000-0000-0000-000000000000}).2 = ({36B72A9B-0000-0000-0000-000000000000})
36 {36B72A9B-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 36 ({6ECC56A9-0000-0000-0000-000000000000}).1 = ({36B72A9B-0000-0000-0000-000000000000})
37 {FD2D303D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 37 ({586E2916-0000-0000-0000-000000000000}).4 = ({36B72A9B-0000-0000-0000-000000000000})
38 {FD2D303D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 38 ({60FCC3A6-0000-0000-0000-000000000000}).4 = ({36B72A9B-0000-0000-0000-000000000000})
39 {FD2D303D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 39 ({60FCC3A6-0000-0000-0000-000000000000}).7 = ({4B7BFD1C-0000-0000-0000-000000000000})
40 {FD2D303D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 40 ({2FC96F92-0000-0000-0000-000000000000}).4 = ({36B72A9B-0000-0000-0000-000000000000})
41 {17F7F694-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 41 ({2FC96F92-0000-0000-0000-000000000000}).7 = ({586E2916-0000-0000-0000-000000000000})
42 {17F7F694-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 42 EndGlobalSection
43 {17F7F694-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 43 GlobalSection(ProjectConfigurationPlatforms) = postSolution
44 {17F7F694-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 44 {36B72A9B-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45 {17F7F6BE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 45 {36B72A9B-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
46 {17F7F6BE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 46 {36B72A9B-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
47 {17F7F6BE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 47 {36B72A9B-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
48 {17F7F6BE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 48 {FD2D303D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
49 {6ECC56A9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 49 {FD2D303D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
50 {6ECC56A9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 50 {FD2D303D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {6ECC56A9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 51 {FD2D303D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
52 {6ECC56A9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 52 {17F7F694-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
53 {586E2916-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 53 {17F7F694-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
54 {586E2916-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 54 {17F7F694-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
55 {586E2916-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 55 {17F7F694-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
56 {586E2916-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 56 {17F7F6BE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
57 {E5F1A03B-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 57 {17F7F6BE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
58 {E5F1A03B-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 58 {17F7F6BE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
59 {E5F1A03B-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 59 {17F7F6BE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
60 {E5F1A03B-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 60 {6ECC56A9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
61 {4B7BFD1C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 61 {6ECC56A9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
62 {4B7BFD1C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 62 {6ECC56A9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
63 {4B7BFD1C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 63 {6ECC56A9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
64 {4B7BFD1C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 64 {586E2916-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
65 {60FCC3A6-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 65 {586E2916-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
66 {60FCC3A6-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 66 {586E2916-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
67 {60FCC3A6-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 67 {586E2916-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
68 {60FCC3A6-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 68 {E5F1A03B-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
69 {1442B635-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 69 {E5F1A03B-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
70 {1442B635-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 70 {E5F1A03B-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
71 {1442B635-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 71 {E5F1A03B-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
72 {1442B635-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 72 {4B7BFD1C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
73 {2FC96F92-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 73 {4B7BFD1C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
74 {2FC96F92-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 74 {4B7BFD1C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
75 {2FC96F92-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 75 {4B7BFD1C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
76 {2FC96F92-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 76 {60FCC3A6-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
77 {08F87229-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 77 {60FCC3A6-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
78 {08F87229-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 78 {60FCC3A6-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
79 {08F87229-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 79 {60FCC3A6-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
80 {08F87229-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 80 {1442B635-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
81 EndGlobalSection 81 {1442B635-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
82 GlobalSection(SolutionProperties) = preSolution 82 {1442B635-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
83 HideSolutionNode = FALSE 83 {1442B635-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
84 EndGlobalSection 84 {2FC96F92-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
85 {2FC96F92-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
86 {2FC96F92-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
87 {2FC96F92-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
88 {08F87229-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
89 {08F87229-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
90 {08F87229-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
91 {08F87229-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
92 EndGlobalSection
93 GlobalSection(SolutionProperties) = preSolution
94 HideSolutionNode = FALSE
95 EndGlobalSection
85EndGlobal 96EndGlobal
diff --git a/OpenSim.sln b/OpenSim.sln
index bd39235..54743ee 100644
--- a/OpenSim.sln
+++ b/OpenSim.sln
@@ -53,117 +53,200 @@ EndProject
53Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleApp", "OpenSim\Region\Examples\SimpleApp\SimpleApp.csproj", "{24B12448-0000-0000-0000-000000000000}" 53Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleApp", "OpenSim\Region\Examples\SimpleApp\SimpleApp.csproj", "{24B12448-0000-0000-0000-000000000000}"
54EndProject 54EndProject
55Global 55Global
56 GlobalSection(SolutionConfigurationPlatforms) = preSolution 56 GlobalSection(SolutionConfigurationPlatforms) = preSolution
57 Debug|Any CPU = Debug|Any CPU 57 Debug|Any CPU = Debug|Any CPU
58 Release|Any CPU = Release|Any CPU 58 Release|Any CPU = Release|Any CPU
59 EndGlobalSection 59 EndGlobalSection
60 GlobalSection(ProjectConfigurationPlatforms) = postSolution 60 GlobalSection(ProjectDependencies) = postSolution
61 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 61 ({438A9556-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
62 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 62 ({438A9556-0000-0000-0000-000000000000}).4 = ({CB52B7E7-0000-0000-0000-000000000000})
63 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 63 ({438A9556-0000-0000-0000-000000000000}).5 = ({A7CD0630-0000-0000-0000-000000000000})
64 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 64 ({438A9556-0000-0000-0000-000000000000}).6 = ({36B72A9B-0000-0000-0000-000000000000})
65 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 65 ({438A9556-0000-0000-0000-000000000000}).7 = ({C74E4A30-0000-0000-0000-000000000000})
66 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 66 ({438A9556-0000-0000-0000-000000000000}).8 = ({2CC71860-0000-0000-0000-000000000000})
67 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 67 ({438A9556-0000-0000-0000-000000000000}).9 = ({586E2916-0000-0000-0000-000000000000})
68 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 68 ({438A9556-0000-0000-0000-000000000000}).10 = ({61FCCDB3-0000-0000-0000-000000000000})
69 {CB52B7E7-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 69 ({438A9556-0000-0000-0000-000000000000}).11 = ({DC3698B2-0000-0000-0000-000000000000})
70 {CB52B7E7-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 70 ({438A9556-0000-0000-0000-000000000000}).12 = ({BFB5D807-0000-0000-0000-000000000000})
71 {CB52B7E7-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 71 ({438A9556-0000-0000-0000-000000000000}).13 = ({4806E378-0000-0000-0000-000000000000})
72 {CB52B7E7-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 72 ({438A9556-0000-0000-0000-000000000000}).14 = ({DCBA491C-0000-0000-0000-000000000000})
73 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 73 ({438A9556-0000-0000-0000-000000000000}).15 = ({F4FF31EB-0000-0000-0000-000000000000})
74 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 74 ({438A9556-0000-0000-0000-000000000000}).16 = ({C9E0F891-0000-0000-0000-000000000000})
75 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 75 ({8ACA2445-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000})
76 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 76 ({CB52B7E7-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
77 {36B72A9B-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 77 ({CB52B7E7-0000-0000-0000-000000000000}).2 = ({36B72A9B-0000-0000-0000-000000000000})
78 {36B72A9B-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 78 ({FD2D303D-0000-0000-0000-000000000000}).2 = ({36B72A9B-0000-0000-0000-000000000000})
79 {36B72A9B-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 79 ({C74E4A30-0000-0000-0000-000000000000}).0 = ({8ACA2445-0000-0000-0000-000000000000})
80 {36B72A9B-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 80 ({2CC71860-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
81 {FD2D303D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 81 ({2CC71860-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000})
82 {FD2D303D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 82 ({586E2916-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
83 {FD2D303D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 83 ({586E2916-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000})
84 {FD2D303D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 84 ({586E2916-0000-0000-0000-000000000000}).4 = ({36B72A9B-0000-0000-0000-000000000000})
85 {C74E4A30-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 85 ({586E2916-0000-0000-0000-000000000000}).5 = ({C74E4A30-0000-0000-0000-000000000000})
86 {C74E4A30-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 86 ({586E2916-0000-0000-0000-000000000000}).6 = ({2CC71860-0000-0000-0000-000000000000})
87 {C74E4A30-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 87 ({61FCCDB3-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
88 {C74E4A30-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 88 ({39038E85-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
89 {2CC71860-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 89 ({39038E85-0000-0000-0000-000000000000}).2 = ({2CC71860-0000-0000-0000-000000000000})
90 {2CC71860-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 90 ({39038E85-0000-0000-0000-000000000000}).3 = ({61FCCDB3-0000-0000-0000-000000000000})
91 {2CC71860-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 91 ({DC3698B2-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
92 {2CC71860-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 92 ({DC3698B2-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
93 {586E2916-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 93 ({DC3698B2-0000-0000-0000-000000000000}).5 = ({2CC71860-0000-0000-0000-000000000000})
94 {586E2916-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 94 ({DC3698B2-0000-0000-0000-000000000000}).6 = ({61FCCDB3-0000-0000-0000-000000000000})
95 {586E2916-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 95 ({DC3698B2-0000-0000-0000-000000000000}).7 = ({F4FF31EB-0000-0000-0000-000000000000})
96 {586E2916-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 96 ({DC3698B2-0000-0000-0000-000000000000}).8 = ({C9E0F891-0000-0000-0000-000000000000})
97 {61FCCDB3-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 97 ({BFB5D807-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
98 {61FCCDB3-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 98 ({BFB5D807-0000-0000-0000-000000000000}).2 = ({CB52B7E7-0000-0000-0000-000000000000})
99 {61FCCDB3-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 99 ({BFB5D807-0000-0000-0000-000000000000}).3 = ({36B72A9B-0000-0000-0000-000000000000})
100 {61FCCDB3-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 100 ({BFB5D807-0000-0000-0000-000000000000}).4 = ({586E2916-0000-0000-0000-000000000000})
101 {39038E85-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 101 ({4806E378-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
102 {39038E85-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 102 ({4806E378-0000-0000-0000-000000000000}).2 = ({CB52B7E7-0000-0000-0000-000000000000})
103 {39038E85-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 103 ({4806E378-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000})
104 {39038E85-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 104 ({4806E378-0000-0000-0000-000000000000}).4 = ({36B72A9B-0000-0000-0000-000000000000})
105 {DC3698B2-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 105 ({4806E378-0000-0000-0000-000000000000}).5 = ({2CC71860-0000-0000-0000-000000000000})
106 {DC3698B2-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 106 ({DCBA491C-0000-0000-0000-000000000000}).4 = ({8ACA2445-0000-0000-0000-000000000000})
107 {DC3698B2-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 107 ({DCBA491C-0000-0000-0000-000000000000}).5 = ({CB52B7E7-0000-0000-0000-000000000000})
108 {DC3698B2-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 108 ({DCBA491C-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000})
109 {BFB5D807-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 109 ({DCBA491C-0000-0000-0000-000000000000}).7 = ({C74E4A30-0000-0000-0000-000000000000})
110 {BFB5D807-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 110 ({DCBA491C-0000-0000-0000-000000000000}).8 = ({2CC71860-0000-0000-0000-000000000000})
111 {BFB5D807-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 111 ({DCBA491C-0000-0000-0000-000000000000}).9 = ({61FCCDB3-0000-0000-0000-000000000000})
112 {BFB5D807-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 112 ({DCBA491C-0000-0000-0000-000000000000}).10 = ({39038E85-0000-0000-0000-000000000000})
113 {4806E378-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 113 ({DCBA491C-0000-0000-0000-000000000000}).11 = ({F4FF31EB-0000-0000-0000-000000000000})
114 {4806E378-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 114 ({DCBA491C-0000-0000-0000-000000000000}).12 = ({C9E0F891-0000-0000-0000-000000000000})
115 {4806E378-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 115 ({241A8CDD-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
116 {4806E378-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 116 ({241A8CDD-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000})
117 {DCBA491C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 117 ({98C7B681-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
118 {DCBA491C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 118 ({98C7B681-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000})
119 {DCBA491C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 119 ({15B4FEF3-0000-0000-0000-000000000000}).1 = ({F4FF31EB-0000-0000-0000-000000000000})
120 {DCBA491C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 120 ({F4FF31EB-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
121 {241A8CDD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 121 ({F4FF31EB-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000})
122 {241A8CDD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 122 ({90620634-0000-0000-0000-000000000000}).2 = ({F4FF31EB-0000-0000-0000-000000000000})
123 {241A8CDD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 123 ({A6D191D8-0000-0000-0000-000000000000}).1 = ({F4FF31EB-0000-0000-0000-000000000000})
124 {241A8CDD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 124 ({A4691E59-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
125 {98C7B681-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 125 ({A4691E59-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
126 {98C7B681-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 126 ({43DB702D-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
127 {98C7B681-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 127 ({43DB702D-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000})
128 {98C7B681-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 128 ({477B9270-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
129 {15B4FEF3-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 129 ({477B9270-0000-0000-0000-000000000000}).2 = ({A7CD0630-0000-0000-0000-000000000000})
130 {15B4FEF3-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 130 ({24B12448-0000-0000-0000-000000000000}).1 = ({8ACA2445-0000-0000-0000-000000000000})
131 {15B4FEF3-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 131 ({24B12448-0000-0000-0000-000000000000}).2 = ({CB52B7E7-0000-0000-0000-000000000000})
132 {15B4FEF3-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 132 ({24B12448-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000})
133 {F4FF31EB-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 133 ({24B12448-0000-0000-0000-000000000000}).4 = ({2CC71860-0000-0000-0000-000000000000})
134 {F4FF31EB-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 134 ({24B12448-0000-0000-0000-000000000000}).5 = ({586E2916-0000-0000-0000-000000000000})
135 {F4FF31EB-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 135 ({24B12448-0000-0000-0000-000000000000}).6 = ({61FCCDB3-0000-0000-0000-000000000000})
136 {F4FF31EB-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 136 ({24B12448-0000-0000-0000-000000000000}).7 = ({39038E85-0000-0000-0000-000000000000})
137 {90620634-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 137 ({24B12448-0000-0000-0000-000000000000}).8 = ({DC3698B2-0000-0000-0000-000000000000})
138 {90620634-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 138 ({24B12448-0000-0000-0000-000000000000}).9 = ({BFB5D807-0000-0000-0000-000000000000})
139 {90620634-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 139 ({24B12448-0000-0000-0000-000000000000}).10 = ({DCBA491C-0000-0000-0000-000000000000})
140 {90620634-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 140 ({24B12448-0000-0000-0000-000000000000}).11 = ({241A8CDD-0000-0000-0000-000000000000})
141 {A6D191D8-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 141 ({24B12448-0000-0000-0000-000000000000}).12 = ({F4FF31EB-0000-0000-0000-000000000000})
142 {A6D191D8-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 142 EndGlobalSection
143 {A6D191D8-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 143 GlobalSection(ProjectConfigurationPlatforms) = postSolution
144 {A6D191D8-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 144 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
145 {A4691E59-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 145 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
146 {A4691E59-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 146 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
147 {A4691E59-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 147 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
148 {A4691E59-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 148 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
149 {43DB702D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 149 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
150 {43DB702D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 150 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
151 {43DB702D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 151 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
152 {43DB702D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 152 {CB52B7E7-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
153 {477B9270-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 153 {CB52B7E7-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
154 {477B9270-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 154 {CB52B7E7-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
155 {477B9270-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 155 {CB52B7E7-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
156 {477B9270-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 156 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
157 {C9E0F891-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 157 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
158 {C9E0F891-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 158 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
159 {C9E0F891-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 159 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
160 {C9E0F891-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 160 {36B72A9B-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
161 {24B12448-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 161 {36B72A9B-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
162 {24B12448-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 162 {36B72A9B-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
163 {24B12448-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 163 {36B72A9B-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
164 {24B12448-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 164 {FD2D303D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
165 EndGlobalSection 165 {FD2D303D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
166 GlobalSection(SolutionProperties) = preSolution 166 {FD2D303D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
167 HideSolutionNode = FALSE 167 {FD2D303D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
168 EndGlobalSection 168 {C74E4A30-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
169 {C74E4A30-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
170 {C74E4A30-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
171 {C74E4A30-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
172 {2CC71860-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
173 {2CC71860-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
174 {2CC71860-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
175 {2CC71860-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
176 {586E2916-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
177 {586E2916-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
178 {586E2916-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
179 {586E2916-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
180 {61FCCDB3-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
181 {61FCCDB3-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
182 {61FCCDB3-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
183 {61FCCDB3-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
184 {39038E85-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
185 {39038E85-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
186 {39038E85-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
187 {39038E85-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
188 {DC3698B2-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
189 {DC3698B2-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
190 {DC3698B2-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
191 {DC3698B2-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
192 {BFB5D807-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
193 {BFB5D807-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
194 {BFB5D807-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
195 {BFB5D807-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
196 {4806E378-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
197 {4806E378-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
198 {4806E378-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
199 {4806E378-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
200 {DCBA491C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
201 {DCBA491C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
202 {DCBA491C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
203 {DCBA491C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
204 {241A8CDD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
205 {241A8CDD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
206 {241A8CDD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
207 {241A8CDD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
208 {98C7B681-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
209 {98C7B681-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
210 {98C7B681-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
211 {98C7B681-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
212 {15B4FEF3-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
213 {15B4FEF3-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
214 {15B4FEF3-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
215 {15B4FEF3-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
216 {F4FF31EB-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
217 {F4FF31EB-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
218 {F4FF31EB-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
219 {F4FF31EB-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
220 {90620634-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
221 {90620634-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
222 {90620634-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
223 {90620634-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
224 {A6D191D8-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
225 {A6D191D8-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
226 {A6D191D8-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
227 {A6D191D8-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
228 {A4691E59-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
229 {A4691E59-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
230 {A4691E59-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
231 {A4691E59-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
232 {43DB702D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
233 {43DB702D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
234 {43DB702D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
235 {43DB702D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
236 {477B9270-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
237 {477B9270-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
238 {477B9270-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
239 {477B9270-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
240 {C9E0F891-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
241 {C9E0F891-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
242 {C9E0F891-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
243 {C9E0F891-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
244 {24B12448-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
245 {24B12448-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
246 {24B12448-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
247 {24B12448-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
248 EndGlobalSection
249 GlobalSection(SolutionProperties) = preSolution
250 HideSolutionNode = FALSE
251 EndGlobalSection
169EndGlobal 252EndGlobal
diff --git a/OpenSim/Framework/Servers/BaseHttpServer.cs b/OpenSim/Framework/Servers/BaseHttpServer.cs
index aed538b..84af9f6 100644
--- a/OpenSim/Framework/Servers/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/BaseHttpServer.cs
@@ -42,7 +42,6 @@ namespace OpenSim.Framework.Servers
42 { 42 {
43 protected Thread m_workerThread; 43 protected Thread m_workerThread;
44 protected HttpListener m_httpListener; 44 protected HttpListener m_httpListener;
45 //protected Dictionary<string, RestMethodEntry> m_restHandlers = new Dictionary<string, RestMethodEntry>();
46 protected Dictionary<string, XmlRpcMethod> m_rpcHandlers = new Dictionary<string, XmlRpcMethod>(); 45 protected Dictionary<string, XmlRpcMethod> m_rpcHandlers = new Dictionary<string, XmlRpcMethod>();
47 protected Dictionary<string, IStreamHandler> m_streamHandlers = new Dictionary<string, IStreamHandler>(); 46 protected Dictionary<string, IStreamHandler> m_streamHandlers = new Dictionary<string, IStreamHandler>();
48 protected int m_port; 47 protected int m_port;
@@ -67,32 +66,6 @@ namespace OpenSim.Framework.Servers
67 return httpMethod + ":" + path; 66 return httpMethod + ":" + path;
68 } 67 }
69 68
70 //public bool AddRestHandler(string method, string path, RestMethod handler)
71 //{
72 // //Console.WriteLine("adding new REST handler for path " + path);
73 // string methodKey = String.Format("{0}: {1}", method, path);
74
75 // if (!this.m_restHandlers.ContainsKey(methodKey))
76 // {
77 // this.m_restHandlers.Add(methodKey, new RestMethodEntry(path, handler));
78 // return true;
79 // }
80
81 // //must already have a handler for that path so return false
82 // return false;
83 //}
84
85 //public bool RemoveRestHandler(string method, string path)
86 //{
87 // string methodKey = String.Format("{0}: {1}", method, path);
88 // if (this.m_restHandlers.ContainsKey(methodKey))
89 // {
90 // this.m_restHandlers.Remove(methodKey);
91 // return true;
92 // }
93 // return false;
94 //}
95
96 public bool AddXmlRPCHandler(string method, XmlRpcMethod handler) 69 public bool AddXmlRPCHandler(string method, XmlRpcMethod handler)
97 { 70 {
98 if (!this.m_rpcHandlers.ContainsKey(method)) 71 if (!this.m_rpcHandlers.ContainsKey(method))
@@ -105,76 +78,6 @@ namespace OpenSim.Framework.Servers
105 return false; 78 return false;
106 } 79 }
107 80
108 protected virtual string ProcessXMLRPCMethod(string methodName, XmlRpcRequest request)
109 {
110 XmlRpcResponse response;
111
112 XmlRpcMethod method;
113 if (this.m_rpcHandlers.TryGetValue(methodName, out method))
114 {
115 response = method(request);
116 }
117 else
118 {
119 response = new XmlRpcResponse();
120 Hashtable unknownMethodError = new Hashtable();
121 unknownMethodError["reason"] = "XmlRequest"; ;
122 unknownMethodError["message"] = "Unknown Rpc request";
123 unknownMethodError["login"] = "false";
124 response.Value = unknownMethodError;
125 }
126
127 return XmlRpcResponseSerializer.Singleton.Serialize(response);
128 }
129
130 //protected virtual string ParseREST(string request, string path, string method)
131 //{
132 // string response;
133
134 // string requestKey = String.Format("{0}: {1}", method, path);
135
136 // string bestMatch = String.Empty;
137 // foreach (string currentKey in m_restHandlers.Keys)
138 // {
139 // if (requestKey.StartsWith(currentKey))
140 // {
141 // if (currentKey.Length > bestMatch.Length)
142 // {
143 // bestMatch = currentKey;
144 // }
145 // }
146 // }
147
148 // RestMethodEntry restMethodEntry;
149 // if (m_restHandlers.TryGetValue(bestMatch, out restMethodEntry))
150 // {
151 // RestMethod restMethod = restMethodEntry.RestMethod;
152
153 // string param = path.Substring(restMethodEntry.Path.Length);
154 // response = restMethod(request, path, param);
155
156 // }
157 // else
158 // {
159 // response = String.Empty;
160 // }
161
162 // return response;
163 //}
164
165
166 protected virtual string ParseXMLRPC(string requestBody)
167 {
168 string responseString = String.Empty;
169
170 XmlRpcRequest request = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(requestBody);
171
172 string methodName = request.MethodName;
173
174 responseString = ProcessXMLRPCMethod(methodName, request);
175
176 return responseString;
177 }
178 81
179 public virtual void HandleRequest(Object stateinfo) 82 public virtual void HandleRequest(Object stateinfo)
180 { 83 {
@@ -203,7 +106,7 @@ namespace OpenSim.Framework.Servers
203 } 106 }
204 else 107 else
205 { 108 {
206 HandleLegacyRequests(request, response); 109 HandleXmlRpcRequests(request, response);
207 } 110 }
208 } 111 }
209 112
@@ -234,64 +137,54 @@ namespace OpenSim.Framework.Servers
234 } 137 }
235 } 138 }
236 139
237 private void HandleLegacyRequests(HttpListenerRequest request, HttpListenerResponse response) 140 private void HandleXmlRpcRequests(HttpListenerRequest request, HttpListenerResponse response)
238 { 141 {
239 Stream body = request.InputStream; 142 Stream requestStream = request.InputStream;
240 143
241 Encoding encoding = Encoding.UTF8; 144 Encoding encoding = Encoding.UTF8;
242 StreamReader reader = new StreamReader(body, encoding); 145 StreamReader reader = new StreamReader(requestStream, encoding);
243 146
244 string requestBody = reader.ReadToEnd(); 147 string requestBody = reader.ReadToEnd();
245 body.Close();
246 reader.Close(); 148 reader.Close();
149 requestStream.Close();
247 150
248 //Console.WriteLine(request.HttpMethod + " " + request.RawUrl + " Http/" + request.ProtocolVersion.ToString() + " content type: " + request.ContentType); 151 XmlRpcRequest xmlRprcRequest = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(requestBody);
249 //Console.WriteLine(requestBody);
250 152
251 string responseString = ""; 153 string methodName = xmlRprcRequest.MethodName;
252 // Console.WriteLine("new request " + request.ContentType +" at "+ request.RawUrl); 154
253 switch (request.ContentType) 155 XmlRpcResponse xmlRpcResponse;
254 {
255 case "text/xml":
256 // must be XML-RPC, so pass to the XML-RPC parser
257
258 responseString = ParseXMLRPC(requestBody);
259 responseString = Regex.Replace(responseString, "utf-16", "utf-8");
260
261 response.AddHeader("Content-type", "text/xml");
262 break;
263
264 //case "application/xml":
265 //case "application/octet-stream":
266 // // probably LLSD we hope, otherwise it should be ignored by the parser
267 // // responseString = ParseLLSDXML(requestBody);
268 // responseString = ParseREST(requestBody, request.RawUrl, request.HttpMethod);
269 // response.AddHeader("Content-type", "application/xml");
270 // break;
271
272 //case "application/x-www-form-urlencoded":
273 // // a form data POST so send to the REST parser
274 // responseString = ParseREST(requestBody, request.RawUrl, request.HttpMethod);
275 // response.AddHeader("Content-type", "text/html");
276 // break;
277
278 //case null:
279 // // must be REST or invalid crap, so pass to the REST parser
280 // responseString = ParseREST(requestBody, request.RawUrl, request.HttpMethod);
281 // response.AddHeader("Content-type", "text/html");
282 // break;
283 156
157 XmlRpcMethod method;
158 if (this.m_rpcHandlers.TryGetValue(methodName, out method))
159 {
160 xmlRpcResponse = method(xmlRprcRequest);
284 } 161 }
162 else
163 {
164 xmlRpcResponse = new XmlRpcResponse();
165 Hashtable unknownMethodError = new Hashtable();
166 unknownMethodError["reason"] = "XmlRequest"; ;
167 unknownMethodError["message"] = "Unknown Rpc Request ["+methodName+"]";
168 unknownMethodError["login"] = "false";
169 xmlRpcResponse.Value = unknownMethodError;
170 }
171
172 response.AddHeader("Content-type", "text/xml");
285 173
174 string responseString = XmlRpcResponseSerializer.Singleton.Serialize(xmlRpcResponse);
175
176 // This must be absolutely fuggliest hack in this project. Don't just stand there, DO SOMETHING!
177 responseString = Regex.Replace(responseString, "utf-16", "utf-8");
178
286 byte[] buffer = Encoding.UTF8.GetBytes(responseString); 179 byte[] buffer = Encoding.UTF8.GetBytes(responseString);
287 Stream output = response.OutputStream; 180
181
288 response.SendChunked = false; 182 response.SendChunked = false;
289 response.ContentLength64 = buffer.Length; 183 response.ContentLength64 = buffer.Length;
184 response.ContentEncoding = Encoding.UTF8;
290 185
291 186 response.OutputStream.Write(buffer, 0, buffer.Length);
292 187 response.OutputStream.Close();
293 output.Write(buffer, 0, buffer.Length);
294 output.Close();
295 } 188 }
296 189
297 public void Start() 190 public void Start()
diff --git a/OpenSim/Framework/Servers/BaseStreamHandler.cs b/OpenSim/Framework/Servers/BaseStreamHandler.cs
index 95e9707..5fcf678 100644
--- a/OpenSim/Framework/Servers/BaseStreamHandler.cs
+++ b/OpenSim/Framework/Servers/BaseStreamHandler.cs
@@ -7,19 +7,19 @@ namespace OpenSim.Framework.Servers
7{ 7{
8 public abstract class BaseStreamHandler : IStreamHandler 8 public abstract class BaseStreamHandler : IStreamHandler
9 { 9 {
10 public string ContentType 10 virtual public string ContentType
11 { 11 {
12 get { return "application/xml"; } 12 get { return "application/xml"; }
13 } 13 }
14 14
15 private string m_httpMethod; 15 private string m_httpMethod;
16 public string HttpMethod 16 virtual public string HttpMethod
17 { 17 {
18 get { return m_httpMethod; } 18 get { return m_httpMethod; }
19 } 19 }
20 20
21 private string m_path; 21 private string m_path;
22 public string Path 22 virtual public string Path
23 { 23 {
24 get { return m_path; } 24 get { return m_path; }
25 } 25 }
diff --git a/OpenSim/Framework/Servers/ILlsdMethodHandler.cs b/OpenSim/Framework/Servers/ILlsdMethodHandler.cs
deleted file mode 100644
index 5382f2d..0000000
--- a/OpenSim/Framework/Servers/ILlsdMethodHandler.cs
+++ /dev/null
@@ -1,37 +0,0 @@
1/*
2* Copyright (c) Contributors, http://www.openmetaverse.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 OpenSim 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*/
28
29namespace OpenSim.Framework.Servers
30{
31 public interface ILlsdMethodHandler
32 {
33 string Handle(string request, string path);
34 }
35
36
37}
diff --git a/OpenSim/Framework/Servers/LlsdMethod.cs b/OpenSim/Framework/Servers/LlsdMethod.cs
deleted file mode 100644
index d17fa38..0000000
--- a/OpenSim/Framework/Servers/LlsdMethod.cs
+++ /dev/null
@@ -1,32 +0,0 @@
1/*
2* Copyright (c) Contributors, http://www.openmetaverse.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 OpenSim 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*/
28
29namespace OpenSim.Framework.Servers
30{
31 public delegate TResponse LlsdMethod<TResponse, TRequest>( TRequest request );
32}
diff --git a/OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj b/OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj
index 4eb9844..cf2236a 100644
--- a/OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj
+++ b/OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj
@@ -99,21 +99,12 @@
99 <Compile Include="CheckSumServer.cs"> 99 <Compile Include="CheckSumServer.cs">
100 <SubType>Code</SubType> 100 <SubType>Code</SubType>
101 </Compile> 101 </Compile>
102 <Compile Include="ILlsdMethodHandler.cs">
103 <SubType>Code</SubType>
104 </Compile>
105 <Compile Include="IStreamHandler.cs"> 102 <Compile Include="IStreamHandler.cs">
106 <SubType>Code</SubType> 103 <SubType>Code</SubType>
107 </Compile> 104 </Compile>
108 <Compile Include="LlsdMethod.cs">
109 <SubType>Code</SubType>
110 </Compile>
111 <Compile Include="RestMethod.cs"> 105 <Compile Include="RestMethod.cs">
112 <SubType>Code</SubType> 106 <SubType>Code</SubType>
113 </Compile> 107 </Compile>
114 <Compile Include="RestMethodEntry.cs">
115 <SubType>Code</SubType>
116 </Compile>
117 <Compile Include="RestStreamHandler.cs"> 108 <Compile Include="RestStreamHandler.cs">
118 <SubType>Code</SubType> 109 <SubType>Code</SubType>
119 </Compile> 110 </Compile>
diff --git a/OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build b/OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build
index 5e96ef1..f837c22 100644
--- a/OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build
+++ b/OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build
@@ -14,11 +14,8 @@
14 <include name="BaseHttpServer.cs" /> 14 <include name="BaseHttpServer.cs" />
15 <include name="BaseStreamHandler.cs" /> 15 <include name="BaseStreamHandler.cs" />
16 <include name="CheckSumServer.cs" /> 16 <include name="CheckSumServer.cs" />
17 <include name="ILlsdMethodHandler.cs" />
18 <include name="IStreamHandler.cs" /> 17 <include name="IStreamHandler.cs" />
19 <include name="LlsdMethod.cs" />
20 <include name="RestMethod.cs" /> 18 <include name="RestMethod.cs" />
21 <include name="RestMethodEntry.cs" />
22 <include name="RestStreamHandler.cs" /> 19 <include name="RestStreamHandler.cs" />
23 <include name="UDPServerBase.cs" /> 20 <include name="UDPServerBase.cs" />
24 <include name="XmlRpcMethod.cs" /> 21 <include name="XmlRpcMethod.cs" />
diff --git a/OpenSim/Framework/Servers/RestMethodEntry.cs b/OpenSim/Framework/Servers/RestMethodEntry.cs
deleted file mode 100644
index ab926e0..0000000
--- a/OpenSim/Framework/Servers/RestMethodEntry.cs
+++ /dev/null
@@ -1,27 +0,0 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace OpenSim.Framework.Servers
6{
7 public class RestMethodEntry
8 {
9 private string m_path;
10 public string Path
11 {
12 get { return m_path; }
13 }
14
15 private RestMethod m_restMethod;
16 public RestMethod RestMethod
17 {
18 get { return m_restMethod; }
19 }
20
21 public RestMethodEntry(string path, RestMethod restMethod)
22 {
23 m_path = path;
24 m_restMethod = restMethod;
25 }
26 }
27}
diff --git a/OpenSim/Framework/UserManager/LoginResponse.cs b/OpenSim/Framework/UserManager/LoginResponse.cs
index 64504fa..abcbd48 100644
--- a/OpenSim/Framework/UserManager/LoginResponse.cs
+++ b/OpenSim/Framework/UserManager/LoginResponse.cs
@@ -222,7 +222,9 @@ namespace OpenSim.Framework.UserManagement
222 222
223 responseData["sim_port"] =(Int32) this.SimPort; 223 responseData["sim_port"] =(Int32) this.SimPort;
224 responseData["sim_ip"] = this.SimAddress; 224 responseData["sim_ip"] = this.SimAddress;
225
225 MainLog.Instance.Warn("SIM IP: " + responseData["sim_ip"] + "; SIM PORT: " + responseData["sim_port"]); 226 MainLog.Instance.Warn("SIM IP: " + responseData["sim_ip"] + "; SIM PORT: " + responseData["sim_port"]);
227
226 responseData["agent_id"] = this.AgentID.ToStringHyphenated(); 228 responseData["agent_id"] = this.AgentID.ToStringHyphenated();
227 responseData["session_id"] = this.SessionID.ToStringHyphenated(); 229 responseData["session_id"] = this.SessionID.ToStringHyphenated();
228 responseData["secure_session_id"] = this.SecureSessionID.ToStringHyphenated(); 230 responseData["secure_session_id"] = this.SecureSessionID.ToStringHyphenated();
diff --git a/OpenSim/Region/Capabilities/Caps.cs b/OpenSim/Region/Capabilities/Caps.cs
index 1d07683..70d601f 100644
--- a/OpenSim/Region/Capabilities/Caps.cs
+++ b/OpenSim/Region/Capabilities/Caps.cs
@@ -71,20 +71,33 @@ namespace OpenSim.Region.Capabilities
71 public void RegisterHandlers() 71 public void RegisterHandlers()
72 { 72 {
73 Console.WriteLine("registering CAPS handlers"); 73 Console.WriteLine("registering CAPS handlers");
74 string capsBase = "/CAPS/" + m_capsObjectPath;
75
76 AddLegacyCapsHandler( httpListener, m_mapLayerPath, MapLayer);
77
78 //httpListener.AddStreamHandler(
79 // new LLSDStreamhandler<LLSDMapRequest, LLSDMapLayerResponse>("POST", capsBase + m_mapLayerPath, this.GetMapLayer ));
74 80
75 AddCapsHandler( httpListener, m_requestPath, CapsRequest); 81 AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest);
76 AddCapsHandler( httpListener, m_mapLayerPath, MapLayer); 82 AddLegacyCapsHandler(httpListener, m_newInventory, NewAgentInventory);
77 AddCapsHandler( httpListener, m_newInventory, NewAgentInventory); 83 AddLegacyCapsHandler( httpListener, eventQueue, ProcessEventQueue);
78 AddCapsHandler( httpListener, eventQueue, ProcessEventQueue); 84 AddLegacyCapsHandler( httpListener, m_requestTexture, RequestTexture);
79 AddCapsHandler( httpListener, m_requestTexture, RequestTexture);
80 } 85 }
81 86
82 private void AddCapsHandler( BaseHttpServer httpListener, string path, RestMethod restMethod ) 87 public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq)
88 {
89 LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse();
90 mapResponse.LayerData.Array.Add(this.BuildLLSDMapLayerResponse());
91 return mapResponse;
92 }
93
94 [Obsolete("Use BaseHttpServer.AddStreamHandler(new LLSDStreamHandler( LLSDMethod delegate )) instead.")]
95 private void AddLegacyCapsHandler(BaseHttpServer httpListener, string path, RestMethod restMethod)
83 { 96 {
84 string capsBase = "/CAPS/" + m_capsObjectPath; 97 string capsBase = "/CAPS/" + m_capsObjectPath;
85 httpListener.AddStreamHandler(new RestStreamHandler("POST", capsBase + path, restMethod)); 98 httpListener.AddStreamHandler(new RestStreamHandler("POST", capsBase + path, restMethod));
86 } 99 }
87 100
88 /// <summary> 101 /// <summary>
89 /// 102 ///
90 /// </summary> 103 /// </summary>
@@ -125,17 +138,18 @@ namespace OpenSim.Region.Capabilities
125 public string MapLayer(string request, string path, string param) 138 public string MapLayer(string request, string path, string param)
126 { 139 {
127 Encoding _enc = Encoding.UTF8; 140 Encoding _enc = Encoding.UTF8;
128 Hashtable hash =(Hashtable) LLSD.LLSDDeserialize(_enc.GetBytes(request)); 141 Hashtable hash = (Hashtable)LLSD.LLSDDeserialize(_enc.GetBytes(request));
129 LLSDMapRequest mapReq = new LLSDMapRequest(); 142 LLSDMapRequest mapReq = new LLSDMapRequest();
130 LLSDHelpers.DeserialiseLLSDMap(hash, mapReq ); 143 LLSDHelpers.DeserialiseLLSDMap(hash, mapReq);
131 144
132 LLSDMapLayerResponse mapResponse= new LLSDMapLayerResponse(); 145 LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse();
133 mapResponse.LayerData.Array.Add(this.BuildLLSDMapLayerResponse()); 146 mapResponse.LayerData.Array.Add(this.BuildLLSDMapLayerResponse());
134 string res = LLSDHelpers.SerialiseLLSDReply(mapResponse); 147 string res = LLSDHelpers.SerialiseLLSDReply(mapResponse);
135 148
136 return res; 149 return res;
137 } 150 }
138 151
152
139 /// <summary> 153 /// <summary>
140 /// 154 ///
141 /// </summary> 155 /// </summary>
@@ -214,7 +228,7 @@ namespace OpenSim.Region.Capabilities
214 string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); 228 string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000");
215 AssetUploader uploader = new AssetUploader(newAsset, newInvItem, uploaderPath, this.httpListener); 229 AssetUploader uploader = new AssetUploader(newAsset, newInvItem, uploaderPath, this.httpListener);
216 230
217 AddCapsHandler( httpListener, uploaderPath, uploader.uploaderCaps); 231 AddLegacyCapsHandler( httpListener, uploaderPath, uploader.uploaderCaps);
218 232
219 string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + uploaderPath; 233 string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + uploaderPath;
220 //Console.WriteLine("uploader url is " + uploaderURL); 234 //Console.WriteLine("uploader url is " + uploaderURL);
diff --git a/OpenSim/Region/Capabilities/LLSDMethod.cs b/OpenSim/Region/Capabilities/LLSDMethod.cs
new file mode 100644
index 0000000..5f42f44
--- /dev/null
+++ b/OpenSim/Region/Capabilities/LLSDMethod.cs
@@ -0,0 +1,8 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace OpenSim.Region.Capabilities
6{
7 public delegate TResponse LLSDMethod<TRequest, TResponse>(TRequest request);
8}
diff --git a/OpenSim/Region/Capabilities/LLSDStreamHandler.cs b/OpenSim/Region/Capabilities/LLSDStreamHandler.cs
new file mode 100644
index 0000000..ff63353
--- /dev/null
+++ b/OpenSim/Region/Capabilities/LLSDStreamHandler.cs
@@ -0,0 +1,40 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using OpenSim.Framework.Servers;
5using System.IO;
6using System.Collections;
7using libsecondlife;
8
9namespace OpenSim.Region.Capabilities
10{
11 public class LLSDStreamhandler<TRequest, TResponse> : BaseStreamHandler
12 where TRequest : new()
13 {
14 private LLSDMethod<TRequest, TResponse> m_method;
15
16 public LLSDStreamhandler(string httpMethod, string path, LLSDMethod<TRequest, TResponse> method)
17 : base(httpMethod, path)
18 {
19 m_method = method;
20 }
21
22 public override byte[] Handle(string path, Stream request)
23 {
24 Encoding encoding = Encoding.UTF8;
25 StreamReader streamReader = new StreamReader(request, encoding);
26
27 string requestBody = streamReader.ReadToEnd();
28 streamReader.Close();
29
30 Hashtable hash = (Hashtable)LLSD.LLSDDeserialize(encoding.GetBytes(requestBody));
31 TRequest llsdRequest = new TRequest();
32 LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest);
33
34 TResponse response = m_method(llsdRequest);
35
36 return encoding.GetBytes( LLSDHelpers.SerialiseLLSDReply(response) );
37
38 }
39 }
40}
diff --git a/OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.csproj b/OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.csproj
index 4667d52..4b672ae 100644
--- a/OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.csproj
+++ b/OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.csproj
@@ -123,6 +123,12 @@
123 <Compile Include="LLSDMapRequest.cs"> 123 <Compile Include="LLSDMapRequest.cs">
124 <SubType>Code</SubType> 124 <SubType>Code</SubType>
125 </Compile> 125 </Compile>
126 <Compile Include="LLSDMethod.cs">
127 <SubType>Code</SubType>
128 </Compile>
129 <Compile Include="LLSDStreamHandler.cs">
130 <SubType>Code</SubType>
131 </Compile>
126 <Compile Include="LLSDTest.cs"> 132 <Compile Include="LLSDTest.cs">
127 <SubType>Code</SubType> 133 <SubType>Code</SubType>
128 </Compile> 134 </Compile>
diff --git a/OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.dll.build b/OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.dll.build
index a091b5c..1d552c2 100644
--- a/OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.dll.build
+++ b/OpenSim/Region/Capabilities/OpenSim.Region.Capabilities.dll.build
@@ -20,6 +20,8 @@
20 <include name="LLSDMapLayer.cs" /> 20 <include name="LLSDMapLayer.cs" />
21 <include name="LLSDMapLayerResponse.cs" /> 21 <include name="LLSDMapLayerResponse.cs" />
22 <include name="LLSDMapRequest.cs" /> 22 <include name="LLSDMapRequest.cs" />
23 <include name="LLSDMethod.cs" />
24 <include name="LLSDStreamHandler.cs" />
23 <include name="LLSDTest.cs" /> 25 <include name="LLSDTest.cs" />
24 <include name="LLSDType.cs" /> 26 <include name="LLSDType.cs" />
25 <include name="LLSDUploadReply.cs" /> 27 <include name="LLSDUploadReply.cs" />
diff --git a/OpenSim/Region/Examples/SimpleApp/LlsdMethodEntry.cs b/OpenSim/Region/Examples/SimpleApp/LlsdMethodEntry.cs
index f946482..d0ef2af 100644
--- a/OpenSim/Region/Examples/SimpleApp/LlsdMethodEntry.cs
+++ b/OpenSim/Region/Examples/SimpleApp/LlsdMethodEntry.cs
@@ -2,40 +2,9 @@ using System.Collections;
2using System.Text; 2using System.Text;
3using libsecondlife; 3using libsecondlife;
4using OpenSim.Region.Capabilities; 4using OpenSim.Region.Capabilities;
5using System.IO;
5 6
6namespace OpenSim.Framework.Servers 7namespace OpenSim.Framework.Servers
7{ 8{
8 public class LlsdMethodEntry<TResponse, TRequest> : ILlsdMethodHandler 9
9 where TRequest : new()
10 {
11 private LlsdMethod<TResponse, TRequest> m_method;
12
13
14 public LlsdMethodEntry( )
15 {
16
17 }
18
19 public LlsdMethodEntry(LlsdMethod<TResponse, TRequest> method)
20 {
21 m_method = method;
22 }
23
24 #region ILlsdMethodHandler Members
25
26 public string Handle(string body, string path)
27 {
28 Encoding _enc = Encoding.UTF8;
29 Hashtable hash = (Hashtable)LLSD.LLSDDeserialize(_enc.GetBytes( body ));
30 TRequest request = new TRequest();
31
32 LLSDHelpers.DeserialiseLLSDMap(hash, request );
33
34 TResponse response = m_method(request);
35
36 return LLSDHelpers.SerialiseLLSDReply( response );
37 }
38
39 #endregion
40 }
41} 10}
diff --git a/OpenSim/Region/Examples/SimpleApp/Program.cs b/OpenSim/Region/Examples/SimpleApp/Program.cs
index bc84c35..ad70df8 100644
--- a/OpenSim/Region/Examples/SimpleApp/Program.cs
+++ b/OpenSim/Region/Examples/SimpleApp/Program.cs
@@ -60,8 +60,6 @@ namespace SimpleApp
60 60
61 httpServer.AddXmlRPCHandler("login_to_simulator", communicationsManager.UserServices.XmlRpcLoginMethod ); 61 httpServer.AddXmlRPCHandler("login_to_simulator", communicationsManager.UserServices.XmlRpcLoginMethod );
62 62
63 RegisterLlsdHandler<LLSDMapLayerResponse, LLSDMapRequest>("/Caps/test/", LlsdMethodDemo);
64
65 httpServer.Start(); 63 httpServer.Start();
66 64
67 m_log.WriteLine( LogPriority.NORMAL, "Press enter to quit."); 65 m_log.WriteLine( LogPriority.NORMAL, "Press enter to quit.");
@@ -74,27 +72,6 @@ namespace SimpleApp
74 72
75 } 73 }
76 74
77 private LLSDMapLayerResponse LlsdMethodDemo(LLSDMapRequest request)
78 {
79 return new LLSDMapLayerResponse();
80 }
81
82 ILlsdMethodHandler m_handler;
83
84 private void RegisterLlsdHandler<TResponse, TRequest>( string path, LlsdMethod<TResponse, TRequest> method )
85 where TRequest : new()
86 {
87 // path should be handler key, but for now just conceptually store it.
88 m_handler = new LlsdMethodEntry<TResponse, TRequest>( method );
89 }
90
91 private string ProcessLlsdMethod( string request,string path )
92 {
93 LlsdMethodEntry<LLSDMapLayerResponse, LLSDMapRequest> concreteHandler = new LlsdMethodEntry<LLSDMapLayerResponse, LLSDMapRequest>( LlsdMethodDemo );
94
95 return m_handler.Handle(request, path);
96 }
97
98 private bool AddNewSessionHandler(ulong regionHandle, Login loginData) 75 private bool AddNewSessionHandler(ulong regionHandle, Login loginData)
99 { 76 {
100 m_log.WriteLine(LogPriority.NORMAL, "Region [{0}] recieved Login from [{1}] [{2}]", regionHandle, loginData.First, loginData.Last); 77 m_log.WriteLine(LogPriority.NORMAL, "Region [{0}] recieved Login from [{1}] [{2}]", regionHandle, loginData.First, loginData.Last);