Example #1
0
        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();
        }
Example #2
0
        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);
        }