public void EndRequest(ushort requestID, int appStatus, ProtocolStatus protocolStatus) { var body = new EndRequestBody(appStatus, protocolStatus); try { if (IsConnected) { byte[] bodyData = body.GetData(); CompatArraySegment <byte> bodyBuffer = send_buffers.EnforceBodyLength(bodyData.Length); Array.Copy(bodyData, 0, bodyBuffer.Array, bodyBuffer.Offset, bodyData.Length); var record = new NRecord(1, RecordType.EndRequest, requestID, bodyData.Length, send_buffers); record.Send(socket); } } catch (System.Net.Sockets.SocketException) { } RemoveRequest(requestID); lock (connection_teardown_lock) { if (requests.Count == 0 && (!keep_alive || stop)) { CloseSocket(); if (!stop) { server.EndConnection(this); } receive_buffers.Return(); send_buffers.Return(); } } }
public void SendRecord(RecordType type, ushort requestID, byte [] bodyData, int bodyIndex, int bodyLength) { if (IsConnected) { lock (send_lock) { try { CompatArraySegment <byte> body = send_buffers.EnforceBodyLength(bodyLength); Array.Copy(bodyData, bodyIndex, body.Array, body.Offset, bodyLength); var record = new NRecord(1, type, requestID, bodyLength, send_buffers); record.Send(socket); } catch (System.Net.Sockets.SocketException) { } } } }
public void EndRequest (ushort requestID, int appStatus, ProtocolStatus protocolStatus) { var body = new EndRequestBody (appStatus, protocolStatus); try { if (IsConnected) { byte[] bodyData = body.GetData (); CompatArraySegment<byte> bodyBuffer = send_buffers.EnforceBodyLength(bodyData.Length); Array.Copy(bodyData, 0, bodyBuffer.Array, bodyBuffer.Offset, bodyData.Length); var record = new NRecord (1, RecordType.EndRequest, requestID, bodyData.Length, send_buffers); record.Send (socket); } } catch (System.Net.Sockets.SocketException) { } RemoveRequest(requestID); lock (connection_teardown_lock) { if (requests.Count == 0 && (!keep_alive || stop)) { CloseSocket (); if (!stop) server.EndConnection (this); receive_buffers.Return (); send_buffers.Return (); } } }
public void SendRecord (RecordType type, ushort requestID, byte [] bodyData, int bodyIndex, int bodyLength) { if (IsConnected) lock (send_lock) { try { CompatArraySegment<byte> body = send_buffers.EnforceBodyLength(bodyLength); Array.Copy(bodyData, bodyIndex, body.Array, body.Offset, bodyLength); var record = new NRecord (1, type, requestID, bodyLength, send_buffers); record.Send (socket); } catch (System.Net.Sockets.SocketException) { } } }