- "handle" Require header
- return 459/460 when appropriate
+ httpd_UrlCatch( id->p_rtsp_url, HTTPD_MSG_DESCRIBE, RtspCallbackId, (void*)id );
httpd_UrlCatch( id->p_rtsp_url, HTTPD_MSG_SETUP, RtspCallbackId, (void*)id );
httpd_UrlCatch( id->p_rtsp_url, HTTPD_MSG_SETUP, RtspCallbackId, (void*)id );
- //httpd_UrlCatch( id->p_rtsp_url, HTTPD_MSG_PLAY, RtspCallback, (void*)p_stream );
- //httpd_UrlCatch( id->p_rtsp_url, HTTPD_MSG_PAUSE, RtspCallback, (void*)p_stream );
+ httpd_UrlCatch( id->p_rtsp_url, HTTPD_MSG_PLAY, RtspCallbackId, (void*)id );
+ httpd_UrlCatch( id->p_rtsp_url, HTTPD_MSG_PAUSE, RtspCallbackId, (void*)id );
+ httpd_UrlCatch( id->p_rtsp_url, HTTPD_MSG_TEARDOWN, RtspCallbackId, (void*)id );
return VLC_EGENERIC;
}
httpd_UrlCatch( p_sys->p_rtsp_url, HTTPD_MSG_DESCRIBE, RtspCallback, (void*)p_stream );
return VLC_EGENERIC;
}
httpd_UrlCatch( p_sys->p_rtsp_url, HTTPD_MSG_DESCRIBE, RtspCallback, (void*)p_stream );
+ httpd_UrlCatch( p_sys->p_rtsp_url, HTTPD_MSG_SETUP, RtspCallback, (void*)p_stream );
httpd_UrlCatch( p_sys->p_rtsp_url, HTTPD_MSG_PLAY, RtspCallback, (void*)p_stream );
httpd_UrlCatch( p_sys->p_rtsp_url, HTTPD_MSG_PAUSE, RtspCallback, (void*)p_stream );
httpd_UrlCatch( p_sys->p_rtsp_url, HTTPD_MSG_TEARDOWN, RtspCallback, (void*)p_stream );
httpd_UrlCatch( p_sys->p_rtsp_url, HTTPD_MSG_PLAY, RtspCallback, (void*)p_stream );
httpd_UrlCatch( p_sys->p_rtsp_url, HTTPD_MSG_PAUSE, RtspCallback, (void*)p_stream );
httpd_UrlCatch( p_sys->p_rtsp_url, HTTPD_MSG_TEARDOWN, RtspCallback, (void*)p_stream );
answer->i_body = 0;
answer->p_body = NULL;
answer->i_body = 0;
answer->p_body = NULL;
+ if( httpd_MsgGet( query, "Require" ) != NULL )
+ answer->i_status = 551;
+ else
switch( query->i_type )
{
case HTTPD_MSG_DESCRIBE:
switch( query->i_type )
{
case HTTPD_MSG_DESCRIBE:
char *psz_sdp = SDPGenerate( p_stream, psz_destination ? psz_destination : "0.0.0.0", VLC_TRUE );
answer->i_status = 200;
char *psz_sdp = SDPGenerate( p_stream, psz_destination ? psz_destination : "0.0.0.0", VLC_TRUE );
answer->i_status = 200;
- httpd_MsgAdd( answer, "Content-type", "%s", "application/sdp" );
+ httpd_MsgAdd( answer, "Content-Type", "%s", "application/sdp" );
httpd_MsgAdd( answer, "Content-Base", "%s", p_sys->psz_rtsp_control );
answer->p_body = (uint8_t *)psz_sdp;
answer->i_body = strlen( psz_sdp );
break;
}
httpd_MsgAdd( answer, "Content-Base", "%s", p_sys->psz_rtsp_control );
answer->p_body = (uint8_t *)psz_sdp;
answer->i_body = strlen( psz_sdp );
break;
}
+ case HTTPD_MSG_SETUP:
+ answer->i_status = 459;
+ break;
+
case HTTPD_MSG_PLAY:
{
rtsp_client_t *rtsp;
case HTTPD_MSG_PLAY:
{
rtsp_client_t *rtsp;
- /* FIXME */
- return VLC_EGENERIC;
+ answer->i_status = 405;
+ httpd_MsgAdd( answer, "Allow", "DESCRIBE, PLAY, TEARDOWN" );
+ break;
+
case HTTPD_MSG_TEARDOWN:
{
rtsp_client_t *rtsp;
case HTTPD_MSG_TEARDOWN:
{
rtsp_client_t *rtsp;
answer->i_body = 0;
answer->p_body = NULL;
answer->i_body = 0;
answer->p_body = NULL;
+ if( httpd_MsgGet( query, "Require" ) != NULL )
+ answer->i_status = 551;
+ else
switch( query->i_type )
{
case HTTPD_MSG_SETUP:
switch( query->i_type )
{
case HTTPD_MSG_SETUP:
+ answer->i_status = 460;
+ break;
+