#endif
#endif
-#include "vlc_httpd.h"
+#include <vlc_httpd.h>
#define DEFAULT_PORT 8080
#define DEFAULT_SSL_PORT 8443
set_description( N_("HTTP stream output") )
set_capability( "sout access", 0 )
set_shortname( "HTTP" )
- add_shortcut( "http" )
- add_shortcut( "https" )
- add_shortcut( "mmsh" )
+ add_shortcut( "http", "https", "mmsh" )
set_category( CAT_SOUT )
set_subcategory( SUBCAT_SOUT_ACO )
add_string( SOUT_CFG_PREFIX "user", "", NULL,
char *psz_bind_addr;
int i_bind_port;
char *psz_file_name;
- char *psz_user = NULL;
- char *psz_pwd = NULL;
- char *psz_mime = NULL;
+ char *psz_user;
+ char *psz_pwd;
+ char *psz_mime;
char *psz_cert = NULL, *psz_key = NULL, *psz_ca = NULL,
*psz_crl = NULL;
- vlc_value_t val;
if( !( p_sys = p_access->p_sys =
malloc( sizeof( sout_access_out_sys_t ) ) ) )
config_ChainParse( p_access, SOUT_CFG_PREFIX, ppsz_sout_options, p_access->p_cfg );
/* p_access->psz_path = "hostname:port/filename" */
- psz_bind_addr = psz_parser = strdup( p_access->psz_path );
+ psz_bind_addr = strdup( p_access->psz_path );
i_bind_port = 0;
/* SSL support */
if( p_access->psz_access && !strcmp( p_access->psz_access, "https" ) )
{
- psz_cert = config_GetPsz( p_this, SOUT_CFG_PREFIX"cert" );
- psz_key = config_GetPsz( p_this, SOUT_CFG_PREFIX"key" );
- psz_ca = config_GetPsz( p_this, SOUT_CFG_PREFIX"ca" );
- psz_crl = config_GetPsz( p_this, SOUT_CFG_PREFIX"crl" );
+ psz_cert = var_CreateGetNonEmptyString( p_this, SOUT_CFG_PREFIX"cert" );
+ psz_key = var_CreateGetNonEmptyString( p_this, SOUT_CFG_PREFIX"key" );
+ psz_ca = var_CreateGetNonEmptyString( p_this, SOUT_CFG_PREFIX"ca" );
+ psz_crl = var_CreateGetNonEmptyString( p_this, SOUT_CFG_PREFIX"crl" );
if( i_bind_port <= 0 )
i_bind_port = DEFAULT_SSL_PORT;
}
free( psz_parser );
+ psz_user = var_GetNonEmptyString( p_access, SOUT_CFG_PREFIX "user" );
+ psz_pwd = var_GetNonEmptyString( p_access, SOUT_CFG_PREFIX "pwd" );
if( p_access->psz_access && !strcmp( p_access->psz_access, "mmsh" ) )
{
psz_mime = strdup( "video/x-ms-asf-stream" );
}
else
{
- var_Get( p_access, SOUT_CFG_PREFIX "mime", &val );
- if( *val.psz_string )
- psz_mime = val.psz_string;
- else
- free( val.psz_string );
+ psz_mime = var_GetNonEmptyString( p_access, SOUT_CFG_PREFIX "mime" );
}
- var_Get( p_access, SOUT_CFG_PREFIX "user", &val );
- if( *val.psz_string )
- psz_user = val.psz_string;
- else
- free( val.psz_string );
-
- var_Get( p_access, SOUT_CFG_PREFIX "pwd", &val );
- if( *val.psz_string )
- psz_pwd = val.psz_string;
- else
- free( val.psz_string );
-
p_sys->p_httpd_stream =
httpd_StreamNew( p_sys->p_httpd_host, psz_file_name, psz_mime,
psz_user, psz_pwd, NULL );
}
#if 0 //def HAVE_AVAHI_CLIENT
- if( config_GetInt(p_this, SOUT_CFG_PREFIX "bonjour") )
+ if( var_InheritBool(p_this, SOUT_CFG_PREFIX "bonjour") )
{
char *psz_txt, *psz_name;
- playlist_t *p_playlist = pl_Hold( p_access );
+ playlist_t *p_playlist = pl_Get( p_access );
char *psz_uri = input_item_GetURI( p_playlist->status.p_item->p_input );
char *psz_newuri = psz_uri;
if( psz_file_name &&
asprintf( &psz_txt, "path=%s", psz_file_name ) == -1 )
{
- pl_Release( p_access );
free( psz_uri );
return VLC_ENOMEM;
}
if( p_sys->p_bonjour == NULL )
msg_Err( p_access, "unable to start requested Bonjour announce" );
- pl_Release( p_access );
}
else
p_sys->p_bonjour = NULL;
p_sys->i_header_allocated = 1024;
p_sys->i_header_size = 0;
- p_sys->p_header = malloc( p_sys->i_header_allocated );
+ p_sys->p_header = xmalloc( p_sys->i_header_allocated );
p_sys->b_header_complete = false;
p_access->pf_write = Write;
{
p_sys->i_header_allocated =
p_buffer->i_buffer + p_sys->i_header_size + 1024;
- p_sys->p_header =
- realloc( p_sys->p_header, p_sys->i_header_allocated );
+ p_sys->p_header = xrealloc( p_sys->p_header,
+ p_sys->i_header_allocated );
}
memcpy( &p_sys->p_header[p_sys->i_header_size],
p_buffer->p_buffer,