]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.c
Add extra metering scenarios.
[meshlink] / src / meshlink.c
index f153f7573419d55d5adbc19114c371aa8da7ad87..ce3b12c59ae5c10c9d5b9574749ac17dd2551118 100644 (file)
@@ -2270,8 +2270,6 @@ void meshlink_send_from_queue(event_loop_t *loop, void *data) {
 
        for(vpn_packet_t *packet; (packet = meshlink_queue_pop(&mesh->outpacketqueue));) {
                logger(mesh, MESHLINK_DEBUG, "Removing packet of %d bytes from packet queue", packet->len);
-               mesh->self->in_packets++;
-               mesh->self->in_bytes += packet->len;
                route(mesh, mesh->self, packet);
                free(packet);
        }
@@ -2562,6 +2560,25 @@ dev_class_t meshlink_get_node_dev_class(meshlink_handle_t *mesh, meshlink_node_t
        return devclass;
 }
 
+bool meshlink_get_node_tiny(meshlink_handle_t *mesh, meshlink_node_t *node) {
+       if(!mesh || !node) {
+               meshlink_errno = MESHLINK_EINVAL;
+               return -1;
+       }
+
+       bool tiny;
+
+       if(pthread_mutex_lock(&mesh->mutex) != 0) {
+               abort();
+       }
+
+       tiny = ((node_t *)node)->status.tiny;
+
+       pthread_mutex_unlock(&mesh->mutex);
+
+       return tiny;
+}
+
 bool meshlink_get_node_blacklisted(meshlink_handle_t *mesh, meshlink_node_t *node) {
        if(!mesh) {
                meshlink_errno = MESHLINK_EINVAL;