00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef VLC_HTTPD_H
00025 #define VLC_HTTPD_H 1
00026
00027
00028
00029
00030
00031
00032 enum
00033 {
00034 HTTPD_MSG_NONE,
00035
00036
00037 HTTPD_MSG_ANSWER,
00038
00039
00040 HTTPD_MSG_CHANNEL,
00041
00042
00043 HTTPD_MSG_GET,
00044 HTTPD_MSG_HEAD,
00045 HTTPD_MSG_POST,
00046
00047
00048 HTTPD_MSG_OPTIONS,
00049 HTTPD_MSG_DESCRIBE,
00050 HTTPD_MSG_SETUP,
00051 HTTPD_MSG_PLAY,
00052 HTTPD_MSG_PAUSE,
00053 HTTPD_MSG_GETPARAMETER,
00054 HTTPD_MSG_TEARDOWN,
00055
00056
00057 HTTPD_MSG_MAX
00058 };
00059
00060 enum
00061 {
00062 HTTPD_PROTO_NONE,
00063 HTTPD_PROTO_HTTP,
00064 HTTPD_PROTO_RTSP,
00065 HTTPD_PROTO_HTTP0,
00066 };
00067
00068 struct httpd_message_t
00069 {
00070 httpd_client_t *cl;
00071
00072 uint8_t i_type;
00073 uint8_t i_proto;
00074 uint8_t i_version;
00075
00076
00077 int i_status;
00078
00079
00080 char *psz_url;
00081
00082
00083 uint8_t *psz_args;
00084
00085
00086 int i_channel;
00087
00088
00089 int i_name;
00090 char **name;
00091 int i_value;
00092 char **value;
00093
00094
00095 int64_t i_body_offset;
00096 int i_body;
00097 uint8_t *p_body;
00098
00099 };
00100
00101
00102 VLC_EXPORT( httpd_host_t *, httpd_HostNew, ( vlc_object_t *, const char *psz_host, int i_port ) LIBVLC_USED );
00103 VLC_EXPORT( httpd_host_t *, httpd_TLSHostNew, ( vlc_object_t *, const char *, int, const char *, const char *, const char *, const char * ) LIBVLC_USED );
00104
00105
00106 VLC_EXPORT( void, httpd_HostDelete, ( httpd_host_t * ) );
00107
00108
00109 VLC_EXPORT( httpd_url_t *, httpd_UrlNew, ( httpd_host_t *, const char *psz_url, const char *psz_user, const char *psz_password, const vlc_acl_t *p_acl ) LIBVLC_USED );
00110 VLC_EXPORT( httpd_url_t *, httpd_UrlNewUnique, ( httpd_host_t *, const char *psz_url, const char *psz_user, const char *psz_password, const vlc_acl_t *p_acl ) LIBVLC_USED );
00111
00112 VLC_EXPORT( int, httpd_UrlCatch, ( httpd_url_t *, int i_msg, httpd_callback_t, httpd_callback_sys_t * ) );
00113
00114 VLC_EXPORT( void, httpd_UrlDelete, ( httpd_url_t * ) );
00115
00116
00117 VLC_EXPORT( void, httpd_ClientModeStream, ( httpd_client_t *cl ) );
00118 VLC_EXPORT( void, httpd_ClientModeBidir, ( httpd_client_t *cl ) );
00119 VLC_EXPORT( char*, httpd_ClientIP, ( const httpd_client_t *cl, char *psz_ip ) );
00120 VLC_EXPORT( char*, httpd_ServerIP, ( const httpd_client_t *cl, char *psz_ip ) );
00121
00122
00123
00124 VLC_EXPORT( httpd_file_t *, httpd_FileNew, ( httpd_host_t *, const char *psz_url, const char *psz_mime, const char *psz_user, const char *psz_password, const vlc_acl_t *p_acl, httpd_file_callback_t pf_fill, httpd_file_sys_t * ) LIBVLC_USED );
00125 VLC_EXPORT( httpd_file_sys_t *, httpd_FileDelete, ( httpd_file_t * ) );
00126
00127
00128 VLC_EXPORT( httpd_handler_t *, httpd_HandlerNew, ( httpd_host_t *, const char *psz_url, const char *psz_user, const char *psz_password, const vlc_acl_t *p_acl, httpd_handler_callback_t pf_fill, httpd_handler_sys_t * ) LIBVLC_USED );
00129 VLC_EXPORT( httpd_handler_sys_t *, httpd_HandlerDelete, ( httpd_handler_t * ) );
00130
00131
00132 VLC_EXPORT( httpd_redirect_t *, httpd_RedirectNew, ( httpd_host_t *, const char *psz_url_dst, const char *psz_url_src ) LIBVLC_USED );
00133 VLC_EXPORT( void, httpd_RedirectDelete, ( httpd_redirect_t * ) );
00134
00135
00136 VLC_EXPORT( httpd_stream_t *, httpd_StreamNew, ( httpd_host_t *, const char *psz_url, const char *psz_mime, const char *psz_user, const char *psz_password, const vlc_acl_t *p_acl ) LIBVLC_USED );
00137 VLC_EXPORT( void, httpd_StreamDelete, ( httpd_stream_t * ) );
00138 VLC_EXPORT( int, httpd_StreamHeader, ( httpd_stream_t *, uint8_t *p_data, int i_data ) );
00139 VLC_EXPORT( int, httpd_StreamSend, ( httpd_stream_t *, uint8_t *p_data, int i_data ) );
00140
00141
00142
00143 VLC_EXPORT( void, httpd_MsgAdd, ( httpd_message_t *, const char *psz_name, const char *psz_value, ... ) LIBVLC_FORMAT( 3, 4 ) );
00144
00145 VLC_EXPORT( const char *, httpd_MsgGet, ( const httpd_message_t *, const char *psz_name ) );
00146
00147 #endif