+ int contradictions = 0;
+ submesh_t *s = NULL;
+
+ if(sscanf(request, "%*d %*x "MAX_STRING" %d "MAX_STRING" "MAX_STRING" "MAX_STRING" "MAX_STRING" %d "MAX_STRING" %x %d %d",
+ from_name, &from_devclass, from_submesh_name, to_name, to_address, to_port, &to_devclass, to_submesh_name,
+ &options, &weight, &contradictions) < 10) {
+ logger(mesh, MESHLINK_ERROR, "Got bad %s from %s", "ADD_EDGE", c->name);
+ return false;
+ }
+
+ // Check if devclasses are valid
+
+ if(from_devclass < 0 || from_devclass > _DEV_CLASS_MAX) {
+ logger(mesh, MESHLINK_ERROR, "Got bad %s from %s: %s", "ADD_EDGE", c->name, "from devclass invalid");
+ return false;
+ }