X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fmisc%2Flua%2Fintf.c;h=3fea2731d0108ffd1ef6307849cb9d640e4b5fec;hb=2ab3934faa8de2f5a4ced403d16f82e0bc1a37bb;hp=1ceca46551fe0b26f09401a491ec5dca279b9c3f;hpb=30aaaa4a200013a270ce89beadd88bc31a3bb4b8;p=vlc diff --git a/modules/misc/lua/intf.c b/modules/misc/lua/intf.c index 1ceca46551..3fea2731d0 100644 --- a/modules/misc/lua/intf.c +++ b/modules/misc/lua/intf.c @@ -36,7 +36,6 @@ #include #include -#include #include #include #include @@ -78,7 +77,7 @@ static const struct { "luatelnet", "telnet" }, { "telnet", "telnet" }, { "luahttp", "http" }, - { "http", "http" }, + /* { "http", "http" }, */ { NULL, NULL } }; static const char *WordInList( const char *psz_list, const char *psz_word ) @@ -213,8 +212,82 @@ int Open_LuaIntf( vlc_object_t *p_this ) goto error; } - psz_config = var_CreateGetString( p_intf, "lua-config" ); - if( psz_config && *psz_config ) + /* + * Get the lua-config string. + * If the string is empty, try with the old http-* or telnet-* options + * and build the right configuration line + */ + psz_config = var_CreateGetNonEmptyString( p_intf, "lua-config" ); + if( !psz_config ) + { + if( !strcmp( psz_name, "http" ) ) + { + char *psz_http_host = var_CreateGetNonEmptyString( p_intf, "http-host" ); + char *psz_http_src = var_CreateGetNonEmptyString( p_intf, "http-src" ); + bool b_http_index = var_CreateGetBool( p_intf, "http-index" ); + if( psz_http_host ) + { + char *psz_esc = config_StringEscape( psz_http_host ); + asprintf( &psz_config, "http={host='%s'", psz_esc ); + free( psz_esc ); + free( psz_http_host ); + } + if( psz_http_src ) + { + char *psz_esc = config_StringEscape( psz_http_src ); + if( psz_config ) + { + char *psz_tmp; + asprintf( &psz_tmp, "%s,dir='%s'", psz_config, psz_esc ); + free( psz_config ); + psz_config = psz_tmp; + } + else + asprintf( &psz_config, "http={dir='%s'", psz_esc ); + free( psz_esc ); + free( psz_http_src ); + } + if( psz_config ) + { + char *psz_tmp; + asprintf( &psz_tmp, "%s,no_index=%s}", psz_config, b_http_index ? "true" : "false" ); + free( psz_config ); + psz_config = psz_tmp; + } + else + asprintf( &psz_config, "http={no_index=%s}", b_http_index ? "true" : "false" ); + } + else if( !strcmp( psz_name, "telnet" ) ) + { + char *psz_telnet_host = var_CreateGetString( p_intf, "telnet-host" ); + int i_telnet_port = var_CreateGetInteger( p_intf, "telnet-port" ); + char *psz_telnet_passwd = var_CreateGetString( p_intf, "telnet-password" ); + + char *psz_esc_host = config_StringEscape( psz_telnet_host ); + char *psz_esc_passwd = config_StringEscape( psz_telnet_passwd ); + + asprintf( &psz_config, "telnet={host='%s:%d',password='%s'}", psz_esc_host ? psz_esc_host : "", i_telnet_port, psz_esc_passwd ); + + free( psz_esc_host ); + free( psz_esc_passwd ); + free( psz_telnet_passwd ); + free( psz_telnet_host ); + } + else if( !strcmp( psz_name, "rc" ) ) + { + char *psz_rc_host = var_CreateGetNonEmptyString( p_intf, "rc-host" ); + if( psz_rc_host ) + { + char *psz_esc_host = config_StringEscape( psz_rc_host ); + asprintf( &psz_config, "rc={host='%s'}", psz_esc_host ); + + free( psz_esc_host ); + free( psz_rc_host ); + } + } + } + + if( psz_config ) { char *psz_buffer; if( asprintf( &psz_buffer, "config={%s}", psz_config ) != -1 ) @@ -234,8 +307,8 @@ int Open_LuaIntf( vlc_object_t *p_this ) } } } + free( psz_config ); } - free( psz_config ); if( b_config_set == false ) {