diff --git a/src/parser/subparser.cpp b/src/parser/subparser.cpp index 50bf17e..f6bd440 100644 --- a/src/parser/subparser.cpp +++ b/src/parser/subparser.cpp @@ -1486,18 +1486,22 @@ void explodeClash(Node yamlnode, std::vector &nodes) { singleproxy["password"] >>= password; if (password.empty()) singleproxy["auth"] >>= password; - singleproxy["up"] >>= up; - if (up.empty()) { - try { - up = singleproxy["up"].as(); - } catch (const YAML::BadConversion& e) { + if (singleproxy["up"].IsDefined()) { + singleproxy["up"] >>= up; + if (up.empty()) { + try { + up = singleproxy["up"].as(); + } catch (const YAML::BadConversion& e) { + } } } - singleproxy["down"] >>= down; - if (down.empty()) { - try { - down = singleproxy["down"].as(); - } catch (const YAML::BadConversion& e) { + if (singleproxy["down"].IsDefined()) { + singleproxy["down"] >>= down; + if (down.empty()) { + try { + down = singleproxy["down"].as(); + } catch (const YAML::BadConversion& e) { + } } } singleproxy["obfs"] >>= obfsParam;