s = e->to->submesh;
}
- x = send_request(mesh, c, s, "%d %x %s %d %s %s %s %s %d %s %x %d %d", ADD_EDGE, rand(),
+ x = send_request(mesh, c, s, "%d %x %s %d %s %s %s %s %d %s %x %d %d", ADD_EDGE, prng(mesh, UINT_MAX),
e->from->name, e->from->devclass, from_submesh, e->to->name, address, port,
e->to->devclass, to_submesh, OPTION_PMTU_DISCOVERY, e->weight, contradictions);
free(address);
}
bool add_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
+ assert(request);
+ assert(*request);
+
edge_t *e;
node_t *from, *to;
char from_name[MAX_STRING_SIZE];
// Check if devclasses are valid
- if(from_devclass < 0 || from_devclass > _DEV_CLASS_MAX) {
+ if(from_devclass < 0 || from_devclass >= DEV_CLASS_COUNT) {
logger(mesh, MESHLINK_ERROR, "Got bad %s from %s: %s", "ADD_EDGE", c->name, "from devclass invalid");
return false;
}
- if(to_devclass < 0 || to_devclass > _DEV_CLASS_MAX) {
+ if(to_devclass < 0 || to_devclass >= DEV_CLASS_COUNT) {
logger(mesh, MESHLINK_ERROR, "Got bad %s from %s: %s", "ADD_EDGE", c->name, "to devclass invalid");
return false;
}
logger(mesh, MESHLINK_WARNING, "Got %s from %s which does not match existing entry",
"ADD_EDGE", c->name);
edge_del(mesh, e);
- graph(mesh);
}
} else {
return true;
s = e->to->submesh;
}
- return send_request(mesh, c, s, "%d %x %s %s %d", DEL_EDGE, rand(),
+ return send_request(mesh, c, s, "%d %x %s %s %d", DEL_EDGE, prng(mesh, UINT_MAX),
e->from->name, e->to->name, contradictions);
}
bool del_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
+ assert(request);
+ assert(*request);
+
edge_t *e;
char from_name[MAX_STRING_SIZE];
char to_name[MAX_STRING_SIZE];