int main(int unused_argc, char **argv) { ACL_HTABLE *table = acl_htable_create(1); acl_msg_verbose = 1; acl_htable_enter(table, "foo-name", mystrdup("foo-value")); acl_htable_enter(table, "bar-name", mystrdup("bar-value")); attr_print64(ACL_VSTREAM_OUT, ATTR_FLAG_NONE, ATTR_TYPE_INT, ATTR_NAME_INT, 4711, ATTR_TYPE_LONG, ATTR_NAME_LONG, 1234, ATTR_TYPE_STR, ATTR_NAME_STR, "whoopee", ATTR_TYPE_DATA, ATTR_NAME_DATA, strlen("whoopee"), "whoopee", ATTR_TYPE_HASH, table, ATTR_TYPE_END); attr_print64(ACL_VSTREAM_OUT, ATTR_FLAG_NONE, ATTR_TYPE_INT, ATTR_NAME_INT, 4711, ATTR_TYPE_LONG, ATTR_NAME_LONG, 1234, ATTR_TYPE_STR, ATTR_NAME_STR, "whoopee", ATTR_TYPE_DATA, ATTR_NAME_DATA, strlen("whoopee"), "whoopee", ATTR_TYPE_END); if (acl_vstream_fflush(ACL_VSTREAM_OUT) == ACL_VSTREAM_EOF) acl_msg_fatal("%s: write error", __FUNCTION__); acl_htable_free(table, myfree); return (0); }
void service_free(SERVICE *service) { if (service->dns_server) dns_server_close(service->dns_server); if (service->dns_table) acl_htable_free(service->dns_table, NULL); acl_myfree(service); }
static void __hdr_free_member(HTTP_HDR_REQ *hh) { if (hh->url_part) acl_vstring_free(hh->url_part); if (hh->url_path) acl_vstring_free(hh->url_path); if (hh->url_params) acl_vstring_free(hh->url_params); if (hh->file_path) acl_vstring_free(hh->file_path); if (hh->params_table) { acl_htable_free(hh->params_table, __request_args_free_fn); hh->params_table = NULL; } if (hh->cookies_table) { acl_htable_free(hh->cookies_table, __cookies_args_free_fn); hh->cookies_table = NULL; } }
int main(int argc, char *argv[]) { ACL_HTABLE *htable; char key[128], *value; int i, n = 50, ch, flag = 0; while ((ch = getopt(argc, argv, "hn:m")) > 0) { switch (ch) { case 'h': usage(argv[0]); return (0); case 'n': n = atoi(optarg); break; case 'm': flag |= ACL_HTABLE_FLAG_MSLOOK; break; default: break; } } htable = acl_htable_create(1, flag); for (i = 0; i < n; i++) { value = (char*) acl_mymalloc(256); snprintf(value, 256, "value:%d", i); snprintf(key, sizeof(key), "key:%d", i); acl_htable_enter(htable, key, value); } acl_htable_stat(htable); printf("------------------------------------------------------------\n"); for (i = n - 1; i >= 0; i--) { snprintf(key, sizeof(key), "key:%d", i); (void) acl_htable_find(htable, key); } acl_htable_stat(htable); acl_htable_free(htable, free_fn); return (0); }
int acl_xml_free(ACL_XML *xml) { ACL_RING *next; ACL_XML_NODE *node; int n = 1; while ((next = acl_ring_pop_head(&xml->root->children)) != NULL) { node = acl_ring_to_appl(next, ACL_XML_NODE, node); n += acl_xml_node_delete(node); } acl_xml_node_free(xml->root); xml->node_cnt--; acl_assert(xml->node_cnt == 0); acl_htable_free(xml->id_table, NULL); if (xml->node_cache != NULL) acl_array_free(xml->node_cache, (void (*)(void*)) acl_xml_node_free); if (xml->slice) acl_slice_pool_free(__FILE__, __LINE__, xml); else acl_myfree(xml); return (n); }
void acl_mdb_free(ACL_MDB *mdb) { acl_htable_free(mdb->tbls, free_tbl_fn); acl_myfree(mdb); }