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

Pierre Ynard git at videolan.org
Mon Feb 14 04:02:17 CET 2011


vlc/vlc-1.1 | branch: master | Pierre Ynard <linkfanel at yahoo.fr> | Mon Feb 14 00:47:00 2011 +0100| [58dcc8222bfc10a9de7a876cf17bc9b7708c9d52] | committer: Pierre Ynard

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

That's what the old interface did
(cherry picked from commit 553bc045d86a45559469e854a7855a0735fee951)

Signed-off-by: Pierre Ynard <linkfanel at yahoo.fr>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=58dcc8222bfc10a9de7a876cf17bc9b7708c9d52
---

 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 7ff18e5..fc1833f 100644
--- a/modules/misc/lua/intf.c
+++ b/modules/misc/lua/intf.c
@@ -263,10 +263,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 );
@@ -275,6 +285,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 88bc941..d3e4c12 100644
--- a/modules/misc/lua/vlc.c
+++ b/modules/misc/lua/vlc.c
@@ -77,7 +77,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 71dfcc7..a2221d4 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