/* Status and error notification routines */
bool status_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
+ assert(request);
+ assert(*request);
+
int statusno;
char statusstring[MAX_STRING_SIZE];
}
bool error_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
+ assert(request);
+ assert(*request);
+
int err;
char errorstring[MAX_STRING_SIZE];
(void)mesh;
(void)c;
(void)request;
+
+ assert(request);
+ assert(*request);
+
return false;
}
c->status.pinged = true;
c->last_ping_time = mesh->loop.now.tv_sec;
- return send_request(mesh, c, "%d", PING);
+ return send_request(mesh, c, NULL, "%d", PING);
}
bool ping_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
(void)request;
+
+ assert(request);
+ assert(*request);
+
return send_pong(mesh, c);
}
bool send_pong(meshlink_handle_t *mesh, connection_t *c) {
- return send_request(mesh, c, "%d", PONG);
+ return send_request(mesh, c, NULL, "%d", PONG);
}
bool pong_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
(void)mesh;
(void)request;
- c->status.pinged = false;
- /* Succesful connection, reset timeout if this is an outgoing connection. */
+ assert(request);
+ assert(*request);
- if(c->outgoing) {
- c->outgoing->timeout = 0;
- c->outgoing->cfg = NULL;
+ c->status.pinged = false;
- if(c->outgoing->ai) {
- freeaddrinfo(c->outgoing->ai);
- }
+ /* Successful connection, reset timeout if this is an outgoing connection. */
- c->outgoing->ai = NULL;
- c->outgoing->aip = NULL;
+ if(c->outgoing) {
+ reset_outgoing(c->outgoing);
}
return true;
/* Sending and receiving packets via TCP */
bool tcppacket_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
+ assert(request);
+ assert(*request);
+
short int len;
if(sscanf(request, "%*d %hd", &len) != 1) {