13
13
14
14
15
15
static void
16
- ngx_rtmp_eval_session_str (ngx_rtmp_session_t * s , ngx_rtmp_eval_t * e ,
17
- ngx_str_t * ret )
16
+ ngx_rtmp_eval_session_str (void * ctx , ngx_rtmp_eval_t * e , ngx_str_t * ret )
18
17
{
19
- * ret = * (ngx_str_t * ) ((u_char * ) s + e -> offset );
18
+ * ret = * (ngx_str_t * ) ((u_char * ) ctx + e -> offset );
20
19
}
21
20
22
21
23
22
static void
24
- ngx_rtmp_eval_connection_str (ngx_rtmp_session_t * s , ngx_rtmp_eval_t * e ,
25
- ngx_str_t * ret )
23
+ ngx_rtmp_eval_connection_str (void * ctx , ngx_rtmp_eval_t * e , ngx_str_t * ret )
26
24
{
25
+ ngx_rtmp_session_t * s = ctx ;
26
+
27
27
* ret = * (ngx_str_t * ) ((u_char * ) s -> connection + e -> offset );
28
28
}
29
29
@@ -59,15 +59,14 @@ ngx_rtmp_eval_t ngx_rtmp_eval_session[] = {
59
59
60
60
61
61
static void
62
- ngx_rtmp_eval_append (ngx_rtmp_session_t * s , ngx_buf_t * b ,
63
- void * data , size_t len )
62
+ ngx_rtmp_eval_append (ngx_buf_t * b , void * data , size_t len , ngx_log_t * log )
64
63
{
65
64
size_t buf_len ;
66
65
67
66
if (b -> last + len > b -> end ) {
68
67
buf_len = 2 * (b -> last - b -> pos ) + len ;
69
68
70
- b -> start = ngx_palloc ( s -> connection -> pool , buf_len );
69
+ b -> start = ngx_alloc ( buf_len , log );
71
70
if (b -> start == NULL ) {
72
71
return ;
73
72
}
@@ -82,8 +81,8 @@ ngx_rtmp_eval_append(ngx_rtmp_session_t *s, ngx_buf_t *b,
82
81
83
82
84
83
static void
85
- ngx_rtmp_eval_append_var (ngx_rtmp_session_t * s , ngx_buf_t * b ,
86
- ngx_rtmp_eval_t * * e , ngx_str_t * name )
84
+ ngx_rtmp_eval_append_var (void * ctx , ngx_buf_t * b , ngx_rtmp_eval_t * * e ,
85
+ ngx_str_t * name , ngx_log_t * log )
87
86
{
88
87
ngx_uint_t k ;
89
88
ngx_str_t v ;
@@ -92,19 +91,19 @@ ngx_rtmp_eval_append_var(ngx_rtmp_session_t *s, ngx_buf_t *b,
92
91
for (; * e ; ++ e ) {
93
92
for (k = 0 , ee = * e ; ee -> handler ; ++ k , ++ ee ) {
94
93
if (ee -> name .len == name -> len &&
95
- ngx_memcmp (ee -> name .data , name -> data , name -> len ) == 0 )
94
+ ngx_memcmp (ee -> name .data , name -> data , name -> len ) == 0 )
96
95
{
97
- ee -> handler (s , ee , & v );
98
- ngx_rtmp_eval_append (s , b , v .data , v .len );
96
+ ee -> handler (ctx , ee , & v );
97
+ ngx_rtmp_eval_append (b , v .data , v .len , log );
99
98
}
100
99
}
101
100
}
102
101
}
103
102
104
103
105
104
ngx_int_t
106
- ngx_rtmp_eval (ngx_rtmp_session_t * s , ngx_str_t * in , ngx_rtmp_eval_t * * e ,
107
- ngx_str_t * out )
105
+ ngx_rtmp_eval (void * ctx , ngx_str_t * in , ngx_rtmp_eval_t * * e , ngx_str_t * out ,
106
+ ngx_log_t * log )
108
107
{
109
108
u_char c , * p ;
110
109
ngx_str_t name ;
@@ -118,8 +117,7 @@ ngx_rtmp_eval(ngx_rtmp_session_t *s, ngx_str_t *in, ngx_rtmp_eval_t **e,
118
117
SNAME
119
118
} state = NORMAL ;
120
119
121
- b .pos = b .last = b .start = ngx_palloc (s -> connection -> pool ,
122
- NGX_RTMP_EVAL_BUFLEN );
120
+ b .pos = b .last = b .start = ngx_alloc (NGX_RTMP_EVAL_BUFLEN , log );
123
121
if (b .pos == NULL ) {
124
122
return NGX_ERROR ;
125
123
}
@@ -138,7 +136,7 @@ ngx_rtmp_eval(ngx_rtmp_session_t *s, ngx_str_t *in, ngx_rtmp_eval_t **e,
138
136
}
139
137
140
138
name .len = p - name .data ;
141
- ngx_rtmp_eval_append_var (s , & b , e , & name );
139
+ ngx_rtmp_eval_append_var (ctx , & b , e , & name , log );
142
140
143
141
state = NORMAL ;
144
142
@@ -155,7 +153,7 @@ ngx_rtmp_eval(ngx_rtmp_session_t *s, ngx_str_t *in, ngx_rtmp_eval_t **e,
155
153
}
156
154
157
155
name .len = p - name .data ;
158
- ngx_rtmp_eval_append_var (s , & b , e , & name );
156
+ ngx_rtmp_eval_append_var (ctx , & b , e , & name , log );
159
157
160
158
case NORMAL :
161
159
switch (c ) {
@@ -169,7 +167,7 @@ ngx_rtmp_eval(ngx_rtmp_session_t *s, ngx_str_t *in, ngx_rtmp_eval_t **e,
169
167
}
170
168
171
169
case ESCAPE :
172
- ngx_rtmp_eval_append (s , & b , & c , 1 );
170
+ ngx_rtmp_eval_append (& b , & c , 1 , log );
173
171
state = NORMAL ;
174
172
break ;
175
173
@@ -179,11 +177,11 @@ ngx_rtmp_eval(ngx_rtmp_session_t *s, ngx_str_t *in, ngx_rtmp_eval_t **e,
179
177
if (state == NAME ) {
180
178
p = & in -> data [n ];
181
179
name .len = p - name .data ;
182
- ngx_rtmp_eval_append_var (s , & b , e , & name );
180
+ ngx_rtmp_eval_append_var (ctx , & b , e , & name , log );
183
181
}
184
182
185
183
c = 0 ;
186
- ngx_rtmp_eval_append (s , & b , & c , 1 );
184
+ ngx_rtmp_eval_append (& b , & c , 1 , log );
187
185
188
186
out -> data = b .pos ;
189
187
out -> len = b .last - b .pos - 1 ;
0 commit comments