/* Basic functions */
-extern bool send_request(struct meshlink_handle *mesh, struct connection_t *, const char *, ...) __attribute__((__format__(printf, 3, 4)));
-extern void forward_request(struct meshlink_handle *mesh, struct connection_t *, const char *);
+extern bool send_request(struct meshlink_handle *mesh, struct connection_t *, struct submesh_t *s, const char *, ...) __attribute__((__format__(printf, 4, 5)));
+extern void forward_request(struct meshlink_handle *mesh, struct connection_t *, struct submesh_t *, const char *);
extern bool receive_request(struct meshlink_handle *mesh, struct connection_t *, const char *);
extern bool check_id(const char *);
extern bool send_ack(struct meshlink_handle *mesh, struct connection_t *);
extern bool send_ping(struct meshlink_handle *mesh, struct connection_t *);
extern bool send_pong(struct meshlink_handle *mesh, struct connection_t *);
-extern bool send_add_edge(struct meshlink_handle *mesh, struct connection_t *, const struct edge_t *);
-extern bool send_del_edge(struct meshlink_handle *mesh, struct connection_t *, const struct edge_t *);
-extern void send_key_changed(struct meshlink_handle *mesh);
+extern bool send_add_edge(struct meshlink_handle *mesh, struct connection_t *, const struct edge_t *, int contradictions);
+extern bool send_del_edge(struct meshlink_handle *mesh, struct connection_t *, const struct edge_t *, int contradictions);
extern bool send_req_key(struct meshlink_handle *mesh, struct node_t *);
/* Request handlers */