X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fnet_setup.c;h=a2c441417b8e988b78118fbab1daa8b029726614;hb=80d7a91d86f8cde7b1a550ef18ae7b84e2236ab6;hp=fd4386746c2b1f626a35bb273e456ce3f08a80b0;hpb=a021bf25db676353b8ea50740ce343962c3dddb9;p=meshlink diff --git a/src/net_setup.c b/src/net_setup.c index fd438674..a2c44141 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -83,7 +83,7 @@ bool read_ecdsa_private_key(meshlink_handle_t *mesh) { char filename[PATH_MAX]; snprintf(filename,PATH_MAX, "%s" SLASH "ecdsa_key.priv", mesh->confbase); - fp = fopen(filename, "r"); + fp = fopen(filename, "rb"); if(!fp) { logger(mesh, MESHLINK_ERROR, "Error reading ECDSA private key file: %s", strerror(errno)); @@ -110,7 +110,7 @@ static bool read_invitation_key(meshlink_handle_t *mesh) { snprintf(filename,PATH_MAX, "%s" SLASH "invitations" SLASH "ecdsa_key.priv", mesh->confbase); - fp = fopen(filename, "r"); + fp = fopen(filename, "rb"); if(fp) { mesh->invitation_key = ecdsa_read_pem_private_key(fp); @@ -123,9 +123,7 @@ static bool read_invitation_key(meshlink_handle_t *mesh) { } bool node_read_devclass(meshlink_handle_t *mesh, node_t *n) { - if(n->devclass != 0) - return true; - + splay_tree_t *config_tree; char *p; @@ -149,7 +147,7 @@ exit: bool node_write_devclass(meshlink_handle_t *mesh, node_t *n) { - if(n->devclass == 0) + if(n->devclass < 0 || n->devclass > _DEV_CLASS_MAX) return false; bool result = false; @@ -380,6 +378,8 @@ bool setup_myself(meshlink_handle_t *mesh) { mesh->self->via = mesh->self; mesh->self->status.reachable = true; mesh->self->last_state_change = mesh->loop.now.tv_sec; + + node_write_devclass(mesh, mesh->self); node_add(mesh, mesh->self); graph(mesh);