summaryrefslogtreecommitdiff
path: root/ngx_stream_lua-0.0.16/src/ngx_stream_lua_request.h
blob: ea4e05fb21fc257c384cc7610b135aac161c8dca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
 * Copyright (C) OpenResty Inc.
 */


#ifndef _NGX_STREAM_LUA_REQUEST_H_INCLUDED_
#define _NGX_STREAM_LUA_REQUEST_H_INCLUDED_


typedef void (*ngx_stream_lua_cleanup_pt)(void *data);

typedef struct ngx_stream_lua_cleanup_s  ngx_stream_lua_cleanup_t;

struct ngx_stream_lua_cleanup_s {
    ngx_stream_lua_cleanup_pt               handler;
    void                                   *data;
    ngx_stream_lua_cleanup_t               *next;
};


typedef struct ngx_stream_lua_request_s  ngx_stream_lua_request_t;

typedef void (*ngx_stream_lua_event_handler_pt)(ngx_stream_lua_request_t *r);


struct ngx_stream_lua_request_s {
    ngx_connection_t                     *connection;
    ngx_stream_session_t                 *session;
    ngx_pool_t                           *pool;
    ngx_stream_lua_cleanup_t             *cleanup;

    ngx_stream_lua_event_handler_pt       read_event_handler;
    ngx_stream_lua_event_handler_pt       write_event_handler;
};


void ngx_stream_lua_empty_handler(ngx_event_t *wev);
void ngx_stream_lua_request_handler(ngx_event_t *ev);
void ngx_stream_lua_block_reading(ngx_stream_lua_request_t *r);

ngx_stream_lua_cleanup_t *
ngx_stream_lua_cleanup_add(ngx_stream_lua_request_t *r, size_t size);

ngx_stream_lua_request_t *
ngx_stream_lua_create_request(ngx_stream_session_t *s);
void ngx_stream_lua_finalize_real_request(ngx_stream_lua_request_t *r,
    ngx_int_t rc);
void ngx_stream_lua_core_run_phases(ngx_stream_lua_request_t *r);


typedef ngx_int_t (*ngx_stream_lua_handler_pt)(ngx_stream_lua_request_t *r);


#define ngx_stream_lua_get_module_ctx(r, module)                             \
    ngx_stream_get_module_ctx((r)->session, module)
#define ngx_stream_lua_set_ctx(r, c, module)                                 \
    ngx_stream_set_ctx((r)->session, c, module)
#define ngx_stream_lua_get_module_main_conf(r, module)                       \
    ngx_stream_get_module_main_conf((r)->session, module)
#define ngx_stream_lua_get_module_srv_conf(r, module)                        \
    ngx_stream_get_module_srv_conf((r)->session, module)
#define ngx_stream_lua_get_module_loc_conf                                   \
    ngx_stream_lua_get_module_srv_conf


#endif /* _NGX_STREAM_LUA_REQUEST_H_INCLUDED_ */