You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If the content of a post arrives in a new frame after the double return
_sometimes_ the sysread will miss it. I don't know if this is a time
related issue or not but it happens frequently while using Axios.
To mitigate this I am checking for 'Content-Length' in the header and if it
exists, verifying that length after the double return.
The following patch implements this.
# diff -c3 /home/breshead/Downloads/Daemon.pm Daemon.pm
*** /home/breshead/Downloads/Daemon.pm 2012-02-18 04:21:23.000000000 -0800
--- Daemon.pm 2018-02-05 07:58:16.278661220 -0800
***************
*** 116,123 ****
$buf =~ s/^(?:\015?\012)+//; # ignore leading blank lines
if ($buf =~ /\012/) { # potential, has at least one line
if ($buf =~ /^\w+[^\012]+HTTP\/\d+\.\d+\015?\012/) {
! if ($buf =~ /\015?\012\015?\012/) {
! last READ_HEADER; # we have it
}
elsif (length($buf) > 16*1024) {
$self->send_error(413); # REQUEST_ENTITY_TOO_LARGE
--- 116,135 ----
$buf =~ s/^(?:\015?\012)+//; # ignore leading blank lines
if ($buf =~ /\012/) { # potential, has at least one line
if ($buf =~ /^\w+[^\012]+HTTP\/\d+\.\d+\015?\012/) {
! if ($buf =~ /\015?\012\015?\012(.*)/) {
! # It is possible for the data to follow the double
! # return in the next frame, especially with axios for some
reason.
! # So if the content length exists then check it and
_need_more() as needed.
! my $content = $1;
! my $content_len = length($content);
! if ($buf =~ /Content-Length:\s*(\d+)/){
! my $advertised_len = $1;
! if ($content_len >= $advertised_len){
! last READ_HEADER; # we have it
! }
! }else{
! last READ_HEADER; # we have it
! }
}
elsif (length($buf) > 16*1024) {
$self->send_error(413); # REQUEST_ENTITY_TOO_LARGE
--
Doug Breshears
JSH Farms Inc.
The text was updated successfully, but these errors were encountered:
Migrated from rt.cpan.org#124327 (status was 'new')
Requestors:
From [email protected] on 2018-02-05 16:03:58
:
The text was updated successfully, but these errors were encountered: