2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

01_FHEMWEB.pm: fix ETag/304 handling for iOS9 (Forum #41125)

git-svn-id: https://svn.fhem.de/fhem/trunk@9306 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2015-09-25 18:35:39 +00:00
parent 68eec7b7b6
commit b187d29e3e

View File

@ -307,11 +307,6 @@ FW_Read($$)
CommandDelete(undef, $name);
Log3 $FW_wname, 4, "Connection closed for $name: ".
(defined($ret) ? 'EOF' : $!);
if($hash->{BUF}) {
Log3 $FW_wname, 5, "BUF:>".$hash->{BUF}."< L:".length($hash->{BUF});
} else {
Log3 $FW_wname, 5, "BUF: EMPTY";
}
return;
}
$hash->{BUF} .= $buf;
@ -460,7 +455,7 @@ FW_Read($$)
my $length = length($FW_RET);
my $expires = ($cacheable?
("Expires: ".localtime($now+900)." GMT\r\n") : "");
("Expires: ".FmtDateTimeRFC1123($now+900)."\r\n") : "");
Log3 $FW_wname, 4,
"$$:$name: $arg / RL:$length / $FW_RETTYPE / $compressed / $expires";
if( ! addToWritebuffer($hash,
@ -469,12 +464,12 @@ FW_Read($$)
$expires . $compressed . $FW_headercors .
"Content-Type: $FW_RETTYPE\r\n\r\n" .
$FW_RET, "FW_closeConn") ){
Log3 $name, 4, "Closing connection $name due to full buffer in FW_Read";
Log3 $name, 4, "Closing connection $name due to full buffer in FW_Read"
if(!$hash->{isChild});
TcpServer_Close( $hash );
FW_closeConn($hash);
delete($defs{$name});
}
FW_closeConn($hash);
}
}
sub
@ -1578,9 +1573,12 @@ FW_returnFileAsStream($$$$$)
$if_none_match =~ s/"(.*)"/$1/ if($if_none_match);
$etag = (stat($path))[9]; #mtime
if(defined($etag) && defined($if_none_match) && $etag eq $if_none_match) {
my $now = time();
my $rsp = "Date: ".FmtDateTimeRFC1123($now)."\r\n".
"ETag: $etag\r\n".
"Expires: ".FmtDateTimeRFC1123($now+900)."\r\n";
TcpServer_WriteBlocking($FW_chash,"HTTP/1.1 304 Not Modified\r\n".
$FW_headercors . "\r\n");
FW_closeConn($FW_chash);
$rsp . $FW_headercors . "\r\n");
return -1;
}
}