Skip to content

Commit d8d296c

Browse files
committed
Setting of proxy in rules are lost after backup restore. Closes #418
1 parent 4571fc5 commit d8d296c

3 files changed

Lines changed: 17 additions & 5 deletions

File tree

src/core/Settings.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,8 @@ export class Settings {
518518

519519
public static validateProxyServer(
520520
server: ProxyServer,
521-
checkExistingName: boolean = true,
521+
nameShouldNotExist: boolean = true,
522+
nameShouldExist: boolean = false
522523
): {
523524
success: boolean;
524525
exist?: boolean;
@@ -542,14 +543,25 @@ export class Settings {
542543
if (!server.name) {
543544
return { success: false, message: api.i18n.getMessage('settingsServerNameRequired') };
544545
} else if (me.current) {
545-
if (checkExistingName) {
546+
if (nameShouldNotExist || nameShouldExist) {
546547
const currentServers = me.current.proxyServers;
547548

549+
var found = false;
548550
for (let srv of currentServers) {
549551
if (srv.name == server.name) {
550-
return { success: false, exist: true, message: `Server name ${server.name} already exists` };
552+
if (nameShouldNotExist) {
553+
return { success: false, exist: true, message: `Server name ${server.name} already exists` };
554+
}
555+
else {
556+
found = true;
557+
break;
558+
}
551559
}
552560
}
561+
562+
if (!found && nameShouldExist) {
563+
return { success: false, exist: false, message: `Server name ${server.name} does not exist` };
564+
}
553565
}
554566
}
555567

src/core/definitions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -837,7 +837,7 @@ export class ProxyRule implements Cloneable {
837837
this.whiteList = source['whiteList'] == true ? true : false;
838838

839839
if (this.proxy) {
840-
if (!Settings.validateProxyServer(this.proxy).success) {
840+
if (!Settings.validateProxyServer(this.proxy, false, true).success) {
841841
this.proxy = null;
842842
}
843843
}

src/lib/ProxyImporter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ export const ProxyImporter = {
275275
item.username = proxy["username"];
276276
item.password = proxy["password"];
277277

278-
if (!Settings.validateProxyServer(item).success)
278+
if (!Settings.validateProxyServer(item, true).success)
279279
continue;
280280

281281
resultProxies.push(item);

0 commit comments

Comments
 (0)