From b05b5e95de95e6b21ea281aed05416b8db49dd30 Mon Sep 17 00:00:00 2001 From: tzmax <71716824+tzmax@users.noreply.github.com> Date: Fri, 15 Apr 2022 13:14:26 +0800 Subject: [PATCH] fix: repair import Vmess server type null anomaly #3 --- V2RayX/ConfigImporter.m | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/V2RayX/ConfigImporter.m b/V2RayX/ConfigImporter.m index 2d17f8b..5c03da8 100644 --- a/V2RayX/ConfigImporter.m +++ b/V2RayX/ConfigImporter.m @@ -347,7 +347,12 @@ + (ServerProfile*)importFromVmessOfV2RayN:(NSString*)vmessStr { NSMutableDictionary* streamSettings = [newProfile.streamSettings mutableDeepCopy]; switch (newProfile.network) { case tcp: - if (![sharedServer objectForKey:@"type"] || !([sharedServer[@"type"] isEqualToString:@"none"] || [sharedServer[@"type"] isEqualToString:@"http"])) { + { + NSString* sharedServerType = [sharedServer objectForKey:@"type"]; + if(!sharedServerType || [sharedServerType isEqual:[NSNull null]]) { + break; + } + if (!([sharedServerType isEqualToString:@"none"] || [sharedServerType isEqualToString:@"http"])) { break; } streamSettings[@"tcpSettings"][@"header"][@"type"] = sharedServer[@"type"]; @@ -357,7 +362,9 @@ + (ServerProfile*)importFromVmessOfV2RayN:(NSString*)vmessStr { } } break; + } case kcp: + { if (![sharedServer objectForKey:@"type"]) { break; } @@ -377,7 +384,9 @@ + (ServerProfile*)importFromVmessOfV2RayN:(NSString*)vmessStr { streamSettings[@"wsSettings"][@"headers"][@"Host"] = nilCoalescing([sharedServer objectForKey:@"host"], @""); } break; + } case http: + { if ([[sharedServer objectForKey:@"host"] containsString:@";"]) { NSArray *tempPathHostArray = [[sharedServer objectForKey:@"host"] componentsSeparatedByString:@";"]; streamSettings[@"wsSettings"][@"path"] = tempPathHostArray[0]; @@ -393,8 +402,11 @@ + (ServerProfile*)importFromVmessOfV2RayN:(NSString*)vmessStr { } } break; + } default: + { break; + } } if ([sharedServer objectForKey:@"tls"] && [sharedServer[@"tls"] isEqualToString:@"tls"]) { streamSettings[@"security"] = @"tls";