protected void SendRequest(RequestMessage request, Stream stream) { // The socket may be shut down at some point here. It // is the caller's responsibility to handle the error // correctly. #if ENABLE_XML_DUMP MemoryStream mem_stream = new MemoryStream(); XmlFu.SerializeUtf8(req_serializer, mem_stream, new RequestWrapper(request)); mem_stream.Seek(0, SeekOrigin.Begin); StreamReader r = new StreamReader(mem_stream); Logger.Log.Debug("Sending request:\n{0}\n", r.ReadToEnd()); mem_stream.Seek(0, SeekOrigin.Begin); mem_stream.WriteTo(stream); mem_stream.Close(); #else XmlFu.SerializeUtf8(req_serializer, stream, new RequestWrapper(request)); #endif // Send end of message marker stream.WriteByte(0xff); stream.Flush(); }
public bool SendResponse(ResponseMessage response, Stream stream) { try { #if ENABLE_XML_DUMP MemoryStream mem_stream = new MemoryStream(); XmlFu.SerializeUtf8(resp_serializer, mem_stream, new ResponseWrapper(response)); mem_stream.Seek(0, SeekOrigin.Begin); StreamReader r = new StreamReader(mem_stream); Logger.Log.Debug("Sending response:\n{0}\n", r.ReadToEnd()); mem_stream.Seek(0, SeekOrigin.Begin); mem_stream.WriteTo(stream); mem_stream.Close(); #else XmlFu.SerializeUtf8(resp_serializer, stream, new ResponseWrapper(response)); #endif } catch (Exception e) { Logger.Log.Debug(e, "Caught an exception sending {0}. Shutting down socket.", response.GetType()); return(false); } return(true); }