Skip to content

Commit

Permalink
DELETE / MODIFY currently activated server would not perform.
Browse files Browse the repository at this point in the history
  • Loading branch information
yangziy committed Sep 26, 2018
1 parent bba6464 commit 2da51dd
Showing 1 changed file with 17 additions and 21 deletions.
38 changes: 17 additions & 21 deletions ShadowsocksX-NG/HTTPUserProxy.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class HTTPUserProxy{
addHandler_getStatus()
// PUT /status
addHandler_setStatus()

// GET /servers
addHandler_getServerList()
// GET /current
Expand Down Expand Up @@ -110,7 +110,7 @@ class HTTPUserProxy{
if var server = ((request as? GCDWebServerURLEncodedFormRequest)?.arguments) as? [String: Any] {
if (server["ServerPort"] != nil) {
server["ServerPort"] = UInt16(server["ServerPort"] as! String)
if (self.adapter.validate(server: server)) {
if (true) { // validate
self.adapter.addServer(server: server)
return GCDWebServerResponse();
}
Expand All @@ -128,9 +128,14 @@ class HTTPUserProxy{
server["ServerPort"] = UInt16(server["ServerPort"] as! String)
}
if (self.adapter.getServer(uuid: id) != nil) {
if (self.adapter.validate(server: server)) {
self.adapter.modifyServer(uuid: id, server: server)
return GCDWebServerResponse();
if (true) { // validate
if (self.adapter.getCurrentServerId() != id) {
self.adapter.modifyServer(uuid: id, server: server)
return GCDWebServerResponse()
}
else {
return GCDWebServerResponse(statusCode: 400);
}
}
} else {
return GCDWebServerResponse(statusCode: 404)
Expand All @@ -145,8 +150,12 @@ class HTTPUserProxy{
, processBlock: {request in
let id = String(request.path.dropFirst("/servers/".count))
if((self.adapter.getServer(uuid: id)) != nil) {
self.adapter.deleteServer(uuid: id)
return GCDWebServerResponse(statusCode: 200)
if (self.adapter.getCurrentServerId() != id) {
self.adapter.deleteServer(uuid: id)
return GCDWebServerResponse()
} else {
return GCDWebServerResponse(statusCode: 400)
}
}
else {
return GCDWebServerResponse(statusCode: 404)
Expand All @@ -166,7 +175,7 @@ class HTTPUserProxy{
if let mode = APIAdapter.Mode(rawValue: mode_str) {
self.adapter.setMode(mode: mode);

return GCDWebServerResponse(statusCode: 200)
return GCDWebServerResponse()
}
}
return GCDWebServerResponse(statusCode: 400)
Expand Down Expand Up @@ -294,17 +303,4 @@ class APIAdapter {
self.appdeleget.updateRunningModeMenu()
self.appdeleget.applyConfig()
}

func validate(server:Dictionary<String, Any>) -> Bool {
let serverHost = server["ServerHost"] as? String
let serverPort = server["ServerPort"] as? uint16
let method = server["Method"] as? String
let password = server["Password"] as? String

if (serverHost != nil && serverPort != nil && method != nil && password != nil) {
return ServerProfile.fromDictionary(server).isValid()
}

return false;
}
}

0 comments on commit 2da51dd

Please sign in to comment.