Changeset e2133869a6dd73b22775d826729b6033131d98f3

Show
Ignore:
Timestamp:
05/04/08 13:33:19 (4 months ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1209900799 +0300
git-parent:

[ab95c5fa064411a759f64538b721c8443f5b733f]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1209900799 +0300
Message:

Factorize the gcrypt thread support

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/misc/gnutls.c

    r6da90a1 re213386  
    4747 
    4848 
    49 #include "vlc_tls.h" 
     49#include <vlc_tls.h> 
    5050#include <vlc_charset.h> 
    5151 
     
    5353#include <gnutls/gnutls.h> 
    5454#include <gnutls/x509.h> 
     55 
     56#include <vlc_gcrypt.h> 
    5557 
    5658#define CACHE_TIMEOUT     3600 
     
    102104vlc_module_end(); 
    103105 
    104  
    105  
    106 #ifdef LIBVLC_USE_PTHREAD 
    107 GCRY_THREAD_OPTION_PTHREAD_IMPL; 
    108 # define gcry_threads_vlc gcry_threads_pthread 
    109 #else 
    110 /** 
    111  * gcrypt thread option VLC implementation 
    112  */ 
    113  
    114 static int gcry_vlc_mutex_init( void **p_sys ) 
    115 { 
    116     int i_val; 
    117     vlc_mutex_t *p_lock = (vlc_mutex_t *)malloc( sizeof( vlc_mutex_t ) ); 
    118  
    119     if( p_lock == NULL) 
    120         return ENOMEM; 
    121  
    122     i_val = vlc_mutex_init( p_lock ); 
    123     if( i_val ) 
    124         free( p_lock ); 
    125     else 
    126         *p_sys = p_lock; 
    127     return i_val; 
    128 } 
    129  
    130 static int gcry_vlc_mutex_destroy( void **p_sys ) 
    131 { 
    132     vlc_mutex_t *p_lock = (vlc_mutex_t *)*p_sys; 
    133     vlc_mutex_destroy( p_lock ); 
    134     free( p_lock ); 
    135     return VLC_SUCCESS; 
    136 } 
    137  
    138 static int gcry_vlc_mutex_lock( void **p_sys ) 
    139 { 
    140     vlc_mutex_lock( (vlc_mutex_t *)*p_sys ); 
    141     return VLC_SUCCESS; 
    142 } 
    143  
    144 static int gcry_vlc_mutex_unlock( void **lock ) 
    145 { 
    146     vlc_mutex_unlock( (vlc_mutex_t *)*lock ); 
    147     return VLC_SUCCESS; 
    148 } 
    149  
    150 static struct gcry_thread_cbs gcry_threads_vlc = 
    151 { 
    152     GCRY_THREAD_OPTION_USER, 
    153     NULL, 
    154     gcry_vlc_mutex_init, 
    155     gcry_vlc_mutex_destroy, 
    156     gcry_vlc_mutex_lock, 
    157     gcry_vlc_mutex_unlock 
    158 }; 
    159 #endif 
    160  
    161  
    162106/** 
    163107 * Initializes GnuTLS with proper locking. 
     
    168112    int ret = VLC_EGENERIC; 
    169113 
     114    vlc_gcrypt_init (); /* GnuTLS depends on gcrypt */ 
     115 
    170116    vlc_mutex_t *lock = var_AcquireMutex ("gnutls_mutex"); 
    171  
    172     gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_vlc); 
    173117    if (gnutls_global_init ()) 
    174118    { 
  • src/Makefile.am

    r9ddd88e re213386  
    7474    ../include/vlc_filter.h \ 
    7575    ../include/vlc_fixups.h \ 
     76    ../include/vlc_gcrypt.h \ 
    7677    ../include/vlc_httpd.h \ 
    7778    ../include/vlc_image.h \