vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sat Nov 10 11:13:37 2018 +0200| [016e42bc0daff9943ff14fb953165cdfd2be8fde] | committer: Rémi Denis-Courmont
mmsh: use transport stream functions > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=016e42bc0daff9943ff14fb953165cdfd2be8fde --- modules/access/mms/mmsh.c | 54 ++++++++++++++++++++++++----------------------- modules/access/mms/mmsh.h | 2 +- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/modules/access/mms/mmsh.c b/modules/access/mms/mmsh.c index c134680960..a3788fa931 100644 --- a/modules/access/mms/mmsh.c +++ b/modules/access/mms/mmsh.c @@ -34,7 +34,7 @@ #include <vlc_strings.h> #include <vlc_input.h> -#include <vlc_network.h> +#include <vlc_tls.h> #include <vlc_url.h> #include <vlc_memstream.h> #include "asf.h" @@ -84,7 +84,7 @@ int MMSHOpen( stream_t *p_access ) p_access->p_sys = p_sys; p_sys->i_proto= MMS_PROTO_HTTP; - p_sys->fd = -1; + p_sys->stream = NULL; p_sys->i_position = 0; /* Handle proxy */ @@ -528,8 +528,9 @@ static int OpenConnection( stream_t *p_access, if( vlc_memstream_close( stream ) ) return VLC_ENOMEM; - int fd = net_ConnectTCP( p_access, srv->psz_host, srv->i_port ); - if( fd < 0 ) + vlc_tls_t *sock = vlc_tls_SocketOpenTCP( VLC_OBJECT(p_access), + srv->psz_host, srv->i_port ); + if( sock == NULL ) { free( stream->ptr ); return VLC_EGENERIC; @@ -537,17 +538,17 @@ static int OpenConnection( stream_t *p_access, msg_Dbg( p_access, "sending request:\n%s", stream->ptr ); - ssize_t val = net_Write( p_access, fd, stream->ptr, stream->length ); + ssize_t val = vlc_tls_Write( sock, stream->ptr, stream->length ); free( stream->ptr ); if( val < (ssize_t)stream->length ) { msg_Err( p_access, "failed to send request" ); - net_Close( fd ); - fd = -1; + vlc_tls_Close( sock ); + stream = NULL; } - p_sys->fd = fd; - return (fd >= 0) ? VLC_SUCCESS : VLC_EGENERIC; + p_sys->stream = sock; + return (sock != NULL) ? VLC_SUCCESS : VLC_EGENERIC; } /***************************************************************************** @@ -585,7 +586,7 @@ static int Describe( stream_t *p_access, char **ppsz_location ) return VLC_EGENERIC; /* Receive the http header */ - char *psz = net_Gets( p_access, p_sys->fd ); + char *psz = vlc_tls_GetLine( p_sys->stream ); if( psz == NULL ) { msg_Err( p_access, "failed to read answer" ); @@ -610,7 +611,7 @@ static int Describe( stream_t *p_access, char **ppsz_location ) free( psz ); for( ;; ) { - psz = net_Gets( p_access, p_sys->fd ); + psz = vlc_tls_GetLine( p_sys->stream ); if( psz == NULL ) { @@ -689,7 +690,8 @@ static int Describe( stream_t *p_access, char **ppsz_location ) psz_location ) { msg_Dbg( p_access, "redirection to %s", psz_location ); - net_Close( p_sys->fd ); p_sys->fd = -1; + vlc_tls_Close( p_sys->stream ); + p_sys->stream = NULL; *ppsz_location = psz_location; return VLC_SUCCESS; @@ -704,8 +706,8 @@ static int Describe( stream_t *p_access, char **ppsz_location ) goto error; } /* close this connection */ - net_Close( p_sys->fd ); - p_sys->fd = -1; + vlc_tls_Close( p_sys->stream ); + p_sys->stream = NULL; /* *** parse header and get stream and their id *** */ /* get all streams properties, @@ -729,10 +731,10 @@ static int Describe( stream_t *p_access, char **ppsz_location ) return VLC_SUCCESS; error: - if( p_sys->fd >= 0 ) + if( p_sys->stream != NULL ) { - net_Close( p_sys->fd ); - p_sys->fd = -1; + vlc_tls_Close( p_sys->stream ); + p_sys->stream = NULL; } return VLC_EGENERIC; } @@ -825,7 +827,7 @@ static int Start( stream_t *p_access, uint64_t i_pos ) if( OpenConnection( p_access, &stream ) ) return VLC_EGENERIC; - char *psz = net_Gets( p_access, p_sys->fd ); + char *psz = vlc_tls_GetLine( p_sys->stream ); if( psz == NULL ) { msg_Err( p_access, "cannot read data 0" ); @@ -844,7 +846,7 @@ static int Start( stream_t *p_access, uint64_t i_pos ) /* FIXME check HTTP code */ for( ;; ) { - psz = net_Gets( p_access, p_sys->fd ); + psz = vlc_tls_GetLine( p_sys->stream ); if( psz == NULL ) { msg_Err( p_access, "cannot read data 1" ); @@ -873,10 +875,10 @@ static void Stop( stream_t *p_access ) access_sys_t *p_sys = p_access->p_sys; msg_Dbg( p_access, "closing stream" ); - if( p_sys->fd >= 0 ) + if( p_sys->stream != NULL ) { - net_Close( p_sys->fd ); - p_sys->fd = -1; + vlc_tls_Close( p_sys->stream ); + p_sys->stream = NULL; } } @@ -897,7 +899,7 @@ static int GetPacket( stream_t * p_access, chunk_t *p_ck ) * (4 bytes), decode and then read up to 8 additional bytes to get the * entire header. */ - if( net_Read( p_access, p_sys->fd, p_sys->buffer, 4 ) < 4 ) + if( vlc_tls_Read( p_sys->stream, p_sys->buffer, 4, true ) < 4 ) { msg_Err( p_access, "cannot read data 2" ); return VLC_EGENERIC; @@ -910,7 +912,7 @@ static int GetPacket( stream_t * p_access, chunk_t *p_ck ) if( restsize > 8 ) restsize = 8; - if( net_Read( p_access, p_sys->fd, p_sys->buffer + 4, restsize ) < restsize ) + if( vlc_tls_Read( p_sys->stream, p_sys->buffer + 4, restsize, true ) < restsize ) { msg_Err( p_access, "cannot read data 3" ); return VLC_EGENERIC; @@ -961,8 +963,8 @@ static int GetPacket( stream_t * p_access, chunk_t *p_ck ) } if( (p_ck->i_data > 0) && - (net_Read( p_access, p_sys->fd, &p_sys->buffer[12], - p_ck->i_data ) < p_ck->i_data) ) + (vlc_tls_Read( p_sys->stream, &p_sys->buffer[12], p_ck->i_data, + true ) < p_ck->i_data) ) { msg_Err( p_access, "cannot read data 4" ); return VLC_EGENERIC; diff --git a/modules/access/mms/mmsh.h b/modules/access/mms/mmsh.h index b65ae71434..3a8666cf81 100644 --- a/modules/access/mms/mmsh.h +++ b/modules/access/mms/mmsh.h @@ -44,7 +44,7 @@ typedef struct { int i_proto; - int fd; + struct vlc_tls *stream; vlc_url_t url; bool b_proxy; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
