Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
L
liberty-tunnel-client-library-apple
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liberty
tunnel
liberty-tunnel-client-library-apple
Commits
a6265e68
Commit
a6265e68
authored
Oct 29, 2020
by
Jose Blaya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add `offline` attribute to Server
parent
0954dd6d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
13 deletions
+25
-13
PIALibrary/Sources/Core/WebServices/Server.swift
PIALibrary/Sources/Core/WebServices/Server.swift
+5
-0
PIALibrary/Sources/Library/WebServices/GlossServer.swift
PIALibrary/Sources/Library/WebServices/GlossServer.swift
+3
-0
PIALibrary/Sources/Mock/MockServerProvider.swift
PIALibrary/Sources/Mock/MockServerProvider.swift
+12
-0
PIALibraryTests/ServerTests.swift
PIALibraryTests/ServerTests.swift
+5
-13
No files found.
PIALibrary/Sources/Core/WebServices/Server.swift
View file @
a6265e68
...
...
@@ -117,6 +117,9 @@ public class Server: Hashable {
/// The server is virtually located.
public
let
geo
:
Bool
/// The server is unavailable.
public
let
offline
:
Bool
/// The best address for establishing an OpenVPN connection over TCP.
public
let
bestOpenVPNAddressForTCP
:
Address
?
...
...
@@ -166,6 +169,7 @@ public class Server: Hashable {
pingAddress
:
Address
?,
responseTime
:
Int
?
=
0
,
geo
:
Bool
=
false
,
offline
:
Bool
=
false
,
meta
:
ServerAddressIP
?
=
nil
,
dipExpire
:
Date
?
=
nil
,
dipToken
:
String
?
=
nil
,
...
...
@@ -177,6 +181,7 @@ public class Server: Hashable {
self
.
country
=
country
self
.
hostname
=
hostname
self
.
geo
=
geo
self
.
offline
=
offline
self
.
regionIdentifier
=
regionIdentifier
identifier
=
hostname
.
components
(
separatedBy
:
"."
)
.
first
??
""
...
...
PIALibrary/Sources/Library/WebServices/GlossServer.swift
View file @
a6265e68
...
...
@@ -42,6 +42,7 @@ class GlossServer: GlossParser {
let
dipToken
:
String
?
=
"dipToken"
<~~
json
??
nil
let
geo
:
Bool
=
"geo"
<~~
json
??
false
let
offline
:
Bool
=
"offline"
<~~
json
??
false
var
meta
:
Server
.
ServerAddressIP
?
if
let
metaServer
:
[
String
:
Any
]
=
"servers"
<~~
json
{
...
...
@@ -125,6 +126,7 @@ class GlossServer: GlossParser {
pingAddress
:
pingAddress
,
responseTime
:
0
,
geo
:
geo
,
offline
:
offline
,
meta
:
meta
,
dipToken
:
dipToken
,
regionIdentifier
:
regionIdentifier
...
...
@@ -158,6 +160,7 @@ extension Server: JSONEncodable {
"name"
~~>
name
,
"country"
~~>
country
,
"geo"
~~>
geo
,
"offline"
~~>
offline
,
"dns"
~~>
hostname
,
"openvpn_tcp"
~~>
jsonify
([
"best"
~~>
bestOpenVPNAddressForTCP
?
.
description
...
...
PIALibrary/Sources/Mock/MockServerProvider.swift
View file @
a6265e68
...
...
@@ -75,6 +75,18 @@ public class MockServerProvider: ServerProvider, DatabaseAccess, WebServicesCons
pingAddress
:
nil
,
responseTime
:
0
,
regionIdentifier
:
""
),
Server
(
serial
:
"8a55f03812851897f6e43b2ae22b1234"
,
name
:
"US East Offline"
,
country
:
"us"
,
hostname
:
"us-east.example.com"
,
bestOpenVPNAddressForTCP
:
nil
,
bestOpenVPNAddressForUDP
:
nil
,
pingAddress
:
nil
,
responseTime
:
0
,
geo
:
true
,
offline
:
true
,
regionIdentifier
:
""
)
]
...
...
PIALibraryTests/ServerTests.swift
View file @
a6265e68
...
...
@@ -62,10 +62,11 @@ class ServerTests: XCTestCase {
func
testMockDownload
()
{
__testProviderDownload
(
factory
:
MockProviders
())
}
// func testWebDownload() {
// __testProviderDownload(factory: Client.Providers())
// }
func
testOfflineServers
()
{
__testProviderDownload
(
factory
:
MockProviders
())
XCTAssertTrue
(
Client
.
providers
.
serverProvider
.
currentServers
.
filter
({
$0
.
offline
==
true
})
.
count
==
1
)
}
private
func
__testProviderDownload
(
factory
:
Client
.
Providers
)
{
let
exp
=
expectation
(
description
:
"download"
)
...
...
@@ -86,13 +87,4 @@ class ServerTests: XCTestCase {
waitForExpectations
(
timeout
:
5.0
,
handler
:
nil
)
}
// func testSelection() {
// let cached = Client.providers.serverProvider.currentServers
// guard !cached.isEmpty else {
// return
// }
//
// let selected = cached[Int(arc4random()) % cached.count]
// Client.preferences.editable().preferredServer = selected
// }
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment