X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fprotocol_misc.c;fp=src%2Fprotocol_misc.c;h=84a2531c8fe6a9feab8892dfcfb450f923d4e3dd;hb=a1b50920b9a52f86ca6e33fcb24d7fa34313a1ee;hp=c95c9cb92028bfdd279a1d9d4cd76728f85e02b3;hpb=682042b856da86ef01fd93483d0871f7e312d87b;p=meshlink diff --git a/src/protocol_misc.c b/src/protocol_misc.c index c95c9cb9..84a2531c 100644 --- a/src/protocol_misc.c +++ b/src/protocol_misc.c @@ -33,14 +33,14 @@ int maxoutbufsize = 0; /* Status and error notification routines */ -bool send_status(connection_t *c, int statusno, const char *statusstring) { +bool send_status(meshlink_handle_t *mesh, connection_t *c, int statusno, const char *statusstring) { if(!statusstring) statusstring = "Status"; - return send_request(c, "%d %d %s", STATUS, statusno, statusstring); + return send_request(mesh, c, "%d %d %s", STATUS, statusno, statusstring); } -bool status_h(connection_t *c, const char *request) { +bool status_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { int statusno; char statusstring[MAX_STRING_SIZE]; @@ -56,14 +56,14 @@ bool status_h(connection_t *c, const char *request) { return true; } -bool send_error(connection_t *c, int err, const char *errstring) { +bool send_error(meshlink_handle_t *mesh, connection_t *c, int err, const char *errstring) { if(!errstring) errstring = "Error"; - return send_request(c, "%d %d %s", ERROR, err, errstring); + return send_request(mesh, c, "%d %d %s", ERROR, err, errstring); } -bool error_h(connection_t *c, const char *request) { +bool error_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { int err; char errorstring[MAX_STRING_SIZE]; @@ -79,30 +79,30 @@ bool error_h(connection_t *c, const char *request) { return false; } -bool send_termreq(connection_t *c) { - return send_request(c, "%d", TERMREQ); +bool send_termreq(meshlink_handle_t *mesh, connection_t *c) { + return send_request(mesh, c, "%d", TERMREQ); } -bool termreq_h(connection_t *c, const char *request) { +bool termreq_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { return false; } -bool send_ping(connection_t *c) { +bool send_ping(meshlink_handle_t *mesh, connection_t *c) { c->status.pinged = true; c->last_ping_time = mesh->loop.now.tv_sec; - return send_request(c, "%d", PING); + return send_request(mesh, c, "%d", PING); } -bool ping_h(connection_t *c, const char *request) { - return send_pong(c); +bool ping_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { + return send_pong(mesh, c); } -bool send_pong(connection_t *c) { - return send_request(c, "%d", PONG); +bool send_pong(meshlink_handle_t *mesh, connection_t *c) { + return send_request(mesh, c, "%d", PONG); } -bool pong_h(connection_t *c, const char *request) { +bool pong_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { c->status.pinged = false; /* Succesful connection, reset timeout if this is an outgoing connection. */ @@ -121,20 +121,20 @@ bool pong_h(connection_t *c, const char *request) { /* Sending and receiving packets via TCP */ -bool send_tcppacket(connection_t *c, const vpn_packet_t *packet) { +bool send_tcppacket(meshlink_handle_t *mesh, connection_t *c, const vpn_packet_t *packet) { /* If there already is a lot of data in the outbuf buffer, discard this packet. We use a very simple Random Early Drop algorithm. */ if(2.0 * c->outbuf.len / (float)maxoutbufsize - 1 > (float)rand()/(float)RAND_MAX) return true; - if(!send_request(c, "%d %hd", PACKET, packet->len)) + if(!send_request(mesh, c, "%d %hd", PACKET, packet->len)) return false; - return send_meta(c, (char *)packet->data, packet->len); + return send_meta(mesh, c, (char *)packet->data, packet->len); } -bool tcppacket_h(connection_t *c, const char *request) { +bool tcppacket_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { short int len; if(sscanf(request, "%*d %hd", &len) != 1) {