]> git.meshlink.io Git - meshlink/commitdiff
Better use of enum dev_class_t.
authorGuus Sliepen <guus@meshlink.io>
Thu, 5 Sep 2019 13:14:45 +0000 (15:14 +0200)
committerGuus Sliepen <guus@meshlink.io>
Thu, 5 Sep 2019 13:14:45 +0000 (15:14 +0200)
src/meshlink.c
src/meshlink.h
src/meshlink_internal.h
src/net.c
src/net_setup.c
src/node.c
src/node.h
src/protocol_auth.c
src/protocol_edge.c
test/blackbox/run_blackbox_tests/test_cases_get_all_nodes_by_dev_class.c

index 42573c8ffa6f68837fb1e06f3a567f0baefbdbd9..a7e94e3a599db2cbb7772f2adffc1f93f0cf97fa 100644 (file)
@@ -575,7 +575,7 @@ static bool finalize_join(meshlink_handle_t *mesh, const void *buf, uint16_t len
 
        char *name = packmsg_get_str_dup(&in);
        packmsg_skip_element(&in); /* submesh */
-       int32_t devclass = packmsg_get_int32(&in);
+       dev_class_t devclass = packmsg_get_int32(&in);
        uint32_t count = packmsg_get_array(&in);
 
        if(!name) {
@@ -1012,7 +1012,7 @@ meshlink_open_params_t *meshlink_open_params_init(const char *confbase, const ch
                }
        }
 
-       if((int)devclass < 0 || devclass > _DEV_CLASS_MAX) {
+       if(devclass < 0 || devclass >= DEV_CLASS_COUNT) {
                logger(NULL, MESHLINK_ERROR, "Invalid devclass given!\n");
                meshlink_errno = MESHLINK_EINVAL;
                return NULL;
@@ -1237,7 +1237,7 @@ meshlink_handle_t *meshlink_open_ex(const meshlink_open_params_t *params) {
                }
        }
 
-       if((int)params->devclass < 0 || params->devclass > _DEV_CLASS_MAX) {
+       if(params->devclass < 0 || params->devclass >= DEV_CLASS_COUNT) {
                logger(NULL, MESHLINK_ERROR, "Invalid devclass given!\n");
                meshlink_errno = MESHLINK_EINVAL;
                return NULL;
@@ -1919,7 +1919,7 @@ static bool search_node_by_submesh(const node_t *node, const void *condition) {
 }
 
 meshlink_node_t **meshlink_get_all_nodes_by_dev_class(meshlink_handle_t *mesh, dev_class_t devclass, meshlink_node_t **nodes, size_t *nmemb) {
-       if(!mesh || ((int)devclass < 0) || (devclass > _DEV_CLASS_MAX) || !nmemb) {
+       if(!mesh || devclass < 0 || devclass >= DEV_CLASS_COUNT || !nmemb) {
                meshlink_errno = MESHLINK_EINVAL;
                return NULL;
        }
index 06f8791334d67ec8378aa45c15fec9ad4baac1be..28f36273b0bd3e95b21c39fcf691e04761b0fab2 100644 (file)
@@ -79,7 +79,7 @@ typedef enum {
        DEV_CLASS_STATIONARY = 1,
        DEV_CLASS_PORTABLE = 2,
        DEV_CLASS_UNKNOWN = 3,
-       _DEV_CLASS_MAX = 3
+       DEV_CLASS_COUNT
 } dev_class_t;
 
 /// Invitation flags
index 569628cc3e6ebc05dca19f47d978c7e299c73961..3d6ac782735d4fd9254dbc78051ed5fe5616440a 100644 (file)
@@ -138,7 +138,7 @@ struct meshlink_handle {
        struct ecdsa *private_key;
        struct ecdsa *invitation_key;
 
-       int32_t devclass;
+       dev_class_t devclass;
 
        int invitation_timeout;
        int pinginterval;       /* seconds between pings */
index 1df0be0030b257f800ed23e12d9c89e757e0a175..7ced1d15ffe688b936c89eecc1db5415af7525f5 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -424,7 +424,7 @@ static void periodic_handler(event_loop_t *loop, void *data) {
                if(!connect_to && min_connects <= cur_connects && cur_connects < max_connects) {
                        unsigned int connects = 0;
 
-                       for(int32_t devclass = 0; devclass <= mesh->devclass; ++devclass) {
+                       for(dev_class_t devclass = 0; devclass <= mesh->devclass; ++devclass) {
                                for list_each(connection_t, c, mesh->connections) {
                                        if(c->status.active && c->node && c->node->devclass == devclass) {
                                                connects += 1;
@@ -519,7 +519,7 @@ static void periodic_handler(event_loop_t *loop, void *data) {
                if(min_connects < cur_connects /*&& cur_connects <= max_connects*/) {
                        unsigned int connects = 0;
 
-                       for(int32_t devclass = 0; devclass <= mesh->devclass; ++devclass) {
+                       for(dev_class_t devclass = 0; devclass <= mesh->devclass; ++devclass) {
                                for list_each(connection_t, c, mesh->connections) {
                                        if(c->status.active && c->node && c->node->devclass == devclass) {
                                                connects += 1;
index ccfaacce0bb1e9e33f345a991240b0de09b73017..0045cd6ffdf12d35d3f3797d5699149d117fbe8f 100644 (file)
@@ -85,11 +85,11 @@ bool node_read_partial(meshlink_handle_t *mesh, node_t *n) {
                }
        }
 
-       int32_t devclass = packmsg_get_int32(&in);
+       dev_class_t devclass = packmsg_get_int32(&in);
        bool blacklisted = packmsg_get_bool(&in);
        config_free(&config);
 
-       if(!packmsg_input_ok(&in) || devclass < 0 || devclass > _DEV_CLASS_MAX) {
+       if(!packmsg_input_ok(&in) || devclass < 0 || devclass >= DEV_CLASS_COUNT) {
                return false;
        }
 
index 690599c5edf822dfc9e34019a5f246dcc80335db..5f5d235cf4d28e35929754b38576080ac8fc8836 100644 (file)
@@ -57,7 +57,7 @@ node_t *new_node(void) {
        n->edge_tree = new_edge_tree();
        n->mtu = MTU;
        n->maxmtu = MTU;
-       n->devclass = _DEV_CLASS_MAX;
+       n->devclass = DEV_CLASS_UNKNOWN;
 
        return n;
 }
index dc15e3f299f9c2767fa06a5b23ca95ae390a05d4..e42aac4a4d894f02d4a840408c029aceda1d8349 100644 (file)
@@ -47,7 +47,7 @@ typedef struct node_t {
        // Private member variables
        node_status_t status;
        uint16_t minmtu;                        /* Probed minimum MTU */
-       int32_t devclass;
+       dev_class_t devclass;
 
        // Used for packet I/O
        sptps_t sptps;
index c7d6882984e8239f7f30345fa54bb04aae2a7ebd..a6144c5fa043319655d937f58324edb458d388b7 100644 (file)
@@ -395,7 +395,7 @@ bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
                return false;
        }
 
-       if(devclass < 0 || devclass > _DEV_CLASS_MAX) {
+       if(devclass < 0 || devclass >= DEV_CLASS_COUNT) {
                logger(mesh, MESHLINK_ERROR, "Got bad %s from %s: %s", "ACK", c->name, "devclass invalid");
                return false;
        }
@@ -450,7 +450,7 @@ bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
 
        /* Create an edge_t for this connection */
 
-       assert(devclass >= 0 && devclass <= _DEV_CLASS_MAX);
+       assert(devclass >= 0 && devclass < DEV_CLASS_COUNT);
 
        c->edge = new_edge();
        c->edge->from = mesh->self;
index 4efb1eceb0bdfbac7723d0050620055253f2b4ff..74ace0cc6d05cfeb42dad8f5821c383e978ef36d 100644 (file)
@@ -108,12 +108,12 @@ bool add_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
 
        // Check if devclasses are valid
 
-       if(from_devclass < 0 || from_devclass > _DEV_CLASS_MAX) {
+       if(from_devclass < 0 || from_devclass >= DEV_CLASS_COUNT) {
                logger(mesh, MESHLINK_ERROR, "Got bad %s from %s: %s", "ADD_EDGE", c->name, "from devclass invalid");
                return false;
        }
 
-       if(to_devclass < 0 || to_devclass > _DEV_CLASS_MAX) {
+       if(to_devclass < 0 || to_devclass >= DEV_CLASS_COUNT) {
                logger(mesh, MESHLINK_ERROR, "Got bad %s from %s: %s", "ADD_EDGE", c->name, "to devclass invalid");
                return false;
        }
index 6f4badf609a9bcfd9bbf6d9da07d2fd7ec716b10..82f0e17f88e3c25cd7bd3e26e9fe5a811b384712 100644 (file)
@@ -216,7 +216,7 @@ static bool test_steps_mesh_get_node_by_dev_class_02(void) {
        assert(mesh_nut);
        meshlink_set_log_cb(mesh_nut, TEST_MESHLINK_LOG_LEVEL, log_message);
 
-       nodes = meshlink_get_all_nodes_by_dev_class(mesh_nut, _DEV_CLASS_MAX + 10, NULL, &nnodes);
+       nodes = meshlink_get_all_nodes_by_dev_class(mesh_nut, DEV_CLASS_COUNT + 10, NULL, &nnodes);
        assert_int_equal(nodes, NULL);
        assert_int_not_equal(meshlink_errno, 0);