Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
Commits
f4d4898c
Commit
f4d4898c
authored
Nov 24, 2006
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Factorize HTTPd error messages
parent
9ad4af7c
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
86 deletions
+43
-86
src/network/httpd.c
src/network/httpd.c
+43
-86
No files found.
src/network/httpd.c
View file @
f4d4898c
...
...
@@ -267,7 +267,7 @@ static const char *httpd_MimeFromUrl( const char *psz_url )
return
"application/octet-stream"
;
}
#if 0
typedef
struct
{
int
i_code
;
...
...
@@ -347,7 +347,38 @@ static const char *httpd_ReasonFromCode( int i_code )
assert
(
(
i_code
>=
100
)
&&
(
i_code
<=
599
)
);
return
psz_fallback_reason
[(
i_code
/
100
)
-
1
];
}
#endif
static
size_t
httpd_HtmlError
(
char
**
body
,
int
code
,
const
char
*
url
)
{
const
char
*
errname
=
httpd_ReasonFromCode
(
code
);
assert
(
errname
!=
NULL
);
int
res
=
asprintf
(
body
,
"<?xml version=
\"
1.0
\"
encoding=
\"
ascii
\"
?>
\n
"
"<!DOCTYPE html PUBLIC
\"
-//W3C//DTD XHTML 1.0 Strict//EN
\"
"
"
\"
http://www.w3.org/TR/xhtml10/DTD/xhtml10strict.dtd
\"
>
\n
"
"<html lang=
\"
en
\"
>
\n
"
"<head>
\n
"
"<title>%s</title>
\n
"
"</head>
\n
"
"<body>
\n
"
"<h1>%d %s%s%s%s</h1>
\n
"
"<hr />
\n
"
"<a href=
\"
http://www.videolan.org
\"
>VideoLAN</a>
\n
"
"</body>
\n
"
"</html>
\n
"
,
errname
,
code
,
errname
,
(
url
?
" ("
:
""
),
(
url
?:
""
),
(
url
?
")"
:
""
));
if
(
res
==
-
1
)
{
*
body
=
NULL
;
return
0
;
}
return
(
size_t
)
res
;
}
/*****************************************************************************
* High Level Functions: httpd_file_t
...
...
@@ -637,22 +668,7 @@ static int httpd_RedirectCallBack( httpd_callback_sys_t *p_sys,
answer
->
i_status
=
301
;
answer
->
psz_status
=
strdup
(
"Moved Permanently"
);
answer
->
i_body
=
asprintf
(
&
p_body
,
"<?xml version=
\"
1.0
\"
encoding=
\"
ascii
\"
?>
\n
"
"<!DOCTYPE html PUBLIC
\"
-//W3C//DTD XHTML 1.0 Strict//EN
\"
"
"
\"
http://www.w3.org/TR/xhtml10/DTD/xhtml10strict.dtd
\"
>
\n
"
"<html>
\n
"
"<head>
\n
"
"<title>Redirection</title>
\n
"
"</head>
\n
"
"<body>
\n
"
"<h1>You should be "
"<a href=
\"
%s
\"
>redirected</a></h1>
\n
"
"<hr />
\n
"
"<p><a href=
\"
http://www.videolan.org
\"
>VideoLAN</a>
\n
</p>"
"<hr />
\n
"
"</body>
\n
"
"</html>
\n
"
,
rdir
->
psz_dst
);
answer
->
i_body
=
httpd_HtmlError
(
&
p_body
,
301
,
rdir
->
psz_dst
);
answer
->
p_body
=
(
unsigned
char
*
)
p_body
;
/* XXX check if it's ok or we need to set an absolute url */
...
...
@@ -2097,7 +2113,7 @@ static void httpd_HostThread( httpd_host_t *host )
}
else
{
uint8_t
*
p
;
char
*
p
;
/* unimplemented */
answer
->
i_proto
=
query
->
i_proto
;
...
...
@@ -2106,24 +2122,8 @@ static void httpd_HostThread( httpd_host_t *host )
answer
->
i_status
=
501
;
answer
->
psz_status
=
strdup
(
"Unimplemented"
);
p
=
answer
->
p_body
=
malloc
(
1000
);
p
+=
sprintf
(
(
char
*
)
p
,
"<?xml version=
\"
1.0
\"
encoding=
\"
ascii
\"
?>"
"<!DOCTYPE html PUBLIC
\"
-//W3C//DTD XHTML 1.0 Strict//EN
\"
"
"
\"
http://www.w3.org/TR/xhtml10/DTD/xhtml10strict.dtd
\"
>
\n
"
"<html>
\n
"
"<head>
\n
"
"<title>Error 501</title>
\n
"
"</head>
\n
"
"<body>
\n
"
"<h1>501 Unimplemented</h1>
\n
"
"<hr />
\n
"
"<a href=
\"
http://www.videolan.org
\"
>VideoLAN</a>
\n
"
"</body>
\n
"
"</html>
\n
"
);
answer
->
i_body
=
p
-
answer
->
p_body
;
answer
->
i_body
=
httpd_HtmlError
(
&
p
,
501
,
NULL
);
answer
->
p_body
=
(
uint8_t
*
)
p
;
httpd_MsgAdd
(
answer
,
"Content-Length"
,
"%d"
,
answer
->
i_body
);
cl
->
i_buffer
=
-
1
;
/* Force the creation of the answer in httpd_ClientSend */
...
...
@@ -2222,77 +2222,34 @@ static void httpd_HostThread( httpd_host_t *host )
if
(
answer
)
{
uint8_t
*
p
;
char
*
p
;
answer
->
i_proto
=
query
->
i_proto
;
answer
->
i_type
=
HTTPD_MSG_ANSWER
;
answer
->
i_version
=
0
;
p
=
answer
->
p_body
=
malloc
(
1000
+
strlen
(
query
->
psz_url
)
);
if
(
b_hosts_failed
)
{
answer
->
i_status
=
403
;
answer
->
psz_status
=
strdup
(
"Forbidden"
);
/* FIXME: lots of code duplication */
p
+=
sprintf
(
(
char
*
)
p
,
"<?xml version=
\"
1.0
\"
encoding=
\"
us-ascii
\"
?>"
"<!DOCTYPE html PUBLIC
\"
-//W3C//DTD XHTML 1.0 Strict//EN
\"
"
"
\"
http://www.w3.org/TR/xhtml10/DTD/xhtml10strict.dtd
\"
>
\n
"
"<html>
\n
"
"<head>
\n
"
"<title>Error 403</title>
\n
"
"</head>
\n
"
"<body>
\n
"
"<h1>403 Forbidden (%s)</h1>
\n
"
"<hr />
\n
"
"<p><a href=
\"
http://www.videolan.org
\"
>VideoLAN</a></p>
\n
"
"</body>
\n
"
"</html>
\n
"
,
query
->
psz_url
);
}
else
if
(
b_auth_failed
)
{
answer
->
i_status
=
401
;
answer
->
psz_status
=
strdup
(
"Authorization Required"
);
p
+=
sprintf
(
(
char
*
)
p
,
"<?xml version=
\"
1.0
\"
encoding=
\"
us-ascii
\"
?>"
"<!DOCTYPE html PUBLIC
\"
-//W3C//DTD XHTML 1.0 Strict//EN
\"
"
"
\"
http://www.w3.org/TR/xhtml10/DTD/xhtml10strict.dtd
\"
>
\n
"
"<html>
\n
"
"<head>
\n
"
"<title>Error 401</title>
\n
"
"</head>
\n
"
"<body>
\n
"
"<h1>401 Authorization Required (%s)</h1>
\n
"
"<hr />
\n
"
"<p><a href=
\"
http://www.videolan.org
\"
>VideoLAN</a></p>
\n
"
"</body>
\n
"
"</html>
\n
"
,
query
->
psz_url
);
}
else
{
/* no url registered */
answer
->
i_status
=
404
;
answer
->
psz_status
=
strdup
(
"Not found"
);
p
+=
sprintf
(
(
char
*
)
p
,
"<?xml version=
\"
1.0
\"
encoding=
\"
us-ascii
\"
?>"
"<!DOCTYPE html PUBLIC
\"
-//W3C//DTD XHTML 1.0 Strict//EN
\"
"
"
\"
http://www.w3.org/TR/xhtml10/DTD/xhtml10strict.dtd
\"
>
\n
"
"<html>
\n
"
"<head>
\n
"
"<title>Error 404</title>
\n
"
"</head>
\n
"
"<body>
\n
"
"<h1>404 Resource not found(%s)</h1>
\n
"
"<hr />
\n
"
"<p><a href=
\"
http://www.videolan.org
\"
> VideoLAN</a></p>
\n
"
"</body>
\n
"
"</html>
\n
"
,
query
->
psz_url
);
}
answer
->
i_body
=
p
-
answer
->
p_body
;
answer
->
i_body
=
httpd_HtmlError
(
&
p
,
answer
->
i_status
,
query
->
psz_url
);
answer
->
p_body
=
(
uint8_t
*
)
p
;
cl
->
i_buffer
=
-
1
;
/* Force the creation of the answer in httpd_ClientSend */
httpd_MsgAdd
(
answer
,
"Content-Length"
,
"%d"
,
answer
->
i_body
);
httpd_MsgAdd
(
answer
,
"Content-Type"
,
"%s"
,
"text/html"
);
...
...
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