diff options
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index 7841f47..799ab80 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | |||
@@ -966,6 +966,19 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
966 | string responseString = String.Empty; | 966 | string responseString = String.Empty; |
967 | XmlRpcRequest xmlRprcRequest = null; | 967 | XmlRpcRequest xmlRprcRequest = null; |
968 | 968 | ||
969 | bool gridproxy = false; | ||
970 | if (requestBody.Contains("encoding=\"utf-8")) | ||
971 | { | ||
972 | int channelindx = -1; | ||
973 | int optionsindx = requestBody.IndexOf(">options<"); | ||
974 | if(optionsindx >0) | ||
975 | { | ||
976 | channelindx = requestBody.IndexOf(">channel<"); | ||
977 | if (optionsindx < channelindx) | ||
978 | gridproxy = true; | ||
979 | } | ||
980 | } | ||
981 | |||
969 | try | 982 | try |
970 | { | 983 | { |
971 | xmlRprcRequest = (XmlRpcRequest) (new XmlRpcRequestDeserializer()).Deserialize(requestBody); | 984 | xmlRprcRequest = (XmlRpcRequest) (new XmlRpcRequestDeserializer()).Deserialize(requestBody); |
@@ -1023,6 +1036,8 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
1023 | } | 1036 | } |
1024 | xmlRprcRequest.Params.Add(request.Headers.Get(xff)); // Param[3] | 1037 | xmlRprcRequest.Params.Add(request.Headers.Get(xff)); // Param[3] |
1025 | 1038 | ||
1039 | if (gridproxy) | ||
1040 | xmlRprcRequest.Params.Add("gridproxy"); // Param[4] | ||
1026 | try | 1041 | try |
1027 | { | 1042 | { |
1028 | xmlRpcResponse = method(xmlRprcRequest, request.RemoteIPEndPoint); | 1043 | xmlRpcResponse = method(xmlRprcRequest, request.RemoteIPEndPoint); |