1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using System;
- using System.Collections.Generic;
- using System.Net.Sockets;
- using System.Text;
- using SCSI;
- using Utilities;
- namespace ISCSI.Server
- {
-
-
-
- internal class ConnectionState
- {
- public Socket ClientSocket = null;
- public static int ReceiveBufferSize = ISCSIPDU.BasicHeaderSegmentLength + ISCSIServer.DeclaredParameters.MaxRecvDataSegmentLength;
- public ISCSIConnectionReceiveBuffer ReceiveBuffer = new ISCSIConnectionReceiveBuffer(ReceiveBufferSize);
- public ConnectionParameters ConnectionParameters = new ConnectionParameters();
- public CountdownLatch RunningSCSICommands = new CountdownLatch();
- public BlockingQueue<ISCSIPDU> SendQueue = new BlockingQueue<ISCSIPDU>();
- public void OnCommandCompleted(SCSIStatusCodeName status, byte[] responseBytes, object task)
- {
- RunningSCSICommands.Decrement();
- SCSICommandPDU command = (SCSICommandPDU)task;
- List<ISCSIPDU> responseList = TargetResponseHelper.PrepareSCSICommandResponse(command, status, responseBytes, ConnectionParameters);
- SendQueue.Enqueue(responseList);
- }
- public string ConnectionIdentifier
- {
- get
- {
- return ConnectionParameters.ConnectionIdentifier;
- }
- }
- public ISCSISession Session
- {
- get
- {
- return ConnectionParameters.Session;
- }
- }
- public ISCSITarget Target
- {
- get
- {
- return Session.Target;
- }
- }
- }
- }
|