From bf8c01bfcd015d43cfbcb893e48c6a83a95c91ec Mon Sep 17 00:00:00 2001 From: Ben Magistro Date: Sun, 17 Apr 2022 09:45:02 -0400 Subject: Drop nginx Nginx is not part of the core library being developed and needs to be moved to its own repository to allow it to be more easily maintained. Signed-off-by: Ben Magistro Change-Id: I5639e84ba0564ccd49ffcffa7ec9fcd57827bd6d --- .../http/modules/ngx_http_upstream_zone_module.c | 246 --------------------- 1 file changed, 246 deletions(-) delete mode 100644 app/nginx/src/http/modules/ngx_http_upstream_zone_module.c (limited to 'app/nginx/src/http/modules/ngx_http_upstream_zone_module.c') diff --git a/app/nginx/src/http/modules/ngx_http_upstream_zone_module.c b/app/nginx/src/http/modules/ngx_http_upstream_zone_module.c deleted file mode 100644 index 7e5bd74..0000000 --- a/app/nginx/src/http/modules/ngx_http_upstream_zone_module.c +++ /dev/null @@ -1,246 +0,0 @@ - -/* - * Copyright (C) Ruslan Ermilov - * Copyright (C) Nginx, Inc. - */ - - -#include -#include -#include - - -static char *ngx_http_upstream_zone(ngx_conf_t *cf, ngx_command_t *cmd, - void *conf); -static ngx_int_t ngx_http_upstream_init_zone(ngx_shm_zone_t *shm_zone, - void *data); -static ngx_http_upstream_rr_peers_t *ngx_http_upstream_zone_copy_peers( - ngx_slab_pool_t *shpool, ngx_http_upstream_srv_conf_t *uscf); - - -static ngx_command_t ngx_http_upstream_zone_commands[] = { - - { ngx_string("zone"), - NGX_HTTP_UPS_CONF|NGX_CONF_TAKE12, - ngx_http_upstream_zone, - 0, - 0, - NULL }, - - ngx_null_command -}; - - -static ngx_http_module_t ngx_http_upstream_zone_module_ctx = { - NULL, /* preconfiguration */ - NULL, /* postconfiguration */ - - NULL, /* create main configuration */ - NULL, /* init main configuration */ - - NULL, /* create server configuration */ - NULL, /* merge server configuration */ - - NULL, /* create location configuration */ - NULL /* merge location configuration */ -}; - - -ngx_module_t ngx_http_upstream_zone_module = { - NGX_MODULE_V1, - &ngx_http_upstream_zone_module_ctx, /* module context */ - ngx_http_upstream_zone_commands, /* module directives */ - NGX_HTTP_MODULE, /* module type */ - NULL, /* init master */ - NULL, /* init module */ - NULL, /* init process */ - NULL, /* init thread */ - NULL, /* exit thread */ - NULL, /* exit process */ - NULL, /* exit master */ - NGX_MODULE_V1_PADDING -}; - - -static char * -ngx_http_upstream_zone(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) -{ - ssize_t size; - ngx_str_t *value; - ngx_http_upstream_srv_conf_t *uscf; - ngx_http_upstream_main_conf_t *umcf; - - uscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_upstream_module); - umcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_upstream_module); - - value = cf->args->elts; - - if (!value[1].len) { - ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, - "invalid zone name \"%V\"", &value[1]); - return NGX_CONF_ERROR; - } - - if (cf->args->nelts == 3) { - size = ngx_parse_size(&value[2]); - - if (size == NGX_ERROR) { - ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, - "invalid zone size \"%V\"", &value[2]); - return NGX_CONF_ERROR; - } - - if (size < (ssize_t) (8 * ngx_pagesize)) { - ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, - "zone \"%V\" is too small", &value[1]); - return NGX_CONF_ERROR; - } - - } else { - size = 0; - } - - uscf->shm_zone = ngx_shared_memory_add(cf, &value[1], size, - &ngx_http_upstream_module); - if (uscf->shm_zone == NULL) { - return NGX_CONF_ERROR; - } - - uscf->shm_zone->init = ngx_http_upstream_init_zone; - uscf->shm_zone->data = umcf; - - uscf->shm_zone->noreuse = 1; - - return NGX_CONF_OK; -} - - -static ngx_int_t -ngx_http_upstream_init_zone(ngx_shm_zone_t *shm_zone, void *data) -{ - size_t len; - ngx_uint_t i; - ngx_slab_pool_t *shpool; - ngx_http_upstream_rr_peers_t *peers, **peersp; - ngx_http_upstream_srv_conf_t *uscf, **uscfp; - ngx_http_upstream_main_conf_t *umcf; - - shpool = (ngx_slab_pool_t *) shm_zone->shm.addr; - umcf = shm_zone->data; - uscfp = umcf->upstreams.elts; - - if (shm_zone->shm.exists) { - peers = shpool->data; - - for (i = 0; i < umcf->upstreams.nelts; i++) { - uscf = uscfp[i]; - - if (uscf->shm_zone != shm_zone) { - continue; - } - - uscf->peer.data = peers; - peers = peers->zone_next; - } - - return NGX_OK; - } - - len = sizeof(" in upstream zone \"\"") + shm_zone->shm.name.len; - - shpool->log_ctx = ngx_slab_alloc(shpool, len); - if (shpool->log_ctx == NULL) { - return NGX_ERROR; - } - - ngx_sprintf(shpool->log_ctx, " in upstream zone \"%V\"%Z", - &shm_zone->shm.name); - - - /* copy peers to shared memory */ - - peersp = (ngx_http_upstream_rr_peers_t **) (void *) &shpool->data; - - for (i = 0; i < umcf->upstreams.nelts; i++) { - uscf = uscfp[i]; - - if (uscf->shm_zone != shm_zone) { - continue; - } - - peers = ngx_http_upstream_zone_copy_peers(shpool, uscf); - if (peers == NULL) { - return NGX_ERROR; - } - - *peersp = peers; - peersp = &peers->zone_next; - } - - return NGX_OK; -} - - -static ngx_http_upstream_rr_peers_t * -ngx_http_upstream_zone_copy_peers(ngx_slab_pool_t *shpool, - ngx_http_upstream_srv_conf_t *uscf) -{ - ngx_http_upstream_rr_peer_t *peer, **peerp; - ngx_http_upstream_rr_peers_t *peers, *backup; - - peers = ngx_slab_alloc(shpool, sizeof(ngx_http_upstream_rr_peers_t)); - if (peers == NULL) { - return NULL; - } - - ngx_memcpy(peers, uscf->peer.data, sizeof(ngx_http_upstream_rr_peers_t)); - - peers->shpool = shpool; - - for (peerp = &peers->peer; *peerp; peerp = &peer->next) { - /* pool is unlocked */ - peer = ngx_slab_calloc_locked(shpool, - sizeof(ngx_http_upstream_rr_peer_t)); - if (peer == NULL) { - return NULL; - } - - ngx_memcpy(peer, *peerp, sizeof(ngx_http_upstream_rr_peer_t)); - - *peerp = peer; - } - - if (peers->next == NULL) { - goto done; - } - - backup = ngx_slab_alloc(shpool, sizeof(ngx_http_upstream_rr_peers_t)); - if (backup == NULL) { - return NULL; - } - - ngx_memcpy(backup, peers->next, sizeof(ngx_http_upstream_rr_peers_t)); - - backup->shpool = shpool; - - for (peerp = &backup->peer; *peerp; peerp = &peer->next) { - /* pool is unlocked */ - peer = ngx_slab_calloc_locked(shpool, - sizeof(ngx_http_upstream_rr_peer_t)); - if (peer == NULL) { - return NULL; - } - - ngx_memcpy(peer, *peerp, sizeof(ngx_http_upstream_rr_peer_t)); - - *peerp = peer; - } - - peers->next = backup; - -done: - - uscf->peer.data = peers; - - return peers; -} -- cgit 1.2.3-korg