in runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java [166:197]
private void handleHttpRespCall(ChannelHandlerContext ctx, PostRequest request) {
cleanCtx();
// save HttpCallRequest
postReq = request;
postResp = new PostResponse(postReq.getRequestId());
confToken = postReq.getConfToken();
A6Conf conf = cache.getIfPresent(confToken);
if (Objects.isNull(conf)) {
logger.warn("cannot find conf token: {}", confToken);
errorHandle(ctx, Code.CONF_TOKEN_NOT_FOUND);
return;
}
PluginFilterChain chain = conf.getChain();
if (Objects.isNull(chain) || 0 == chain.getFilters().size()) {
ChannelFuture future = ctx.writeAndFlush(postResp);
future.addListeners(ChannelFutureListener.FIRE_EXCEPTION_ON_FAILURE);
return;
}
Boolean[] result = fetchExtraInfo(ctx, chain);
if (Objects.isNull(result)) {
return;
}
if (!result[0] && !result[2]) {
// no need to fetch extra info
doPostFilter(ctx);
}
}