コード例 #1
0
ngx_int_t
ngx_stream_lua_send_chain_link(ngx_stream_session_t *s,
    ngx_stream_lua_ctx_t *ctx, ngx_chain_t *in)
{
    ngx_int_t                     rc;

#if 0
    if (ctx->acquired_raw_req_socket || (in && ctx->eof)) {
        dd("ctx->eof already set or raw req socket already acquired");
        return NGX_OK;
    }
#endif

    rc = ngx_chain_writer(&ctx->out_writer, in);

    if (rc == NGX_ERROR) {
        s->connection->error = 1;
    }

    ngx_chain_update_chains(s->connection->pool, &ctx->free_bufs,
                            &ctx->downstream_busy_bufs, &in,
                            (ngx_buf_tag_t) &ngx_stream_lua_module);

    ngx_stream_lua_assert(rc != NGX_AGAIN || ctx->downstream_busy_bufs);

    return rc;
}
コード例 #2
0
ngx_int_t
ngx_stream_lua_send_chain_link(ngx_stream_session_t *s,
                               ngx_stream_lua_ctx_t *ctx, ngx_chain_t *in)
{
    ngx_int_t                     rc;

#if 1
    if (ctx->acquired_raw_req_socket || ctx->eof) {
        dd("ctx->eof already set or raw req socket already acquired");
        return NGX_OK;
    }
#endif

    rc = ngx_chain_writer(&ctx->out_writer, in);

    ngx_chain_update_chains(s->connection->pool, &ctx->free_bufs,
                            &ctx->busy_bufs, &in,
                            (ngx_buf_tag_t) &ngx_stream_lua_module);

    return rc;
}