[vlc-commits] commit: Add a proper API to set the user agent ( Rémi Denis-Courmont )

git at videolan.org git at videolan.org
Thu Jul 8 21:46:08 CEST 2010


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Jul  8 22:45:43 2010 +0300| [23e9390b27858429c398a4328d8ba51ada6dbe00] | committer: Rémi Denis-Courmont 

Add a proper API to set the user agent

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

 bin/vlc.c            |    2 ++
 include/vlc/libvlc.h |   13 +++++++++++++
 src/control/core.c   |   11 +++++++++++
 src/libvlc.c         |    4 +++-
 src/libvlc.sym       |    1 +
 5 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/bin/vlc.c b/bin/vlc.c
index ef3a4b5..052d3df 100644
--- a/bin/vlc.c
+++ b/bin/vlc.c
@@ -198,6 +198,8 @@ int main( int i_argc, const char *ppsz_argv[] )
     if (vlc == NULL)
         goto out;
 
+     libvlc_set_user_agent (vlc, "VLC media player", "VLC/"VERSION);
+
 #if !defined (HAVE_MAEMO) && !defined __APPLE__
     libvlc_add_intf (vlc, "globalhotkeys,none");
 #endif
diff --git a/include/vlc/libvlc.h b/include/vlc/libvlc.h
index d4151eb..36b263f 100644
--- a/include/vlc/libvlc.h
+++ b/include/vlc/libvlc.h
@@ -172,6 +172,19 @@ VLC_PUBLIC_API
 void libvlc_wait( libvlc_instance_t *p_instance );
 
 /**
+ * Sets the application name. LibVLC passes this as the user agent string
+ * when a protocol requires it.
+ *
+ * \param p_instance LibVLC instance
+ * \param name human-readable application name, e.g. "FooBar player 1.2.3"
+ * \param http HTTP User Agent, e.g. "FooBar/1.2.3 Python/2.6.0"
+ * \version LibVLC 1.1.1 or later
+ */
+VLC_PUBLIC_API
+void libvlc_set_user_agent( libvlc_instance_t *p_instance,
+                            const char *name, const char *http );
+
+/**
  * Retrieve libvlc version.
  *
  * Example: "1.1.0-git The Luggage"
diff --git a/src/control/core.c b/src/control/core.c
index 54e2fd0..df45a4c 100644
--- a/src/control/core.c
+++ b/src/control/core.c
@@ -69,6 +69,8 @@ libvlc_instance_t * libvlc_new( int argc, const char *const *argv )
     p_new->verbosity = 1;
     p_new->p_callback_list = NULL;
     vlc_mutex_init(&p_new->instance_lock);
+    var_Create( p_libvlc_int, "http-user-agent",
+                VLC_VAR_STRING|VLC_VAR_DOINHERIT );
     return p_new;
 
 error:
@@ -127,6 +129,15 @@ void libvlc_wait( libvlc_instance_t *p_i )
     libvlc_InternalWait( p_libvlc );
 }
 
+void libvlc_set_user_agent (libvlc_instance_t *p_i,
+                            const char *name, const char *http)
+{
+    libvlc_int_t *p_libvlc = p_i->p_libvlc_int;
+
+    var_SetString (p_libvlc, "user-agent", name);
+    var_SetString (p_libvlc, "http-user-agent", http);
+}
+
 const char * libvlc_get_version(void)
 {
     return VLC_Version();
diff --git a/src/libvlc.c b/src/libvlc.c
index 2f4a6a9..1349eb6 100644
--- a/src/libvlc.c
+++ b/src/libvlc.c
@@ -761,8 +761,10 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     var_Create( p_libvlc, "snapshot-file", VLC_VAR_STRING );
     var_Create( p_libvlc, "record-file", VLC_VAR_STRING );
 
-    /* vout window provider */
+    /* some default internal settings */
     var_Create( p_libvlc, "window", VLC_VAR_STRING );
+    var_Create( p_libvlc, "user-agent", VLC_VAR_STRING );
+    var_SetString( p_libvlc, "user-agent", "(LibVLC "VERSION")" );
 
     /* Initialize playlist and get commandline files */
     p_playlist = playlist_Create( VLC_OBJECT(p_libvlc) );
diff --git a/src/libvlc.sym b/src/libvlc.sym
index fa92d46..0148c11 100644
--- a/src/libvlc.sym
+++ b/src/libvlc.sym
@@ -160,6 +160,7 @@ libvlc_release
 libvlc_retain
 libvlc_set_fullscreen
 libvlc_set_log_verbosity
+libvlc_set_user_agent
 libvlc_toggle_fullscreen
 libvlc_toggle_teletext
 libvlc_track_description_release



More information about the vlc-commits mailing list