| 142 |
byte[] assetData = null; |
byte[] assetData = null; |
| 143 |
Metadata metadata = new Metadata(); |
Metadata metadata = new Metadata(); |
| 144 |
|
|
| 145 |
|
Logger.Log.Debug("Handling OpenSim asset upload"); |
| 146 |
|
|
| 147 |
try |
try |
| 148 |
{ |
{ |
| 149 |
using (XmlReader reader = XmlReader.Create(request.Body)) |
using (XmlReader reader = XmlReader.Create(request.Body)) |
| 158 |
reader.Skip(); |
reader.Skip(); |
| 159 |
reader.ReadEndElement(); |
reader.ReadEndElement(); |
| 160 |
|
|
| 161 |
int readBytes = 0; |
// HACK: Broken on Mono 1.9.1 |
| 162 |
byte[] buffer = new byte[1024]; |
//int readBytes = 0; |
| 163 |
MemoryStream stream = new MemoryStream(); |
//byte[] buffer = new byte[1024]; |
| 164 |
BinaryWriter writer = new BinaryWriter(stream); |
//MemoryStream stream = new MemoryStream(); |
| 165 |
while ((readBytes = reader.ReadElementContentAsBase64(buffer, 0, buffer.Length)) > 0) |
//BinaryWriter writer = new BinaryWriter(stream); |
| 166 |
writer.Write(buffer, 0, readBytes); |
//while ((readBytes = reader.ReadElementContentAsBase64(buffer, 0, buffer.Length)) > 0) |
| 167 |
writer.Flush(); |
// writer.Write(buffer, 0, readBytes); |
| 168 |
assetData = stream.GetBuffer(); |
//writer.Flush(); |
| 169 |
Array.Resize<byte>(ref assetData, (int)stream.Length); |
//assetData = stream.GetBuffer(); |
| 170 |
|
//Array.Resize<byte>(ref assetData, (int)stream.Length); |
| 171 |
|
|
| 172 |
|
assetData = Convert.FromBase64String(reader.ReadElementContentAsString()); |
| 173 |
|
|
| 174 |
int type; |
int type; |
| 175 |
Int32.TryParse(reader.ReadElementContentAsString("Type", String.Empty), out type); |
Int32.TryParse(reader.ReadElementContentAsString("Type", String.Empty), out type); |
| 218 |
response.Status = HttpStatusCode.BadRequest; |
response.Status = HttpStatusCode.BadRequest; |
| 219 |
} |
} |
| 220 |
|
|
| 221 |
|
Logger.Log.Debug("Finished handling OpenSim asset upload, Status: " + response.Status.ToString()); |
| 222 |
return true; |
return true; |
| 223 |
} |
} |
| 224 |
} |
} |