Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
GSoC
GSoC2018
macOS
vlc
Commits
4d907c94
Commit
4d907c94
authored
Aug 11, 2003
by
Laurent Aimar
Browse files
* httpd: added HEAD command support.
parent
5e422b1f
Changes
1
Hide whitespace changes
Inline
Side-by-side
modules/misc/httpd.c
View file @
4d907c94
...
...
@@ -2,7 +2,7 @@
* httpd.c
*****************************************************************************
* Copyright (C) 2001-2003 VideoLAN
* $Id: httpd.c,v 1.2
4
2003/0
7
/1
0
2
2:37
:02 fenrir Exp $
* $Id: httpd.c,v 1.2
5
2003/0
8
/1
1
2
0:18
:02 fenrir Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
...
...
@@ -23,6 +23,9 @@
/*****************************************************************************
* Preamble
*
* TODO:
* - make that two distinct host:port use different daemon
*****************************************************************************/
#include
<stdlib.h>
#include
<vlc/vlc.h>
...
...
@@ -134,8 +137,11 @@ struct httpd_host_t
};
#define HTTPD_AUTHENTICATE_NONE 0
#define HTTPD_AUTHENTICATE_BASIC 1
enum
httpd_authenticate_e
{
HTTPD_AUTHENTICATE_NONE
=
0
,
HTTPD_AUTHENTICATE_BASIC
=
1
};
//typedef httpd_file_t httpd_stream_t;
...
...
@@ -171,14 +177,22 @@ struct httpd_file_t
};
#define HTTPD_CONNECTION_RECEIVING_REQUEST 1
#define HTTPD_CONNECTION_SENDING_HEADER 2
#define HTTPD_CONNECTION_SENDING_FILE 3
#define HTTPD_CONNECTION_SENDING_STREAM 4
#define HTTPD_CONNECTION_TO_BE_CLOSED 5
enum
httpd_connection_state_e
{
HTTPD_CONNECTION_RECEIVING_REQUEST
=
1
,
HTTPD_CONNECTION_SENDING_HEADER
=
2
,
HTTPD_CONNECTION_SENDING_FILE
=
3
,
HTTPD_CONNECTION_SENDING_STREAM
=
4
,
HTTPD_CONNECTION_TO_BE_CLOSED
=
5
};
enum
httpd_connection_method_e
{
HTTPD_CONNECTION_METHOD_GET
=
1
,
HTTPD_CONNECTION_METHOD_POST
=
2
,
HTTPD_CONNECTION_METHOD_HEAD
=
3
};
#define HTTPD_CONNECTION_METHOD_GET 1
#define HTTPD_CONNECTION_METHOD_POST 2
typedef
struct
httpd_connection_s
{
struct
httpd_connection_s
*
p_next
;
...
...
@@ -247,7 +261,9 @@ static void httpd_Thread( httpd_sys_t *p_httpt );
static
void
httpd_ConnnectionNew
(
httpd_sys_t
*
,
int
,
struct
sockaddr_in
*
);
static
void
httpd_ConnnectionClose
(
httpd_sys_t
*
,
httpd_connection_t
*
);
static
int
httpd_UnbanIP
(
httpd_sys_t
*
,
httpd_banned_ip_t
*
);
#if 0
static int httpd_BanIP( httpd_sys_t *, char *);
#endif
static
httpd_banned_ip_t
*
httpd_GetbannedIP
(
httpd_sys_t
*
,
char
*
);
/*****************************************************************************
...
...
@@ -1123,7 +1139,7 @@ static int httpd_page_404_get( httpd_file_callback_args_t *p_args,
return
VLC_SUCCESS
;
}
#if 0
static int httpd_BanIP( httpd_sys_t *p_httpt, char * psz_new_banned_ip)
{
httpd_banned_ip_t *p_new_banned_ip ;
...
...
@@ -1167,7 +1183,7 @@ static int httpd_BanIP( httpd_sys_t *p_httpt, char * psz_new_banned_ip)
p_httpt->i_banned_ip_count++;
return 0;
}
#endif
static
httpd_banned_ip_t
*
httpd_GetbannedIP
(
httpd_sys_t
*
p_httpt
,
char
*
psz_ip
)
{
httpd_banned_ip_t
*
p_ip
;
...
...
@@ -1444,6 +1460,10 @@ static void httpd_ConnectionParseRequest( httpd_sys_t *p_httpt, httpd_connection
{
p_con
->
i_method
=
HTTPD_CONNECTION_METHOD_POST
;
}
else
if
(
!
strcmp
(
command
,
"HEAD"
))
{
p_con
->
i_method
=
HTTPD_CONNECTION_METHOD_HEAD
;
}
else
{
/* unimplemented */
...
...
@@ -1563,6 +1583,7 @@ search_file:
if
(
!
strcmp
(
p_httpt
->
file
[
i
]
->
psz_file
,
p_con
->
psz_file
)
)
{
if
(
p_httpt
->
file
[
i
]
->
b_stream
||
p_con
->
i_method
==
HTTPD_CONNECTION_METHOD_HEAD
||
(
p_con
->
i_method
==
HTTPD_CONNECTION_METHOD_GET
&&
p_httpt
->
file
[
i
]
->
pf_get
)
||
(
p_con
->
i_method
==
HTTPD_CONNECTION_METHOD_POST
&&
p_httpt
->
file
[
i
]
->
pf_post
)
)
{
...
...
@@ -1871,7 +1892,7 @@ static void httpd_Thread( httpd_sys_t *p_httpt )
p_con
->
i_buffer
=
0
;
FREE
(
p_con
->
p_buffer
);
if
(
!
p_con
->
p_file
->
b_stream
)
if
(
!
p_con
->
p_file
->
b_stream
||
p_con
->
i_method
==
HTTPD_CONNECTION_METHOD_HEAD
)
{
p_con
->
i_state
=
HTTPD_CONNECTION_SENDING_FILE
;
// be sure to out from HTTPD_CONNECTION_SENDING_HEADER
if
(
p_con
->
i_method
==
HTTPD_CONNECTION_METHOD_GET
)
...
...
@@ -1888,6 +1909,7 @@ static void httpd_Thread( httpd_sys_t *p_httpt )
}
else
{
/* HTTPD_CONNECTION_METHOD_HEAD for example */
p_con
->
p_buffer
=
NULL
;
p_con
->
i_buffer_size
=
0
;
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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