Exemple #1
0
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);
}
Exemple #2
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);
}
Exemple #3
0
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;
	}
}
Exemple #4
0
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);
}
Exemple #5
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);
}
Exemple #6
0
void acl_mdb_free(ACL_MDB *mdb)
{
	acl_htable_free(mdb->tbls, free_tbl_fn);
	acl_myfree(mdb);
}