This commit is contained in:
yanue 2020-03-03 23:19:31 +08:00
parent 741f049ffb
commit db58012fa9
2 changed files with 54 additions and 0 deletions

View File

@ -994,6 +994,38 @@ class V2rayConfig: NSObject {
v2rayOutbound.settingDns = settingDns
break
case .http:
var settingHttp = V2rayOutboundHttp()
var servers: [V2rayOutboundHttpServer] = []
jsonParams["settings"]["servers"].arrayValue.forEach {
val in
var server = V2rayOutboundHttpServer()
server.port = val["port"].intValue
server.address = val["address"].stringValue
var users: [V2rayOutboundHttpUser] = []
val["users"].arrayValue.forEach {
val in
var user = V2rayOutboundHttpUser()
user.user = val["user"].stringValue
user.pass = val["pass"].stringValue
// append
users.append(user)
}
server.users = users
// append
servers.append(server)
}
settingHttp.servers = servers
// set into outbound
v2rayOutbound.settingHttp = settingHttp
break
case .shadowsocks:
var settingShadowsocks = V2rayOutboundShadowsocks()
var servers: [V2rayOutboundShadowsockServer] = []

View File

@ -16,6 +16,7 @@ enum V2rayProtocolOutbound: String, Codable {
case socks
case vmess
case dns
case http
}
struct V2rayOutbound: Codable {
@ -32,6 +33,7 @@ struct V2rayOutbound: Codable {
var settingSocks: V2rayOutboundSocks?
var settingVMess: V2rayOutboundVMess?
var settingDns: V2rayOutboundDns?
var settingHttp: V2rayOutboundHttp?
enum CodingKeys: String, CodingKey {
case sendThrough
@ -91,6 +93,8 @@ extension V2rayOutbound {
case .dns:
settingDns = try container.decode(V2rayOutboundDns.self, forKey: CodingKeys.settings)
break
case .http:
settingHttp = try container.decode(V2rayOutboundHttp.self, forKey: CodingKeys.settings)
}
}
@ -139,6 +143,9 @@ extension V2rayOutbound {
case .dns:
try container.encode(self.settingDns, forKey: .settings)
break
case .http:
try container.encode(self.settingHttp, forKey: .settings)
break
}
}
}
@ -223,3 +230,18 @@ struct V2rayOutboundDns: Codable {
var address: String = ""
var port: Int?
}
struct V2rayOutboundHttp: Codable {
var servers: [V2rayOutboundHttpServer] = [V2rayOutboundHttpServer()]
}
struct V2rayOutboundHttpServer: Codable {
var address: String = ""
var port: Int = 0
var users: [V2rayOutboundHttpUser] = [V2rayOutboundHttpUser()]
}
struct V2rayOutboundHttpUser: Codable {
var user: String = ""
var pass: String = ""
}