[vlc-commits] create cookies storage on libvlcmediaplayer

Francois Cartegnie git at videolan.org
Fri Jan 19 19:03:43 CET 2018


vlc/vlc-3.0 | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue Jan 16 21:56:33 2018 +0100| [d427a9f90fb866ffd045961c62caabd597badb2a] | committer: Jean-Baptiste Kempf

create cookies storage on libvlcmediaplayer

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
(cherry picked from commit cda6b57532bdea98e0ccffa8ff622919b96dba03)
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

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

 lib/media_player.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/lib/media_player.c b/lib/media_player.c
index 6e00a4547f..a9a22fee15 100644
--- a/lib/media_player.c
+++ b/lib/media_player.c
@@ -36,6 +36,7 @@
 #include <vlc_vout.h>
 #include <vlc_aout.h>
 #include <vlc_actions.h>
+#include <vlc_http.h>
 
 #include "libvlc_internal.h"
 #include "media_internal.h" // libvlc_media_set_state()
@@ -724,6 +725,15 @@ libvlc_media_player_new( libvlc_instance_t *instance )
     var_Create (mp, "equalizer-vlcfreqs", VLC_VAR_BOOL);
     var_Create (mp, "equalizer-bands", VLC_VAR_STRING);
 
+    /* Initialize the shared HTTP cookie jar */
+    vlc_value_t cookies;
+    cookies.p_address = vlc_http_cookies_new();
+    if ( likely(cookies.p_address) )
+    {
+        var_Create(mp, "http-cookies", VLC_VAR_ADDRESS);
+        var_SetChecked(mp, "http-cookies", VLC_VAR_ADDRESS, cookies);
+    }
+
     mp->p_md = NULL;
     mp->state = libvlc_NothingSpecial;
     mp->p_libvlc_instance = instance;
@@ -818,6 +828,13 @@ static void libvlc_media_player_destroy( libvlc_media_player_t *p_mi )
     libvlc_media_release( p_mi->p_md );
     vlc_mutex_destroy( &p_mi->object_lock );
 
+    vlc_http_cookie_jar_t *cookies = var_GetAddress( p_mi, "http-cookies" );
+    if ( cookies )
+    {
+        var_Destroy( p_mi, "http-cookies" );
+        vlc_http_cookies_destroy( cookies );
+    }
+
     libvlc_instance_t *instance = p_mi->p_libvlc_instance;
     vlc_object_release( p_mi );
     libvlc_release(instance);



More information about the vlc-commits mailing list