Exemplo n.º 1
0
        public SMB2ConnectionClient CheckOut()
        {
            SMB2ConnectionClient client = null;

            if (_connections.TryTake(out client))
            {
                NTStatus status = client.CurrentConnectionStatus();
                Console.WriteLine($"XXXXXXXXXXXXXXXXX SMB2ConnectionSource.CheckOut Instance:{client.GetHashCode()} STATUS {status}");

                if (client.IsConnected && status == NTStatus.STATUS_SUCCESS)
                {
                    _count--;
                    Console.WriteLine($"SMB2ConnectionSource.CheckOut Instance:{client.GetHashCode()} Client:{client.Key} IsConnected:{client.IsConnected} EXISTING:true");
                    return(client);
                }

                Console.WriteLine($"SMB2ConnectionSource.CheckOut - CLIENT WAS DOA");
            }

            client = createNewClient();
            Console.WriteLine($"SMB2ConnectionSource.CheckOut Instance:{client.GetHashCode()} Client:{client.Key} IsConnected:{client.IsConnected} EXISTING:false");
            _connections.Add(client);
            _count++;
            return(client);
        }
Exemplo n.º 2
0
 public void CheckIn(SMB2ConnectionClient client)
 {
     if (_count < _maxConnections && client.IsConnected)
     {
         _connections.Add(client);
         _count++;
     }
 }