[vlc-commits] lua telnet: handle <host>:<port> syntax

Pierre Ynard git at videolan.org
Mon Feb 14 00:48:46 CET 2011


vlc | branch: master | Pierre Ynard <linkfanel at yahoo.fr> | Mon Feb 14 00:47:00 2011 +0100| [553bc045d86a45559469e854a7855a0735fee951] | committer: Pierre Ynard

lua telnet: handle <host>:<port> syntax

That's what the old interface did

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=553bc045d86a45559469e854a7855a0735fee951
---

 modules/misc/lua/intf.c |   13 ++++++++++++-
 modules/misc/lua/vlc.c  |    1 -
 modules/misc/lua/vlc.h  |    1 +
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/modules/misc/lua/intf.c b/modules/misc/lua/intf.c
index 6b283a4..31508a9 100644
--- a/modules/misc/lua/intf.c
+++ b/modules/misc/lua/intf.c
@@ -262,10 +262,20 @@ int Open_LuaIntf( vlc_object_t *p_this )
         else if( !strcmp( psz_name, "telnet" ) )
         {
             char *psz_telnet_host = var_CreateGetString( p_intf, "telnet-host" );
+            vlc_url_t url;
+            vlc_UrlParse( &url, psz_telnet_host, 0 );
             int i_telnet_port = var_CreateGetInteger( p_intf, "telnet-port" );
+            if ( url.i_port != 0 )
+            {
+                if ( i_telnet_port == TELNETPORT_DEFAULT )
+                    i_telnet_port = url.i_port;
+                else if ( url.i_port != i_telnet_port )
+                    msg_Warn( p_intf, "ignoring port %d (using %d)", url.i_port, i_telnet_port );
+            }
+
             char *psz_telnet_passwd = var_CreateGetString( p_intf, "telnet-password" );
 
-            char *psz_esc_host = config_StringEscape( psz_telnet_host );
+            char *psz_esc_host = config_StringEscape( url.psz_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 );
@@ -274,6 +284,7 @@ int Open_LuaIntf( vlc_object_t *p_this )
             free( psz_esc_passwd );
             free( psz_telnet_passwd );
             free( psz_telnet_host );
+            vlc_UrlClean( &url );
         }
         else if( !strcmp( psz_name, "rc" ) )
         {
diff --git a/modules/misc/lua/vlc.c b/modules/misc/lua/vlc.c
index 4056ff3..d698b08 100644
--- a/modules/misc/lua/vlc.c
+++ b/modules/misc/lua/vlc.c
@@ -78,7 +78,6 @@
 #define TELNETPORT_TEXT N_( "Port" )
 #define TELNETPORT_LONGTEXT N_( "This is the TCP port on which this " \
     "interface will listen. It defaults to 4212." )
-#define TELNETPORT_DEFAULT 4212
 #define TELNETPWD_TEXT N_( "Password" )
 #define TELNETPWD_LONGTEXT N_( "A single administration password is used " \
     "to protect this interface. The default value is \"admin\"." )
diff --git a/modules/misc/lua/vlc.h b/modules/misc/lua/vlc.h
index 4e1ee04..0d214f0 100644
--- a/modules/misc/lua/vlc.h
+++ b/modules/misc/lua/vlc.h
@@ -50,6 +50,7 @@ int FindArt( vlc_object_t * );
 int Import_LuaPlaylist( vlc_object_t * );
 void Close_LuaPlaylist( vlc_object_t * );
 
+#define TELNETPORT_DEFAULT 4212
 int Open_LuaIntf( vlc_object_t * );
 void Close_LuaIntf( vlc_object_t * );
 



More information about the vlc-commits mailing list