Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
c6dac3c6
Commit
c6dac3c6
authored
Dec 16, 2015
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
https: revector time handling
Also robustify time test.
parent
8c490ccf
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
15 deletions
+41
-15
modules/access/http/message.c
modules/access/http/message.c
+21
-15
modules/access/http/message.h
modules/access/http/message.h
+18
-0
modules/access/http/message_test.c
modules/access/http/message_test.c
+2
-0
No files found.
modules/access/http/message.c
View file @
c6dac3c6
...
...
@@ -605,27 +605,27 @@ static const char vlc_http_months[12][4] = {
"Jul"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
};
static
int
vlc_http_msg_add_time
(
struct
vlc_http_msg
*
m
,
const
char
*
hname
,
const
struct
tm
*
restrict
tm
)
int
vlc_http_msg_add_time
(
struct
vlc_http_msg
*
m
,
const
char
*
hname
,
const
time_t
*
t
)
{
struct
tm
tm
;
if
(
gmtime_r
(
t
,
&
tm
)
==
NULL
)
return
-
1
;
return
vlc_http_msg_add_header
(
m
,
hname
,
"%s, %02d %s %04d %02d:%02d:%02d GMT"
,
vlc_http_days
[
tm
->
tm_wday
],
tm
->
tm_mday
,
vlc_http_months
[
tm
->
tm_mon
],
1900
+
tm
->
tm_year
,
tm
->
tm_hour
,
tm
->
tm_min
,
tm
->
tm_sec
);
vlc_http_days
[
tm
.
tm_wday
],
tm
.
tm_mday
,
vlc_http_months
[
tm
.
tm_mon
],
1900
+
tm
.
tm_year
,
tm
.
tm_hour
,
tm
.
tm_min
,
tm
.
tm_sec
);
}
int
vlc_http_msg_add_atime
(
struct
vlc_http_msg
*
m
)
{
struct
tm
tm
;
time_t
now
;
time
(
&
now
);
if
(
gmtime_r
(
&
now
,
&
tm
)
==
NULL
)
return
-
1
;
return
vlc_http_msg_add_time
(
m
,
"Date"
,
&
tm
);
return
vlc_http_msg_add_time
(
m
,
"Date"
,
&
now
);
}
static
time_t
vlc_http_mktime
(
const
char
*
str
)
...
...
@@ -658,16 +658,22 @@ error:
return
-
1
;
/* invalid month */
}
time_t
vlc_http_msg_get_time
(
const
struct
vlc_http_msg
*
m
,
const
char
*
name
)
{
const
char
*
str
=
vlc_http_msg_get_header
(
m
,
name
);
if
(
str
==
NULL
)
return
-
1
;
return
vlc_http_mktime
(
str
);
}
time_t
vlc_http_msg_get_atime
(
const
struct
vlc_http_msg
*
m
)
{
const
char
*
str
=
vlc_http_msg_get_header
(
m
,
"Date"
);
return
(
str
!=
NULL
)
?
vlc_http_mktime
(
str
)
:
-
1
;
return
vlc_http_msg_get_time
(
m
,
"Date"
);
}
time_t
vlc_http_msg_get_mtime
(
const
struct
vlc_http_msg
*
m
)
{
const
char
*
str
=
vlc_http_msg_get_header
(
m
,
"Last-Modified"
);
return
(
str
!=
NULL
)
?
vlc_http_mktime
(
str
)
:
-
1
;
return
vlc_http_msg_get_time
(
m
,
"Last-Modified"
);
}
unsigned
vlc_http_msg_get_retry_after
(
const
struct
vlc_http_msg
*
m
)
...
...
modules/access/http/message.h
View file @
c6dac3c6
...
...
@@ -74,6 +74,24 @@ int vlc_http_msg_add_agent(struct vlc_http_msg *m, const char *str);
const
char
*
vlc_http_msg_get_agent
(
const
struct
vlc_http_msg
*
m
);
/**
* Parses a timestamp header.
*
* @param name header field name
* @return a timestamp value, or -1 on error.
*/
time_t
vlc_http_msg_get_time
(
const
struct
vlc_http_msg
*
m
,
const
char
*
name
);
/**
* Adds a timestamp header.
*
* @param name header field name
* @param t pointer to timestamp
* @return 0 on success, -1 on error (errno is set accordingly)
*/
int
vlc_http_msg_add_time
(
struct
vlc_http_msg
*
m
,
const
char
*
name
,
const
time_t
*
t
);
/**
* Adds a Date header.
*/
...
...
modules/access/http/message_test.c
View file @
c6dac3c6
...
...
@@ -210,6 +210,8 @@ int main(void)
assert
(
vlc_http_msg_add_atime
(
m
)
==
0
);
time_t
t
=
vlc_http_msg_get_atime
(
m
);
assert
(
t
!=
(
time_t
)
-
1
);
assert
(
vlc_http_msg_add_time
(
m
,
"Last-Modified"
,
&
t
)
==
0
);
assert
(
t
==
vlc_http_msg_get_mtime
(
m
));
vlc_http_msg_add_header
(
m
,
"Content-Length"
,
"1234"
);
assert
(
vlc_http_msg_get_size
(
m
)
==
1234
);
...
...
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