X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fprotocol_misc.c;h=7410ad13c8f5316b3d274ede08877e58f2e54050;hb=a23ddd4f4e273b2ed68fe173b4faa69aadc98756;hp=c6a3630ae2ea190fc27ee41dbe8b9206c85591b9;hpb=42874d60e2554393094ea5cc1325ab2984750cbc;p=meshlink diff --git a/src/protocol_misc.c b/src/protocol_misc.c index c6a3630a..7410ad13 100644 --- a/src/protocol_misc.c +++ b/src/protocol_misc.c @@ -50,6 +50,12 @@ bool status_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { return true; } +bool send_error(meshlink_handle_t *mesh, connection_t *c, request_error_t err, const char *message) { + send_request(mesh, c, NULL, "%d %d %s", ERROR, err, message); + flush_meta(mesh, c); + return false; +} + bool error_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { assert(request); assert(*request); @@ -64,6 +70,13 @@ bool error_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { logger(mesh, MESHLINK_INFO, "Error message from %s: %d: %s", c->name, err, errorstring); + switch(err) { + case BLACKLISTED: + if(mesh->blacklisted_cb) { + mesh->blacklisted_cb(mesh, (meshlink_node_t *)lookup_node(mesh, c->name)); + } + } + return false; }