diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-04-23 20:36:35 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-04-23 20:36:35 +0000 |
commit | 23d5f93d74c885df5a8feee25229d68576b394d3 (patch) | |
tree | a9289da90accc4137203d99a5205aae4d8ed7edb /main/astobj2.c | |
parent | c052997dcc8db29dd063ab6eeb2bfa3be1f4ae96 (diff) |
Support HTTP digest authentication for the http manager interface.
(closes issue #10961)
Reported by: ys
Patches:
digest_auth_r148468_v5.diff uploaded by ys (license 281)
SVN branch http://svn.digium.com/svn/asterisk/team/group/manager_http_auth
Tested by: ys, twilson, tilghman
Review: http://reviewboard.digium.com/r/223/
Reviewed by: tilghman,russellb,mmichelson
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@190349 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/astobj2.c')
-rw-r--r-- | main/astobj2.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/main/astobj2.c b/main/astobj2.c index 36d943843..8bd57d87c 100644 --- a/main/astobj2.c +++ b/main/astobj2.c @@ -236,7 +236,7 @@ int __ao2_ref_debug(void *user_data, const int delta, char *tag, char *file, int if (delta != 0) { FILE *refo = fopen(REF_FILE,"a"); - fprintf(refo, "%p %s%d %s:%d:%s (%s) [@%d]\n", user_data, (delta<0? "":"+"), delta, file, line, funcname, tag, obj->priv_data.ref_counter); + fprintf(refo, "%p %s%d %s:%d:%s (%s) [@%d]\n", user_data, (delta<0? "":"+"), delta, file, line, funcname, tag, obj ? obj->priv_data.ref_counter : -1); fclose(refo); } if (obj->priv_data.ref_counter + delta == 0 && obj->priv_data.destructor_fn != NULL) { /* this isn't protected with lock; just for o/p */ @@ -428,7 +428,7 @@ static struct ao2_container *internal_ao2_container_alloc(struct ao2_container * return NULL; c->version = 1; /* 0 is a reserved value here */ - c->n_buckets = n_buckets; + c->n_buckets = hash_fn ? n_buckets : 1; c->hash_fn = hash_fn ? hash_fn : hash_zero; c->cmp_fn = cmp_fn; @@ -444,10 +444,11 @@ struct ao2_container *__ao2_container_alloc_debug(const unsigned int n_buckets, { /* XXX maybe consistency check on arguments ? */ /* compute the container size */ - size_t container_size = sizeof(struct ao2_container) + n_buckets * sizeof(struct bucket); + const unsigned int num_buckets = hash_fn ? n_buckets : 1; + size_t container_size = sizeof(struct ao2_container) + num_buckets * sizeof(struct bucket); struct ao2_container *c = __ao2_alloc_debug(container_size, container_destruct_debug, tag, file, line, funcname); - return internal_ao2_container_alloc(c, n_buckets, hash_fn, cmp_fn); + return internal_ao2_container_alloc(c, num_buckets, hash_fn, cmp_fn); } struct ao2_container *__ao2_container_alloc(const unsigned int n_buckets, ao2_hash_fn *hash_fn, @@ -456,10 +457,11 @@ struct ao2_container *__ao2_container_alloc(const unsigned int n_buckets, ao2_ha /* XXX maybe consistency check on arguments ? */ /* compute the container size */ - size_t container_size = sizeof(struct ao2_container) + n_buckets * sizeof(struct bucket); + const unsigned int num_buckets = hash_fn ? n_buckets : 1; + size_t container_size = sizeof(struct ao2_container) + num_buckets * sizeof(struct bucket); struct ao2_container *c = __ao2_alloc(container_size, container_destruct); - return internal_ao2_container_alloc(c, n_buckets, hash_fn, cmp_fn); + return internal_ao2_container_alloc(c, num_buckets, hash_fn, cmp_fn); } /*! |