/
Kyrios.swift
36 lines (30 loc) · 1.21 KB
/
Kyrios.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//
// ReverseProxyServer.swift
// Created by PeratX on 2018/10/21.
//
import PerfectHTTP
import PerfectHTTPServer
public class Kyrios {
public let NAME = "iTXTech Kyrios"
private var httpServer: HTTPServer.Server?
private var httpsServer: HTTPServer.Server?
public init(tlsConfig: TLSConfiguration, addr: String, httpPort: Int, httpsPort: Int){
let route = Route(methods: HTTPMethod.allMethods, uri: "/**", handler: handleRequest)
var routes = Routes()
routes.add(route)
httpServer = HTTPServer.Server(name: NAME + " (HTTP}", address: addr, port: httpPort, routes: routes)
httpsServer = HTTPServer.Server(tlsConfig: tlsConfig, name: NAME + " (HTTPS)", address: addr, port: httpsPort, routes: routes)
do{
try HTTPServer.launch([httpServer!, httpsServer!])
} catch {
print(error)
}
}
private func handleRequest(request: HTTPRequest, response: HTTPResponse){
print(request.uri)
response.setHeader(.custom(name: "X-Server-Powered"), value: NAME)
response.setHeader(.contentType, value: "text/plain")
response.appendBody(string: "Succ!")
response.completed();
}
}