- // Write main config file
- uint8_t outbuf[4096];
- packmsg_output_t out = {outbuf, sizeof(outbuf)};
- packmsg_add_uint32(&out, MESHLINK_CONFIG_VERSION);
- packmsg_add_str(&out, name);
- packmsg_add_bin(&out, ecdsa_get_private_key(mesh->private_key), 96);
- packmsg_add_uint16(&out, atoi(mesh->myport));
-
- config_t config = {outbuf, packmsg_output_size(&out, outbuf)};
-
- if(!main_config_write(mesh, &config)) {
- return false;
- }
-
- // Write our own host config file
- out.ptr = outbuf;
- out.len = sizeof(outbuf);
- packmsg_add_uint32(&out, MESHLINK_CONFIG_VERSION);
- packmsg_add_str(&out, name);
- packmsg_add_str(&out, CORE_MESH);
- packmsg_add_int32(&out, devclass);
- packmsg_add_bool(&out, false);
- packmsg_add_bin(&out, ecdsa_get_public_key(mesh->private_key), 32);
- packmsg_add_str(&out, ""); // TODO: copy existing canonical address, in case it was added before meshlink_join().
- packmsg_add_array(&out, 0);
-
- config.len = packmsg_output_size(&out, outbuf);
-
- if(!config_write(mesh, name, &config)) {