Deleted
Added
nxt_php_sapi.c (86:3b77edf46701) | nxt_php_sapi.c (94:48a31f768f5e) |
---|---|
1 2/* 3 * Copyright (C) Max Romanov 4 * Copyright (C) Valentin V. Bartenev 5 * Copyright (C) NGINX, Inc. 6 */ 7 8#include "php.h" --- 122 unchanged lines hidden (view full) --- 131nxt_inline nxt_int_t nxt_php_write(nxt_php_run_ctx_t *ctx, 132 const u_char *data, size_t len, 133 nxt_bool_t flush, nxt_bool_t last); 134 135 136static nxt_str_t nxt_php_path; 137static nxt_str_t nxt_php_root; 138static nxt_str_t nxt_php_script; | 1 2/* 3 * Copyright (C) Max Romanov 4 * Copyright (C) Valentin V. Bartenev 5 * Copyright (C) NGINX, Inc. 6 */ 7 8#include "php.h" --- 122 unchanged lines hidden (view full) --- 131nxt_inline nxt_int_t nxt_php_write(nxt_php_run_ctx_t *ctx, 132 const u_char *data, size_t len, 133 nxt_bool_t flush, nxt_bool_t last); 134 135 136static nxt_str_t nxt_php_path; 137static nxt_str_t nxt_php_root; 138static nxt_str_t nxt_php_script; |
139static nxt_str_t nxt_php_index_name = nxt_string("index.php"); |
|
139 140 141nxt_application_module_t nxt_php_module = { 142 nxt_php_init, 143 nxt_php_prepare_msg, 144 nxt_php_run 145}; 146 --- 85 unchanged lines hidden (view full) --- 232 233 234static nxt_int_t 235nxt_php_read_request(nxt_task_t *task, nxt_app_rmsg_t *rmsg, 236 nxt_php_run_ctx_t *ctx) 237{ 238 u_char *p; 239 size_t s; | 140 141 142nxt_application_module_t nxt_php_module = { 143 nxt_php_init, 144 nxt_php_prepare_msg, 145 nxt_php_run 146}; 147 --- 85 unchanged lines hidden (view full) --- 233 234 235static nxt_int_t 236nxt_php_read_request(nxt_task_t *task, nxt_app_rmsg_t *rmsg, 237 nxt_php_run_ctx_t *ctx) 238{ 239 u_char *p; 240 size_t s; |
241 nxt_str_t script_name; |
|
240 nxt_app_request_header_t *h; 241 242 h = &ctx->r.header; 243 244 nxt_app_msg_read_str(task, rmsg, &h->method); 245 nxt_app_msg_read_str(task, rmsg, &h->path); 246 h->path_no_query = h->path; 247 --- 4 unchanged lines hidden (view full) --- 252 h->query.length = h->path.length - s; 253 254 if (s > 0) { 255 h->path_no_query.length = s - 1; 256 } 257 } 258 259 if (nxt_php_path.start == NULL) { | 242 nxt_app_request_header_t *h; 243 244 h = &ctx->r.header; 245 246 nxt_app_msg_read_str(task, rmsg, &h->method); 247 nxt_app_msg_read_str(task, rmsg, &h->path); 248 h->path_no_query = h->path; 249 --- 4 unchanged lines hidden (view full) --- 254 h->query.length = h->path.length - s; 255 256 if (s > 0) { 257 h->path_no_query.length = s - 1; 258 } 259 } 260 261 if (nxt_php_path.start == NULL) { |
260 ctx->script.length = nxt_php_root.length + h->path_no_query.length; | 262 if (h->path_no_query.start[h->path_no_query.length - 1] == '/') { 263 script_name = nxt_php_index_name; 264 } else { 265 script_name.length = 0; 266 } 267 268 ctx->script.length = nxt_php_root.length + h->path_no_query.length + 269 script_name.length; |
261 ctx->script.start = nxt_mp_nget(ctx->mem_pool, 262 ctx->script.length + 1); 263 264 p = ctx->script.start; 265 266 nxt_memcpy(p, nxt_php_root.start, nxt_php_root.length); 267 p += nxt_php_root.length; | 270 ctx->script.start = nxt_mp_nget(ctx->mem_pool, 271 ctx->script.length + 1); 272 273 p = ctx->script.start; 274 275 nxt_memcpy(p, nxt_php_root.start, nxt_php_root.length); 276 p += nxt_php_root.length; |
277 |
|
268 nxt_memcpy(p, h->path_no_query.start, h->path_no_query.length); | 278 nxt_memcpy(p, h->path_no_query.start, h->path_no_query.length); |
269 p[h->path_no_query.length] = '\0'; | 279 p += h->path_no_query.length; 280 281 if (script_name.length > 0) { 282 nxt_memcpy(p, script_name.start, script_name.length); 283 p += script_name.length; 284 } 285 286 p[0] = '\0'; |
270 } else { 271 ctx->script = nxt_php_path; 272 } 273 274 nxt_app_msg_read_str(task, rmsg, &h->version); 275 276 nxt_app_msg_read_str(task, rmsg, &h->cookie); 277 nxt_app_msg_read_str(task, rmsg, &h->content_type); 278 nxt_app_msg_read_str(task, rmsg, &h->content_length); 279 280 nxt_app_msg_read_size(task, rmsg, &s); 281 h->parsed_content_length = s; 282 | 287 } else { 288 ctx->script = nxt_php_path; 289 } 290 291 nxt_app_msg_read_str(task, rmsg, &h->version); 292 293 nxt_app_msg_read_str(task, rmsg, &h->cookie); 294 nxt_app_msg_read_str(task, rmsg, &h->content_type); 295 nxt_app_msg_read_str(task, rmsg, &h->content_length); 296 297 nxt_app_msg_read_size(task, rmsg, &s); 298 h->parsed_content_length = s; 299 |
300 nxt_app_msg_read_str(task, rmsg, &ctx->r.body.preread); 301 |
|
283 /* Further headers read moved to nxt_php_register_variables. */ 284 return NXT_OK; 285} 286 287 288static nxt_int_t 289nxt_php_prepare_msg(nxt_task_t *task, nxt_app_request_t *r, 290 nxt_app_wmsg_t *wmsg) --- 38 unchanged lines hidden (view full) --- 329 // DOCUMENT_ROOT 330 331 NXT_WRITE(&h->cookie); 332 NXT_WRITE(&h->content_type); 333 NXT_WRITE(&h->content_length); 334 335 RC(nxt_app_msg_write_size(task, wmsg, h->parsed_content_length)); 336 | 302 /* Further headers read moved to nxt_php_register_variables. */ 303 return NXT_OK; 304} 305 306 307static nxt_int_t 308nxt_php_prepare_msg(nxt_task_t *task, nxt_app_request_t *r, 309 nxt_app_wmsg_t *wmsg) --- 38 unchanged lines hidden (view full) --- 348 // DOCUMENT_ROOT 349 350 NXT_WRITE(&h->cookie); 351 NXT_WRITE(&h->content_type); 352 NXT_WRITE(&h->content_length); 353 354 RC(nxt_app_msg_write_size(task, wmsg, h->parsed_content_length)); 355 |
356 NXT_WRITE(&r->body.preread); 357 |
|
337 nxt_list_each(field, h->fields) { 338 RC(nxt_app_msg_write_prefixed_upcase(task, wmsg, 339 &prefix, &field->name)); 340 NXT_WRITE(&field->value); 341 342 } nxt_list_loop; 343 344 /* end-of-headers mark */ 345 NXT_WRITE(&eof); | 358 nxt_list_each(field, h->fields) { 359 RC(nxt_app_msg_write_prefixed_upcase(task, wmsg, 360 &prefix, &field->name)); 361 NXT_WRITE(&field->value); 362 363 } nxt_list_loop; 364 365 /* end-of-headers mark */ 366 NXT_WRITE(&eof); |
346 NXT_WRITE(&r->body.preread); | |
347 348#undef NXT_WRITE 349#undef RC 350 351 return NXT_OK; 352 353fail: 354 --- 260 unchanged lines hidden (view full) --- 615 616static char * 617nxt_php_read_cookies(TSRMLS_D) 618{ 619 nxt_php_run_ctx_t *ctx; 620 621 ctx = SG(server_context); 622 | 367 368#undef NXT_WRITE 369#undef RC 370 371 return NXT_OK; 372 373fail: 374 --- 260 unchanged lines hidden (view full) --- 635 636static char * 637nxt_php_read_cookies(TSRMLS_D) 638{ 639 nxt_php_run_ctx_t *ctx; 640 641 ctx = SG(server_context); 642 |
643 nxt_debug(ctx->task, "nxt_php_read_cookies"); 644 |
|
623 return (char *) ctx->r.header.cookie.start; 624} 625 626 627static void 628nxt_php_register_variables(zval *track_vars_array TSRMLS_DC) 629{ 630 nxt_str_t n, v; --- 93 unchanged lines hidden (view full) --- 724 725 if (h->content_length.start != NULL) { 726 php_register_variable_safe((char *) "CONTENT_LENGTH", 727 (char *) h->content_length.start, 728 h->content_length.length, 729 track_vars_array TSRMLS_CC); 730 } 731 | 645 return (char *) ctx->r.header.cookie.start; 646} 647 648 649static void 650nxt_php_register_variables(zval *track_vars_array TSRMLS_DC) 651{ 652 nxt_str_t n, v; --- 93 unchanged lines hidden (view full) --- 746 747 if (h->content_length.start != NULL) { 748 php_register_variable_safe((char *) "CONTENT_LENGTH", 749 (char *) h->content_length.start, 750 h->content_length.length, 751 track_vars_array TSRMLS_CC); 752 } 753 |
732 while ( (rc = nxt_app_msg_read_nvp(task, ctx->rmsg, &n, &v)) == NXT_OK) { | 754 while (nxt_app_msg_read_str(task, ctx->rmsg, &n) == NXT_OK) { |
733 if (nxt_slow_path(n.length == 0)) { 734 break; 735 } 736 | 755 if (nxt_slow_path(n.length == 0)) { 756 break; 757 } 758 |
759 rc = nxt_app_msg_read_str(task, ctx->rmsg, &v); 760 if (nxt_slow_path(rc != NXT_OK)) { 761 break; 762 } 763 |
|
737 php_register_variable_safe((char *) n.start, | 764 php_register_variable_safe((char *) n.start, |
738 (char *) n.start, 739 v.length, | 765 (char *) v.start, v.length, |
740 track_vars_array TSRMLS_CC); 741 } | 766 track_vars_array TSRMLS_CC); 767 } |
742 743 ctx->r.body.preread = v; | |
744} 745 746 747static void 748nxt_php_log_message(char *message 749#ifdef NXT_HAVE_PHP_LOG_MESSAGE_WITH_SYSLOG_TYPE 750 , int syslog_type_int 751#endif 752) 753{ 754 return; 755} | 768} 769 770 771static void 772nxt_php_log_message(char *message 773#ifdef NXT_HAVE_PHP_LOG_MESSAGE_WITH_SYSLOG_TYPE 774 , int syslog_type_int 775#endif 776) 777{ 778 return; 779} |