nxt_perl_psgi.c (510:4979fe09d9cd) nxt_perl_psgi.c (519:743a347dfba3)
1
2/*
3 * Copyright (C) Alexander Borisov
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <perl/nxt_perl_psgi_layer.h>
8

--- 882 unchanged lines hidden (view full) ---

891{
892 IO *io;
893 PerlIO *fp;
894 SSize_t n;
895 nxt_int_t rc;
896 u_char vbuf[8192];
897
898 io = GvIO(SvRV(sv_body));
1
2/*
3 * Copyright (C) Alexander Borisov
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <perl/nxt_perl_psgi_layer.h>
8

--- 882 unchanged lines hidden (view full) ---

891{
892 IO *io;
893 PerlIO *fp;
894 SSize_t n;
895 nxt_int_t rc;
896 u_char vbuf[8192];
897
898 io = GvIO(SvRV(sv_body));
899
900 if (io == NULL) {
901 return NXT_OK;
902 }
903
899 fp = IoIFP(io);
900
901 for ( ;; ) {
902 n = PerlIO_read(fp, vbuf, 8192);
903
904 if (n < 1) {
905 break;
906 }

--- 103 unchanged lines hidden (view full) ---

1010 }
1011
1012 if (nxt_fast_path(array_len < 2)) {
1013 return NXT_OK;
1014 }
1015
1016 sv_temp = av_fetch(array, 2, 0);
1017
904 fp = IoIFP(io);
905
906 for ( ;; ) {
907 n = PerlIO_read(fp, vbuf, 8192);
908
909 if (n < 1) {
910 break;
911 }

--- 103 unchanged lines hidden (view full) ---

1015 }
1016
1017 if (nxt_fast_path(array_len < 2)) {
1018 return NXT_OK;
1019 }
1020
1021 sv_temp = av_fetch(array, 2, 0);
1022
1018 if (nxt_slow_path(sv_temp == NULL)) {
1023 if (nxt_slow_path(sv_temp == NULL || SvROK(*sv_temp) == FALSE)) {
1019 nxt_log_error(NXT_LOG_ERR, task->log,
1020 "PSGI: Failed to get body from Perl ARRAY variable");
1021
1022 return NXT_ERROR;
1023 }
1024
1025 if (SvTYPE(SvRV(*sv_temp)) == SVt_PVAV) {
1026 rc = nxt_perl_psgi_result_body(nxt_perl_psgi, *sv_temp, task, wmsg);

--- 122 unchanged lines hidden ---
1024 nxt_log_error(NXT_LOG_ERR, task->log,
1025 "PSGI: Failed to get body from Perl ARRAY variable");
1026
1027 return NXT_ERROR;
1028 }
1029
1030 if (SvTYPE(SvRV(*sv_temp)) == SVt_PVAV) {
1031 rc = nxt_perl_psgi_result_body(nxt_perl_psgi, *sv_temp, task, wmsg);

--- 122 unchanged lines hidden ---