Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pve-manager
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
pve-manager
Commits
1d4dc6a0
Commit
1d4dc6a0
authored
Apr 23, 2013
by
Dietmar Maurer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pveproxy: implement if-modified-since
parent
81af3133
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
2 deletions
+15
-2
HTTPServer.pm
PVE/HTTPServer.pm
+15
-2
No files found.
PVE/HTTPServer.pm
View file @
1d4dc6a0
...
...
@@ -157,7 +157,7 @@ sub response {
$content
=
"";
}
$reqstate
->
{
keep_alive
}
=
0
if
(
$code
>=
3
00
)
||
$self
->
{
end_loop
};
$reqstate
->
{
keep_alive
}
=
0
if
(
$code
>=
4
00
)
||
$self
->
{
end_loop
};
$reqstate
->
{
log
}
->
{
code
}
=
$code
;
...
...
@@ -230,10 +230,23 @@ sub send_file_start {
# Note: aio_load() this is not really async unless we use IO::AIO!
eval
{
my
$r
=
$reqstate
->
{
request
};
my
$fh
=
IO::
File
->
new
(
$filename
,
'
<
')
||
die
"
$!
\n
";
my
$stat
=
File::stat::
stat
(
$fh
)
||
die
"
$!
\n
";
my
$mtime
=
$stat
->
mtime
;
if
(
my
$ifmod
=
$r
->
header
('
if-modified-since
'))
{
my
$iftime
=
HTTP::Date::
str2time
(
$ifmod
);
if
(
$mtime
<=
$iftime
)
{
my
$resp
=
HTTP::
Response
->
new
(
304
,
"
NOT MODIFIED
");
$self
->
response
(
$reqstate
,
$resp
,
$mtime
);
return
;
}
}
my
$data
;
my
$len
=
sysread
(
$fh
,
$data
,
$stat
->
size
);
...
...
@@ -256,7 +269,7 @@ sub send_file_start {
my
$header
=
HTTP::
Headers
->
new
(
Content_Type
=>
$ct
);
my
$resp
=
HTTP::
Response
->
new
(
200
,
"
OK
",
$header
,
$data
);
$self
->
response
(
$reqstate
,
$resp
,
$
stat
->
mtime
);
$self
->
response
(
$reqstate
,
$resp
,
$mtime
);
};
if
(
my
$err
=
$@
)
{
$self
->
error
(
$reqstate
,
501
,
$err
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment