diff options
Diffstat (limited to 'hscript/script.cc')
-rw-r--r-- | hscript/script.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/hscript/script.cc b/hscript/script.cc index c99abe5..6ede4c4 100644 --- a/hscript/script.cc +++ b/hscript/script.cc @@ -98,6 +98,7 @@ struct Script::ScriptPrivate { /*! Network addressing configuration */ std::vector< std::unique_ptr<NetAddress> > addresses; + std::vector< std::unique_ptr<Nameserver> > nses; std::vector< std::unique_ptr<NetSSID> > ssids; /*! APK repositories */ @@ -142,6 +143,10 @@ struct Script::ScriptPrivate { std::unique_ptr<NetAddress> addr(dynamic_cast<NetAddress *>(obj)); this->addresses.push_back(std::move(addr)); return true; + } else if(key_name == "nameserver") { + std::unique_ptr<Nameserver> ns(dynamic_cast<Nameserver *>(obj)); + this->nses.push_back(std::move(ns)); + return true; } else if(key_name == "netssid") { std::unique_ptr<NetSSID> ssid(dynamic_cast<NetSSID *>(obj)); this->ssids.push_back(std::move(ssid)); @@ -730,6 +735,13 @@ bool Script::validate() const { } } + /* REQ: Runner.Validate.nameserver */ + for(auto &ns : this->internal->nses) { + if(!ns->validate(this->opts)) { + failures++; + } + } + /* REQ: Runner.Validate.network.netssid */ for(auto &ssid : this->internal->ssids) { if(!ssid->validate(this->opts)) { |