ccv.complex_value = &cv;if(ngx_http_compile_complex_value(&ccv) != NGX_OK) {returnNGX_CONF_ERROR; }if(cv.lengths ==NULL) { imcf->offset_y = ngx_http_image_filter_value(&value[2]); }else{ imcf->oycv = ngx_palloc(cf->pool,sizeof(ngx_http_complex_value_t));if(imcf->oyc...
ngx_int_tngx_http_compile_complex_value(ngx_http_compile_complex_value_t*ccv);//将带变量的配置项求值,常在运行阶段调用//r,val为入参,val通过ngx_http_compile_complex_value()获得//value为出参,即求值后的具体值。ngx_int_tngx_http_complex_value(ngx_http_request_t*r,ngx_http_complex_value_...
//expires配置解析,会触发创建设置r->headers_out.expires r->headers_out.cache_controlstaticngx_int_t//expires xx配置存储函数为ngx_http_headers_expires,真正组包生效函数为ngx_http_set_expiresngx_http_set_expires(ngx_http_request_t*r,ngx_http_headers_conf_t*conf) {char*err;size_tlen;time_tno...
ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t)); ccv.cf = cf; ccv.value = &value[2]; // ccv的complex_value指针指向ctx->value ccv.complex_value = &ctx->value; // compile之后,ctx的value存储这一格式 if (ngx_http_compile_complex_value(&ccv) != NGX_OK) { ...
ngx_http_complex_value_t user_file; } ngx_http_auth_basic_loc_conf_t 这个结构体就是保存nginx支持的两个配置。该函数在nginx初始化的时候调用,目的是创建保存配置的结构体。 2 注册nginx access阶段的钩子 static ngx_int_t ngx_http_auth_basic_init(ngx_conf_t *cf) ...
ngx_http_complex_value_t *cv, ngx_str_t *val); ngx_int_t parse_convert_options(ngx_conf_t *cf, ngx_array_t *args, ngx_uint_t start, convert_options_t *option_info) ngx_uint_t start, void **option) { ngx_http_gm_convert_option_t *gm_option; convert_options_t *option_info...
ngx_http_header_val_t *hv, ngx_str_t *value); typedef struct { ngx_str_t name; ngx_uint_t offset; ngx_http_set_header_pt handler; } ngx_http_set_header_t; struct ngx_http_header_val_s { ngx_http_complex_value_t value; ngx_str_t key; ngx_http_set_header_pt handler; ngx_...
value = &value[1]; ccv.complex_value = &alcf->user_file; ccv.zero = 1; ccv.conf_prefix = 1; if (ngx_http_compile_complex_value(&ccv) != NGX_OK) { return NGX_CONF_ERROR; } return NGX_CONF_OK; } 4 处理用户请求该模块的ngx_http_auth_basic_handler是处理用户请求的,我们看一...
{} from 'jasmine'; import {TranslateModule} from "@ngx-translate/core"; import {AppModule} from "./app.module"; describe('AppComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ imports: [ AppModule, TranslateModule.forRoot({}) ] }).compileComponents();...
"compileShader","COMPILE_STATUS","errorMsg","getShaderInfoLog","siblings","createVertexShader","createFragmentShader","loadShader","FRAGMENT_SHADER","program","createProgram","_tidyUpFullscreenMode","attachShader","shaders","getProgramParameter","LINK_STATUS","getProgramInfoLog","createTexture"...