Lines Matching refs:e
26 static size_t ngx_http_script_full_name_len_code(ngx_http_script_engine_t *e);
27 static void ngx_http_script_full_name_code(ngx_http_script_engine_t *e);
64 ngx_http_script_engine_t e; in ngx_http_complex_value() local
73 ngx_memzero(&e, sizeof(ngx_http_script_engine_t)); in ngx_http_complex_value()
75 e.ip = val->lengths; in ngx_http_complex_value()
76 e.request = r; in ngx_http_complex_value()
77 e.flushed = 1; in ngx_http_complex_value()
81 while (*(uintptr_t *) e.ip) { in ngx_http_complex_value()
82 lcode = *(ngx_http_script_len_code_pt *) e.ip; in ngx_http_complex_value()
83 len += lcode(&e); in ngx_http_complex_value()
92 e.ip = val->values; in ngx_http_complex_value()
93 e.pos = value->data; in ngx_http_complex_value()
94 e.buf = *value; in ngx_http_complex_value()
96 while (*(uintptr_t *) e.ip) { in ngx_http_complex_value()
97 code = *(ngx_http_script_code_pt *) e.ip; in ngx_http_complex_value()
98 code((ngx_http_script_engine_t *) &e); in ngx_http_complex_value()
101 *value = e.buf; in ngx_http_complex_value()
522 ngx_http_script_engine_t e; in ngx_http_script_run() local
534 ngx_memzero(&e, sizeof(ngx_http_script_engine_t)); in ngx_http_script_run()
536 e.ip = code_lengths; in ngx_http_script_run()
537 e.request = r; in ngx_http_script_run()
538 e.flushed = 1; in ngx_http_script_run()
540 while (*(uintptr_t *) e.ip) { in ngx_http_script_run()
541 lcode = *(ngx_http_script_len_code_pt *) e.ip; in ngx_http_script_run()
542 len += lcode(&e); in ngx_http_script_run()
552 e.ip = code_values; in ngx_http_script_run()
553 e.pos = value->data; in ngx_http_script_run()
555 while (*(uintptr_t *) e.ip) { in ngx_http_script_run()
556 code = *(ngx_http_script_code_pt *) e.ip; in ngx_http_script_run()
557 code((ngx_http_script_engine_t *) &e); in ngx_http_script_run()
560 return e.pos; in ngx_http_script_run()
754 ngx_http_script_copy_len_code(ngx_http_script_engine_t *e) in ngx_http_script_copy_len_code() argument
758 code = (ngx_http_script_copy_code_t *) e->ip; in ngx_http_script_copy_len_code()
760 e->ip += sizeof(ngx_http_script_copy_code_t); in ngx_http_script_copy_len_code()
767 ngx_http_script_copy_code(ngx_http_script_engine_t *e) in ngx_http_script_copy_code() argument
772 code = (ngx_http_script_copy_code_t *) e->ip; in ngx_http_script_copy_code()
774 p = e->pos; in ngx_http_script_copy_code()
776 if (!e->skip) { in ngx_http_script_copy_code()
777 e->pos = ngx_copy(p, e->ip + sizeof(ngx_http_script_copy_code_t), in ngx_http_script_copy_code()
781 e->ip += sizeof(ngx_http_script_copy_code_t) in ngx_http_script_copy_code()
784 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_copy_code()
785 "http script copy: \"%*s\"", e->pos - p, p); in ngx_http_script_copy_code()
835 ngx_http_script_copy_var_len_code(ngx_http_script_engine_t *e) in ngx_http_script_copy_var_len_code() argument
840 code = (ngx_http_script_var_code_t *) e->ip; in ngx_http_script_copy_var_len_code()
842 e->ip += sizeof(ngx_http_script_var_code_t); in ngx_http_script_copy_var_len_code()
844 if (e->flushed) { in ngx_http_script_copy_var_len_code()
845 value = ngx_http_get_indexed_variable(e->request, code->index); in ngx_http_script_copy_var_len_code()
848 value = ngx_http_get_flushed_variable(e->request, code->index); in ngx_http_script_copy_var_len_code()
860 ngx_http_script_copy_var_code(ngx_http_script_engine_t *e) in ngx_http_script_copy_var_code() argument
866 code = (ngx_http_script_var_code_t *) e->ip; in ngx_http_script_copy_var_code()
868 e->ip += sizeof(ngx_http_script_var_code_t); in ngx_http_script_copy_var_code()
870 if (!e->skip) { in ngx_http_script_copy_var_code()
872 if (e->flushed) { in ngx_http_script_copy_var_code()
873 value = ngx_http_get_indexed_variable(e->request, code->index); in ngx_http_script_copy_var_code()
876 value = ngx_http_get_flushed_variable(e->request, code->index); in ngx_http_script_copy_var_code()
880 p = e->pos; in ngx_http_script_copy_var_code()
881 e->pos = ngx_copy(p, value->data, value->len); in ngx_http_script_copy_var_code()
884 e->request->connection->log, 0, in ngx_http_script_copy_var_code()
885 "http script var: \"%*s\"", e->pos - p, p); in ngx_http_script_copy_var_code()
915 ngx_http_script_mark_args_code(ngx_http_script_engine_t *e) in ngx_http_script_mark_args_code() argument
917 e->is_args = 1; in ngx_http_script_mark_args_code()
918 e->ip += sizeof(uintptr_t); in ngx_http_script_mark_args_code()
925 ngx_http_script_start_args_code(ngx_http_script_engine_t *e) in ngx_http_script_start_args_code() argument
927 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_start_args_code()
930 e->is_args = 1; in ngx_http_script_start_args_code()
931 e->args = e->pos; in ngx_http_script_start_args_code()
932 e->ip += sizeof(uintptr_t); in ngx_http_script_start_args_code()
939 ngx_http_script_regex_start_code(ngx_http_script_engine_t *e) in ngx_http_script_regex_start_code() argument
949 code = (ngx_http_script_regex_code_t *) e->ip; in ngx_http_script_regex_start_code()
951 r = e->request; in ngx_http_script_regex_start_code()
957 e->line = r->uri; in ngx_http_script_regex_start_code()
959 e->sp--; in ngx_http_script_regex_start_code()
960 e->line.len = e->sp->len; in ngx_http_script_regex_start_code()
961 e->line.data = e->sp->data; in ngx_http_script_regex_start_code()
964 rc = ngx_http_regex_exec(r, code->regex, &e->line); in ngx_http_script_regex_start_code()
967 if (e->log || (r->connection->log->log_level & NGX_LOG_DEBUG_HTTP)) { in ngx_http_script_regex_start_code()
970 &code->name, &e->line); in ngx_http_script_regex_start_code()
977 e->sp->len = 1; in ngx_http_script_regex_start_code()
978 e->sp->data = (u_char *) "1"; in ngx_http_script_regex_start_code()
981 e->sp->len = 0; in ngx_http_script_regex_start_code()
982 e->sp->data = (u_char *) ""; in ngx_http_script_regex_start_code()
985 e->sp++; in ngx_http_script_regex_start_code()
987 e->ip += sizeof(ngx_http_script_regex_code_t); in ngx_http_script_regex_start_code()
991 e->ip += code->next; in ngx_http_script_regex_start_code()
996 e->ip = ngx_http_script_exit; in ngx_http_script_regex_start_code()
997 e->status = NGX_HTTP_INTERNAL_SERVER_ERROR; in ngx_http_script_regex_start_code()
1001 if (e->log || (r->connection->log->log_level & NGX_LOG_DEBUG_HTTP)) { in ngx_http_script_regex_start_code()
1003 "\"%V\" matches \"%V\"", &code->name, &e->line); in ngx_http_script_regex_start_code()
1008 e->sp->len = 0; in ngx_http_script_regex_start_code()
1009 e->sp->data = (u_char *) ""; in ngx_http_script_regex_start_code()
1012 e->sp->len = 1; in ngx_http_script_regex_start_code()
1013 e->sp->data = (u_char *) "1"; in ngx_http_script_regex_start_code()
1016 e->sp++; in ngx_http_script_regex_start_code()
1018 e->ip += sizeof(ngx_http_script_regex_code_t); in ngx_http_script_regex_start_code()
1023 e->status = code->status; in ngx_http_script_regex_start_code()
1026 e->ip = ngx_http_script_exit; in ngx_http_script_regex_start_code()
1045 e->buf.len = code->size; in ngx_http_script_regex_start_code()
1049 e->buf.len += 2 * ngx_escape_uri(NULL, r->uri.data, r->uri.len, in ngx_http_script_regex_start_code()
1055 e->buf.len += r->captures[n + 1] - r->captures[n]; in ngx_http_script_regex_start_code()
1062 le.line = e->line; in ngx_http_script_regex_start_code()
1073 e->buf.len = len; in ngx_http_script_regex_start_code()
1077 e->buf.len += r->args.len + 1; in ngx_http_script_regex_start_code()
1080 e->buf.data = ngx_pnalloc(r->pool, e->buf.len); in ngx_http_script_regex_start_code()
1081 if (e->buf.data == NULL) { in ngx_http_script_regex_start_code()
1082 e->ip = ngx_http_script_exit; in ngx_http_script_regex_start_code()
1083 e->status = NGX_HTTP_INTERNAL_SERVER_ERROR; in ngx_http_script_regex_start_code()
1087 e->quote = code->redirect; in ngx_http_script_regex_start_code()
1089 e->pos = e->buf.data; in ngx_http_script_regex_start_code()
1091 e->ip += sizeof(ngx_http_script_regex_code_t); in ngx_http_script_regex_start_code()
1096 ngx_http_script_regex_end_code(ngx_http_script_engine_t *e) in ngx_http_script_regex_end_code() argument
1102 code = (ngx_http_script_regex_end_code_t *) e->ip; in ngx_http_script_regex_end_code()
1104 r = e->request; in ngx_http_script_regex_end_code()
1106 e->quote = 0; in ngx_http_script_regex_end_code()
1113 dst = e->buf.data; in ngx_http_script_regex_end_code()
1114 src = e->buf.data; in ngx_http_script_regex_end_code()
1116 ngx_unescape_uri(&dst, &src, e->pos - e->buf.data, in ngx_http_script_regex_end_code()
1119 if (src < e->pos) { in ngx_http_script_regex_end_code()
1120 dst = ngx_movemem(dst, src, e->pos - src); in ngx_http_script_regex_end_code()
1123 e->pos = dst; in ngx_http_script_regex_end_code()
1126 *e->pos++ = (u_char) (code->args ? '&' : '?'); in ngx_http_script_regex_end_code()
1127 e->pos = ngx_copy(e->pos, r->args.data, r->args.len); in ngx_http_script_regex_end_code()
1130 e->buf.len = e->pos - e->buf.data; in ngx_http_script_regex_end_code()
1132 if (e->log || (r->connection->log->log_level & NGX_LOG_DEBUG_HTTP)) { in ngx_http_script_regex_end_code()
1134 "rewritten redirect: \"%V\"", &e->buf); in ngx_http_script_regex_end_code()
1141 e->ip = ngx_http_script_exit; in ngx_http_script_regex_end_code()
1142 e->status = NGX_HTTP_INTERNAL_SERVER_ERROR; in ngx_http_script_regex_end_code()
1148 r->headers_out.location->value = e->buf; in ngx_http_script_regex_end_code()
1150 e->ip += sizeof(ngx_http_script_regex_end_code_t); in ngx_http_script_regex_end_code()
1154 if (e->args) { in ngx_http_script_regex_end_code()
1155 e->buf.len = e->args - e->buf.data; in ngx_http_script_regex_end_code()
1158 *e->pos++ = '&'; in ngx_http_script_regex_end_code()
1159 e->pos = ngx_copy(e->pos, r->args.data, r->args.len); in ngx_http_script_regex_end_code()
1162 r->args.len = e->pos - e->args; in ngx_http_script_regex_end_code()
1163 r->args.data = e->args; in ngx_http_script_regex_end_code()
1165 e->args = NULL; in ngx_http_script_regex_end_code()
1168 e->buf.len = e->pos - e->buf.data; in ngx_http_script_regex_end_code()
1175 if (e->log || (r->connection->log->log_level & NGX_LOG_DEBUG_HTTP)) { in ngx_http_script_regex_end_code()
1178 &e->buf, &r->args); in ngx_http_script_regex_end_code()
1182 r->uri = e->buf; in ngx_http_script_regex_end_code()
1187 e->ip = ngx_http_script_exit; in ngx_http_script_regex_end_code()
1188 e->status = NGX_HTTP_INTERNAL_SERVER_ERROR; in ngx_http_script_regex_end_code()
1195 e->ip += sizeof(ngx_http_script_regex_end_code_t); in ngx_http_script_regex_end_code()
1235 ngx_http_script_copy_capture_len_code(ngx_http_script_engine_t *e) in ngx_http_script_copy_capture_len_code() argument
1243 r = e->request; in ngx_http_script_copy_capture_len_code()
1245 code = (ngx_http_script_copy_capture_code_t *) e->ip; in ngx_http_script_copy_capture_len_code()
1247 e->ip += sizeof(ngx_http_script_copy_capture_code_t); in ngx_http_script_copy_capture_len_code()
1255 if ((e->is_args || e->quote) in ngx_http_script_copy_capture_len_code()
1256 && (e->request->quoted_uri || e->request->plus_in_uri)) in ngx_http_script_copy_capture_len_code()
1273 ngx_http_script_copy_capture_code(ngx_http_script_engine_t *e) in ngx_http_script_copy_capture_code() argument
1281 r = e->request; in ngx_http_script_copy_capture_code()
1283 code = (ngx_http_script_copy_capture_code_t *) e->ip; in ngx_http_script_copy_capture_code()
1285 e->ip += sizeof(ngx_http_script_copy_capture_code_t); in ngx_http_script_copy_capture_code()
1289 pos = e->pos; in ngx_http_script_copy_capture_code()
1296 if ((e->is_args || e->quote) in ngx_http_script_copy_capture_code()
1297 && (e->request->quoted_uri || e->request->plus_in_uri)) in ngx_http_script_copy_capture_code()
1299 e->pos = (u_char *) ngx_escape_uri(pos, &p[cap[n]], in ngx_http_script_copy_capture_code()
1303 e->pos = ngx_copy(pos, &p[cap[n]], cap[n + 1] - cap[n]); in ngx_http_script_copy_capture_code()
1307 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_copy_capture_code()
1308 "http script capture: \"%*s\"", e->pos - pos, pos); in ngx_http_script_copy_capture_code()
1345 ngx_http_script_full_name_len_code(ngx_http_script_engine_t *e) in ngx_http_script_full_name_len_code() argument
1349 code = (ngx_http_script_full_name_code_t *) e->ip; in ngx_http_script_full_name_len_code()
1351 e->ip += sizeof(ngx_http_script_full_name_code_t); in ngx_http_script_full_name_len_code()
1359 ngx_http_script_full_name_code(ngx_http_script_engine_t *e) in ngx_http_script_full_name_code() argument
1365 code = (ngx_http_script_full_name_code_t *) e->ip; in ngx_http_script_full_name_code()
1367 value.data = e->buf.data; in ngx_http_script_full_name_code()
1368 value.len = e->pos - e->buf.data; in ngx_http_script_full_name_code()
1373 if (ngx_get_full_name(e->request->pool, prefix, &value) != NGX_OK) { in ngx_http_script_full_name_code()
1374 e->ip = ngx_http_script_exit; in ngx_http_script_full_name_code()
1375 e->status = NGX_HTTP_INTERNAL_SERVER_ERROR; in ngx_http_script_full_name_code()
1379 e->buf = value; in ngx_http_script_full_name_code()
1381 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_full_name_code()
1384 e->ip += sizeof(ngx_http_script_full_name_code_t); in ngx_http_script_full_name_code()
1389 ngx_http_script_return_code(ngx_http_script_engine_t *e) in ngx_http_script_return_code() argument
1393 code = (ngx_http_script_return_code_t *) e->ip; in ngx_http_script_return_code()
1399 e->status = ngx_http_send_response(e->request, code->status, NULL, in ngx_http_script_return_code()
1402 e->status = code->status; in ngx_http_script_return_code()
1405 e->ip = ngx_http_script_exit; in ngx_http_script_return_code()
1410 ngx_http_script_break_code(ngx_http_script_engine_t *e) in ngx_http_script_break_code() argument
1412 e->request->uri_changed = 0; in ngx_http_script_break_code()
1414 e->ip = ngx_http_script_exit; in ngx_http_script_break_code()
1419 ngx_http_script_if_code(ngx_http_script_engine_t *e) in ngx_http_script_if_code() argument
1423 code = (ngx_http_script_if_code_t *) e->ip; in ngx_http_script_if_code()
1425 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_if_code()
1428 e->sp--; in ngx_http_script_if_code()
1430 if (e->sp->len && (e->sp->len != 1 || e->sp->data[0] != '0')) { in ngx_http_script_if_code()
1432 e->request->loc_conf = code->loc_conf; in ngx_http_script_if_code()
1433 ngx_http_update_location_config(e->request); in ngx_http_script_if_code()
1436 e->ip += sizeof(ngx_http_script_if_code_t); in ngx_http_script_if_code()
1440 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_if_code()
1443 e->ip += code->next; in ngx_http_script_if_code()
1448 ngx_http_script_equal_code(ngx_http_script_engine_t *e) in ngx_http_script_equal_code() argument
1452 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_equal_code()
1455 e->sp--; in ngx_http_script_equal_code()
1456 val = e->sp; in ngx_http_script_equal_code()
1457 res = e->sp - 1; in ngx_http_script_equal_code()
1459 e->ip += sizeof(uintptr_t); in ngx_http_script_equal_code()
1468 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_equal_code()
1476 ngx_http_script_not_equal_code(ngx_http_script_engine_t *e) in ngx_http_script_not_equal_code() argument
1480 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_not_equal_code()
1483 e->sp--; in ngx_http_script_not_equal_code()
1484 val = e->sp; in ngx_http_script_not_equal_code()
1485 res = e->sp - 1; in ngx_http_script_not_equal_code()
1487 e->ip += sizeof(uintptr_t); in ngx_http_script_not_equal_code()
1492 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_not_equal_code()
1504 ngx_http_script_file_code(ngx_http_script_engine_t *e) in ngx_http_script_file_code() argument
1513 value = e->sp - 1; in ngx_http_script_file_code()
1515 code = (ngx_http_script_file_code_t *) e->ip; in ngx_http_script_file_code()
1516 e->ip += sizeof(ngx_http_script_file_code_t); in ngx_http_script_file_code()
1521 r = e->request; in ngx_http_script_file_code()
1539 e->ip = ngx_http_script_exit; in ngx_http_script_file_code()
1540 e->status = NGX_HTTP_INTERNAL_SERVER_ERROR; in ngx_http_script_file_code()
1548 e->ip = ngx_http_script_exit; in ngx_http_script_file_code()
1549 e->status = NGX_HTTP_INTERNAL_SERVER_ERROR; in ngx_http_script_file_code()
1645 ngx_http_script_complex_value_code(ngx_http_script_engine_t *e) in ngx_http_script_complex_value_code() argument
1652 code = (ngx_http_script_complex_value_code_t *) e->ip; in ngx_http_script_complex_value_code()
1654 e->ip += sizeof(ngx_http_script_complex_value_code_t); in ngx_http_script_complex_value_code()
1656 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_complex_value_code()
1662 le.line = e->line; in ngx_http_script_complex_value_code()
1663 le.request = e->request; in ngx_http_script_complex_value_code()
1664 le.quote = e->quote; in ngx_http_script_complex_value_code()
1670 e->buf.len = len; in ngx_http_script_complex_value_code()
1671 e->buf.data = ngx_pnalloc(e->request->pool, len); in ngx_http_script_complex_value_code()
1672 if (e->buf.data == NULL) { in ngx_http_script_complex_value_code()
1673 e->ip = ngx_http_script_exit; in ngx_http_script_complex_value_code()
1674 e->status = NGX_HTTP_INTERNAL_SERVER_ERROR; in ngx_http_script_complex_value_code()
1678 e->pos = e->buf.data; in ngx_http_script_complex_value_code()
1680 e->sp->len = e->buf.len; in ngx_http_script_complex_value_code()
1681 e->sp->data = e->buf.data; in ngx_http_script_complex_value_code()
1682 e->sp++; in ngx_http_script_complex_value_code()
1687 ngx_http_script_value_code(ngx_http_script_engine_t *e) in ngx_http_script_value_code() argument
1691 code = (ngx_http_script_value_code_t *) e->ip; in ngx_http_script_value_code()
1693 e->ip += sizeof(ngx_http_script_value_code_t); in ngx_http_script_value_code()
1695 e->sp->len = code->text_len; in ngx_http_script_value_code()
1696 e->sp->data = (u_char *) code->text_data; in ngx_http_script_value_code()
1698 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_value_code()
1699 "http script value: \"%v\"", e->sp); in ngx_http_script_value_code()
1701 e->sp++; in ngx_http_script_value_code()
1706 ngx_http_script_set_var_code(ngx_http_script_engine_t *e) in ngx_http_script_set_var_code() argument
1711 code = (ngx_http_script_var_code_t *) e->ip; in ngx_http_script_set_var_code()
1713 e->ip += sizeof(ngx_http_script_var_code_t); in ngx_http_script_set_var_code()
1715 r = e->request; in ngx_http_script_set_var_code()
1717 e->sp--; in ngx_http_script_set_var_code()
1719 r->variables[code->index].len = e->sp->len; in ngx_http_script_set_var_code()
1723 r->variables[code->index].data = e->sp->data; in ngx_http_script_set_var_code()
1734 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_set_var_code()
1742 ngx_http_script_var_set_handler_code(ngx_http_script_engine_t *e) in ngx_http_script_var_set_handler_code() argument
1746 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_var_set_handler_code()
1749 code = (ngx_http_script_var_handler_code_t *) e->ip; in ngx_http_script_var_set_handler_code()
1751 e->ip += sizeof(ngx_http_script_var_handler_code_t); in ngx_http_script_var_set_handler_code()
1753 e->sp--; in ngx_http_script_var_set_handler_code()
1755 code->handler(e->request, e->sp, code->data); in ngx_http_script_var_set_handler_code()
1760 ngx_http_script_var_code(ngx_http_script_engine_t *e) in ngx_http_script_var_code() argument
1765 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_var_code()
1768 code = (ngx_http_script_var_code_t *) e->ip; in ngx_http_script_var_code()
1770 e->ip += sizeof(ngx_http_script_var_code_t); in ngx_http_script_var_code()
1772 value = ngx_http_get_flushed_variable(e->request, code->index); in ngx_http_script_var_code()
1775 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0, in ngx_http_script_var_code()
1778 *e->sp = *value; in ngx_http_script_var_code()
1779 e->sp++; in ngx_http_script_var_code()
1784 *e->sp = ngx_http_variable_null_value; in ngx_http_script_var_code()
1785 e->sp++; in ngx_http_script_var_code()
1790 ngx_http_script_nop_code(ngx_http_script_engine_t *e) in ngx_http_script_nop_code() argument
1792 e->ip += sizeof(uintptr_t); in ngx_http_script_nop_code()