summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hscript/network.cc12
-rw-r--r--hscript/script.cc5
2 files changed, 12 insertions, 5 deletions
diff --git a/hscript/network.cc b/hscript/network.cc
index e02e5df..c8f42de 100644
--- a/hscript/network.cc
+++ b/hscript/network.cc
@@ -324,11 +324,17 @@ bool NetSSID::validate(ScriptOptions options) const {
this->_iface.size());
errno = 0;
if(ioctl(my_sock, SIOCGIWNAME, &request) == -1) {
- if(errno == EOPNOTSUPP) {
+ switch(errno)
+ {
+ case EOPNOTSUPP:
output_warning("installfile:" + std::to_string(this->lineno()),
"netssid: interface specified is not wireless");
- return false;
- } else {
+ return true;
+ case ENODEV:
+ output_warning("installfile:" + std::to_string(this->lineno()),
+ "netssid: specified interface does not exist");
+ return true;
+ default:
output_error("installfile:" + std::to_string(this->lineno()),
"netssid: error communicating with wireless device");
return false;
diff --git a/hscript/script.cc b/hscript/script.cc
index 29e0118..444b6c0 100644
--- a/hscript/script.cc
+++ b/hscript/script.cc
@@ -392,8 +392,9 @@ bool Script::validate() const {
/* Runner.Validate.network.netssid */
for(auto &ssid : this->internal->ssids) {
- ssid->validate(this->opts);
- /* Failure is not fatal per spec. */
+ if(!ssid->validate(this->opts)) {
+ failures++;
+ }
}
if(this->internal->repos.size() == 0) {