123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System;
- using System.Collections.Generic;
- using System.Net.Sockets;
- using System.Text;
- using SCSI;
- using Utilities;
- namespace ISCSI.Server
- {
-
-
-
- public class ConnectionState
- {
- public Socket ClientSocket = null;
-
-
-
- public const int ReceiveBufferSize = 131072;
- public byte[] ReceiveBuffer = new byte[ReceiveBufferSize];
- public byte[] ConnectionBuffer = new byte[0];
- public ISCSITarget Target;
- public SessionParameters SessionParameters = new SessionParameters();
- 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 GetConnectionIdentifier(SessionParameters, ConnectionParameters);
- }
- }
- public static string GetConnectionIdentifier(SessionParameters session, ConnectionParameters connection)
- {
- return String.Format("ISID={0},TSIH={1},CID={2}", session.ISID.ToString("x"), session.TSIH.ToString("x"), connection.CID.ToString("x"));
- }
- }
- }
|