soulbird commented on code in PR #7794:
URL: https://github.com/apache/apisix/pull/7794#discussion_r955794646
##########
apisix/plugins/response-rewrite.lua:
##########
@@ -235,19 +343,28 @@ function _M.header_filter(conf, ctx)
return
end
- --reform header from object into array, so can avoid use pairs, which is
NYI
- if not conf.headers_arr then
- conf.headers_arr = {}
+ local hdr_op, err = core.lrucache.plugin_ctx(lrucache, ctx, nil,
+ create_header_operation,
conf.headers)
+ if not hdr_op then
+ core.log.error("failed to create header operation: ", err)
+ return
+ end
- for field, value in pairs(conf.headers) do
- core.table.insert_tail(conf.headers_arr, field, value)
- end
+ local field_cnt = #hdr_op.add
+ for i = 1, field_cnt, 2 do
+ local val = core.utils.resolve_var(hdr_op.add[i+1], ctx.var)
+ ngx_resp.add_header(hdr_op.add[i], val)
end
- local field_cnt = #conf.headers_arr
+ local field_cnt = #hdr_op.set
for i = 1, field_cnt, 2 do
- local val = core.utils.resolve_var(conf.headers_arr[i+1], ctx.var)
- ngx.header[conf.headers_arr[i]] = val
+ local val = core.utils.resolve_var(hdr_op.set[i+1], ctx.var)
+ ngx.header[hdr_op.set[i]] = val
Review Comment:
`core.response.set_header` ?
##########
apisix/plugins/response-rewrite.lua:
##########
@@ -235,19 +343,28 @@ function _M.header_filter(conf, ctx)
return
end
- --reform header from object into array, so can avoid use pairs, which is
NYI
- if not conf.headers_arr then
- conf.headers_arr = {}
+ local hdr_op, err = core.lrucache.plugin_ctx(lrucache, ctx, nil,
+ create_header_operation,
conf.headers)
+ if not hdr_op then
+ core.log.error("failed to create header operation: ", err)
+ return
+ end
- for field, value in pairs(conf.headers) do
- core.table.insert_tail(conf.headers_arr, field, value)
- end
+ local field_cnt = #hdr_op.add
+ for i = 1, field_cnt, 2 do
+ local val = core.utils.resolve_var(hdr_op.add[i+1], ctx.var)
+ ngx_resp.add_header(hdr_op.add[i], val)
Review Comment:
Can we use `core.response.add_header` ?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]