WebCore:
[WebKit-https.git] / WebCore / platform / network / ProtectionSpace.cpp
1 /*
2  * Copyright (C) 2007 Apple Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25 #include "config.h"
26 #include "ProtectionSpace.h"
27
28 namespace WebCore {
29
30 // Need to enforce empty, non-null strings due to the pickiness of the String == String operator
31 // combined with the semantics of the String(NSString*) constructor
32 ProtectionSpace::ProtectionSpace()
33     : m_host("")
34     , m_realm("")
35 {
36 }
37  
38 // Need to enforce empty, non-null strings due to the pickiness of the String == String operator
39 // combined with the semantics of the String(NSString*) constructor
40 ProtectionSpace::ProtectionSpace(const String& host, int port, ProtectionSpaceServerType serverType, const String& realm, ProtectionSpaceAuthenticationScheme authenticationScheme)
41     : m_host(host.length() ? host : "")
42     , m_port(port)
43     , m_serverType(serverType)
44     , m_realm(realm.length() ? host : "")
45     , m_authenticationScheme(authenticationScheme)
46 {    
47 }
48     
49 const String& ProtectionSpace::host() const 
50
51     return m_host; 
52 }
53
54 int ProtectionSpace::port() const 
55 {
56     return m_port; 
57 }
58
59 ProtectionSpaceServerType ProtectionSpace::serverType() const 
60 {
61     return m_serverType; 
62 }
63
64 const String& ProtectionSpace::realm() const 
65
66     return m_realm; 
67 }
68
69 ProtectionSpaceAuthenticationScheme ProtectionSpace::authenticationScheme() const 
70
71     return m_authenticationScheme; 
72 }
73
74 bool operator==(const ProtectionSpace& a, const ProtectionSpace& b)
75 {
76     if (a.host() != b.host())
77         return false;
78     if (a.port() != b.port())
79         return false;
80     if (a.serverType() != b.serverType())
81         return false;
82     if (a.realm() != b.realm())
83         return false;
84     if (a.authenticationScheme() != b.authenticationScheme())
85         return false;
86     
87     return true;
88 }
89
90 }
91
92