Revision f3d080df trunk/Pithos.Core/NetworkGate.cs

b/trunk/Pithos.Core/NetworkGate.cs
1
// -----------------------------------------------------------------------
2
// <copyright file="NetworkGate.cs" company="GRNET">
3
// Copyright 2011 GRNET S.A. All rights reserved.
4
// 
5
// Redistribution and use in source and binary forms, with or
6
// without modification, are permitted provided that the following
7
// conditions are met:
8
// 
9
//   1. Redistributions of source code must retain the above
10
//      copyright notice, this list of conditions and the following
11
//      disclaimer.
12
// 
13
//   2. Redistributions in binary form must reproduce the above
14
//      copyright notice, this list of conditions and the following
15
//      disclaimer in the documentation and/or other materials
16
//      provided with the distribution.
17
// 
18
// THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
19
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
22
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
25
// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26
// AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
// POSSIBILITY OF SUCH DAMAGE.
30
// 
31
// The views and conclusions contained in the software and
32
// documentation are those of the authors and should not be
33
// interpreted as representing official policies, either expressed
34
// or implied, of GRNET S.A.
35
// </copyright>
36
// -----------------------------------------------------------------------
37

  
1 38
using System;
2 39
using System.Collections.Concurrent;
3 40
using System.Collections.Generic;
......
10 47
    {
11 48
        None,
12 49
        Uploading,
13
        Downloading
50
        Downloading,
51
        Deleting,
52
        Renaming
14 53
    }
15 54

  
16 55
    //The NetworkGate prevents starting download/uploads for files that are already in the process of downloading,
......
39 78
            Contract.EndContractBlock();
40 79

  
41 80
            NetworkOperation operation;
42
            if (NetworkState.TryGetValue(path.ToLower(), out operation))
81
            var lower = path.ToLower();
82
            if (NetworkState.TryGetValue(lower, out operation))
43 83
                return operation;
44 84
            return NetworkOperation.None;
45 85
        }
......
74 114
                throw new ArgumentException("path must be a rooted path", "path");
75 115
            Contract.EndContractBlock();
76 116

  
77
            var state = GetNetworkState(path);
117
            var lower = path.ToLower();
118
            var state = GetNetworkState(lower);
78 119
            //If no operation is in progress, return a NetworkGate
79 120
            return (state == NetworkOperation.None)
80
                       ? new NetworkGate(path, operation)
121
                       ? new NetworkGate(lower, operation)
81 122
                   //otherwise return a gate with Fail flagged
82
                       : new NetworkGate(path, NetworkOperation.None);
123
                       : new NetworkGate(lower, NetworkOperation.None);
83 124
        }
84 125

  
85 126

  

Also available in: Unified diff