int main(int argc, char **argv) { fail_unless(e3x_init(NULL) == 0); lob_t id = e3x_generate(); fail_unless(id); e3x_self_t self = e3x_self_new(id,NULL); fail_unless(self); int i, count = 0; for(i = 0; i < CS_MAX; i++) { if(!self->locals[i]) continue; LOG("self testing CS %d",i); count++; fail_unless(self->locals[i]); fail_unless(self->keys[i]); fail_unless(self->keys[i]->body_len); fail_unless(lob_get(self->keys[i],"key")); fail_unless(lob_get(self->keys[i],"hash")); fail_unless(strlen(lob_get(self->keys[i],"hash")) == 52); } fail_unless(count); e3x_self_free(self); lob_free(id); return 0; }
mesh_t mesh_free(mesh_t mesh) { on_t on; if(!mesh) return NULL; // free all links first link_t link, next; for(link = mesh->links;link;link = next) { next = link->next; link_free(link); } // free any triggers first while(mesh->on) { on = mesh->on; mesh->on = on->next; if(on->free) on->free(mesh); free(on->id); free(on); } xht_free(mesh->index); lob_free(mesh->keys); lob_free(mesh->paths); lob_freeall(mesh->cached); hashname_free(mesh->id); e3x_self_free(mesh->self); if(mesh->uri) free(mesh->uri); if(mesh->ipv4_local) free(mesh->ipv4_local); if(mesh->ipv4_public) free(mesh->ipv4_public); free(mesh); return NULL; }