Mercurial > hg > nginx-quic
changeset 981:6fe76f377a62
fix key length and alignment
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 07 Jan 2007 09:18:26 +0000 |
parents | 7cb910b4a58a |
children | 664afe2c1480 |
files | src/http/modules/ngx_http_limit_zone_module.c |
diffstat | 1 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_limit_zone_module.c +++ b/src/http/modules/ngx_http_limit_zone_module.c @@ -10,7 +10,8 @@ typedef struct { - u_short len; + u_char color; + u_char len; u_short conn; u_char data[1]; } ngx_http_limit_zone_node_t; @@ -148,12 +149,12 @@ ngx_http_limit_zone_handler(ngx_http_req } if (hash == node->key ){ - lz = (ngx_http_limit_zone_node_t *) &node->data; + lz = (ngx_http_limit_zone_node_t *) &node->color; if (len == (size_t) lz->len && ngx_strncmp(lz->data, vv->data, len) == 0) { - if (lz->conn < (u_short) lzcf->conn) { + if ((ngx_uint_t) lz->conn < lzcf->conn) { lz->conn++; goto done; } @@ -165,7 +166,7 @@ ngx_http_limit_zone_handler(ngx_http_req } } - n = offsetof(ngx_rbtree_node_t, data) + n = offsetof(ngx_rbtree_node_t, color) + offsetof(ngx_http_limit_zone_node_t, data) + len; @@ -175,10 +176,10 @@ ngx_http_limit_zone_handler(ngx_http_req return NGX_HTTP_SERVICE_UNAVAILABLE; } - lz = (ngx_http_limit_zone_node_t *) &node->data; + lz = (ngx_http_limit_zone_node_t *) &node->color; node->key = hash; - lz->len = (u_short) len; + lz->len = (u_char) len; lz->conn = 1; ngx_memcpy(lz->data, vv->data, len); @@ -214,7 +215,7 @@ ngx_http_limit_zone_cleanup(void *data) rbtree = lzcln->shm_zone->data; shpool = (ngx_slab_pool_t *) lzcln->shm_zone->shm.addr; node = lzcln->node; - lz = (ngx_http_limit_zone_node_t *) &node->data; + lz = (ngx_http_limit_zone_node_t *) &node->color; ngx_shmtx_lock(&shpool->mutex);