Tue, 06 May 2014 13:03:47 +0200
Backport warning fixes for libpurple from default
--- a/libpurple/media/backend-fs2.c Tue May 06 12:43:32 2014 +0200 +++ b/libpurple/media/backend-fs2.c Tue May 06 13:03:47 2014 +0200 @@ -179,6 +179,66 @@ purple_media_backend_fs2_init(PurpleMediaBackendFs2 *self) {} +static FsCandidateType +purple_media_candidate_type_to_fs(PurpleMediaCandidateType type) +{ + switch (type) { + case PURPLE_MEDIA_CANDIDATE_TYPE_HOST: + return FS_CANDIDATE_TYPE_HOST; + case PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX: + return FS_CANDIDATE_TYPE_SRFLX; + case PURPLE_MEDIA_CANDIDATE_TYPE_PRFLX: + return FS_CANDIDATE_TYPE_PRFLX; + case PURPLE_MEDIA_CANDIDATE_TYPE_RELAY: + return FS_CANDIDATE_TYPE_RELAY; + case PURPLE_MEDIA_CANDIDATE_TYPE_MULTICAST: + return FS_CANDIDATE_TYPE_MULTICAST; + } + g_return_val_if_reached(FS_CANDIDATE_TYPE_HOST); +} + +static PurpleMediaCandidateType +purple_media_candidate_type_from_fs(FsCandidateType type) +{ + switch (type) { + case FS_CANDIDATE_TYPE_HOST: + return PURPLE_MEDIA_CANDIDATE_TYPE_HOST; + case FS_CANDIDATE_TYPE_SRFLX: + return PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX; + case FS_CANDIDATE_TYPE_PRFLX: + return PURPLE_MEDIA_CANDIDATE_TYPE_PRFLX; + case FS_CANDIDATE_TYPE_RELAY: + return PURPLE_MEDIA_CANDIDATE_TYPE_RELAY; + case FS_CANDIDATE_TYPE_MULTICAST: + return PURPLE_MEDIA_CANDIDATE_TYPE_MULTICAST; + } + g_return_val_if_reached(PURPLE_MEDIA_CANDIDATE_TYPE_HOST); +} + +static FsNetworkProtocol +purple_media_network_protocol_to_fs(PurpleMediaNetworkProtocol protocol) +{ + switch (protocol) { + case PURPLE_MEDIA_NETWORK_PROTOCOL_UDP: + return FS_NETWORK_PROTOCOL_UDP; + case PURPLE_MEDIA_NETWORK_PROTOCOL_TCP: + return FS_NETWORK_PROTOCOL_TCP; + } + g_return_val_if_reached(FS_NETWORK_PROTOCOL_TCP); +} + +static PurpleMediaNetworkProtocol +purple_media_network_protocol_from_fs(FsNetworkProtocol protocol) +{ + switch (protocol) { + case FS_NETWORK_PROTOCOL_UDP: + return PURPLE_MEDIA_NETWORK_PROTOCOL_UDP; + case FS_NETWORK_PROTOCOL_TCP: + return PURPLE_MEDIA_NETWORK_PROTOCOL_TCP; + } + g_return_val_if_reached(PURPLE_MEDIA_NETWORK_PROTOCOL_TCP); +} + static gboolean event_probe_cb(GstPad *srcpad, GstEvent *event, gboolean release_pad) { @@ -522,8 +582,8 @@ NULL); fscandidate = fs_candidate_new(foundation, - component_id, type, - proto, ip, port); + component_id, purple_media_candidate_type_to_fs(type), + purple_media_network_protocol_to_fs(proto), ip, port); fscandidate->base_ip = base_ip; fscandidate->base_port = base_port; @@ -560,8 +620,10 @@ return NULL; candidate = purple_media_candidate_new(fscandidate->foundation, - fscandidate->component_id, fscandidate->type, - fscandidate->proto, fscandidate->ip, fscandidate->port); + fscandidate->component_id, + purple_media_candidate_type_from_fs(fscandidate->type), + purple_media_network_protocol_from_fs(fscandidate->proto), + fscandidate->ip, fscandidate->port); g_object_set(candidate, "base-ip", fscandidate->base_ip, "base-port", fscandidate->base_port, @@ -1855,7 +1917,9 @@ memset(&value, 0, sizeof(GValue)); g_value_init(&value, GST_TYPE_STRUCTURE); gst_value_set_structure(&value, turn_setup); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS relay_info = g_value_array_append(relay_info, &value); +G_GNUC_END_IGNORE_DEPRECATIONS gst_structure_free(turn_setup); } @@ -1950,7 +2014,9 @@ } if (turn_ip && !strcmp("nice", transmitter) && !got_turn_from_prpl) { +G_GNUC_BEGIN_IGNORE_DEPRECATIONS GValueArray *relay_info = g_value_array_new(0); +G_GNUC_END_IGNORE_DEPRECATIONS gint port; const gchar *username = purple_prefs_get_string( "/purple/network/turn_username"); @@ -1977,11 +2043,11 @@ purple_debug_info("backend-fs2", "Setting relay-info on new stream\n"); _params[_num_params].name = "relay-info"; - g_value_init(&_params[_num_params].value, - G_TYPE_VALUE_ARRAY); - g_value_set_boxed(&_params[_num_params].value, - relay_info); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + g_value_init(&_params[_num_params].value, G_TYPE_VALUE_ARRAY); + g_value_set_boxed(&_params[_num_params].value, relay_info); g_value_array_free(relay_info); +G_GNUC_END_IGNORE_DEPRECATIONS _num_params++; }
--- a/libpurple/plugins/ssl/ssl-gnutls.c Tue May 06 12:43:32 2014 +0200 +++ b/libpurple/plugins/ssl/ssl-gnutls.c Tue May 06 13:03:47 2014 +0200 @@ -34,7 +34,7 @@ typedef struct { - gnutls_session session; + gnutls_session_t session; guint handshake_handler; guint handshake_timer; } PurpleSslGnutlsData; @@ -284,9 +284,9 @@ g_list_free(peers); { - const gnutls_datum *cert_list; + const gnutls_datum_t *cert_list; unsigned int cert_list_size = 0; - gnutls_session session=gnutls_data->session; + gnutls_session_t session=gnutls_data->session; int i; cert_list = @@ -303,13 +303,13 @@ gchar tbuf[256]; gsize tsz=sizeof(tbuf); gchar * tasc = NULL; - gnutls_x509_crt cert; + gnutls_x509_crt_t cert; gnutls_x509_crt_init(&cert); gnutls_x509_crt_import (cert, &cert_list[i], GNUTLS_X509_FMT_DER); - gnutls_x509_crt_get_fingerprint(cert, GNUTLS_MAC_SHA, + gnutls_x509_crt_get_fingerprint(cert, GNUTLS_DIG_SHA, fpr_bin, &fpr_bin_sz); fpr_asc = @@ -386,7 +386,6 @@ ssl_gnutls_connect(PurpleSslConnection *gsc) { PurpleSslGnutlsData *gnutls_data; - static const int cert_type_priority[2] = { GNUTLS_CRT_X509, 0 }; gnutls_data = g_new0(PurpleSslGnutlsData, 1); gsc->private_data = gnutls_data; @@ -413,9 +412,6 @@ gnutls_set_default_priority(gnutls_data->session); #endif - gnutls_certificate_type_set_priority(gnutls_data->session, - cert_type_priority); - gnutls_credentials_set(gnutls_data->session, GNUTLS_CRD_CERTIFICATE, xcred); @@ -519,7 +515,7 @@ /* Forward declarations are fun! */ static PurpleCertificate * -x509_import_from_datum(const gnutls_datum dt, gnutls_x509_crt_fmt mode); +x509_import_from_datum(const gnutls_datum_t dt, gnutls_x509_crt_fmt_t mode); /* indeed! */ static gboolean x509_certificate_signed_by(PurpleCertificate * crt, @@ -537,7 +533,7 @@ GList * peer_certs = NULL; /* List of raw certificates as given by GnuTLS */ - const gnutls_datum *cert_list; + const gnutls_datum_t *cert_list; unsigned int cert_list_size = 0; unsigned int i; @@ -585,7 +581,7 @@ /** Refcounted GnuTLS certificate data instance */ typedef struct { gint refcount; - gnutls_x509_crt crt; + gnutls_x509_crt_t crt; } x509_crtdata_t; /** Helper functions for reference counting */ @@ -627,7 +623,7 @@ * @return A newly allocated Certificate structure of the x509_gnutls scheme */ static PurpleCertificate * -x509_import_from_datum(const gnutls_datum dt, gnutls_x509_crt_fmt mode) +x509_import_from_datum(const gnutls_datum_t dt, gnutls_x509_crt_fmt_t mode) { /* Internal certificate data structure */ x509_crtdata_t *certdat; @@ -662,7 +658,7 @@ PurpleCertificate *crt; /* Certificate being constructed */ gchar *buf; /* Used to load the raw file data */ gsize buf_sz; /* Size of the above */ - gnutls_datum dt; /* Struct to pass down to GnuTLS */ + gnutls_datum_t dt; /* Struct to pass down to GnuTLS */ purple_debug_info("gnutls", "Attempting to load X.509 certificate from %s\n", @@ -705,7 +701,7 @@ gchar *begin, *end; GSList *crts = NULL; gsize buf_sz; /* Size of the above */ - gnutls_datum dt; /* Struct to pass down to GnuTLS */ + gnutls_datum_t dt; /* Struct to pass down to GnuTLS */ purple_debug_info("gnutls", "Attempting to load X.509 certificates from %s\n", @@ -751,7 +747,7 @@ static gboolean x509_export_certificate(const gchar *filename, PurpleCertificate *crt) { - gnutls_x509_crt crt_dat; /* GnuTLS cert struct */ + gnutls_x509_crt_t crt_dat; /* GnuTLS cert struct */ int ret; gchar * out_buf; /* Data to output */ size_t out_size; /* Output size */ @@ -857,8 +853,8 @@ x509_certificate_signed_by(PurpleCertificate * crt, PurpleCertificate * issuer) { - gnutls_x509_crt crt_dat; - gnutls_x509_crt issuer_dat; + gnutls_x509_crt_t crt_dat; + gnutls_x509_crt_t issuer_dat; unsigned int verify; /* used to store result from GnuTLS verifier */ int ret; gchar *crt_id = NULL; @@ -963,7 +959,7 @@ { size_t hashlen = 20; /* SHA1 hashes are 20 bytes */ size_t tmpsz = hashlen; /* Throw-away variable for GnuTLS to stomp on*/ - gnutls_x509_crt crt_dat; + gnutls_x509_crt_t crt_dat; GByteArray *hash; /**< Final hash container */ guchar hashbuf[hashlen]; /**< Temporary buffer to contain hash */ @@ -973,7 +969,7 @@ /* Extract the fingerprint */ g_return_val_if_fail( - 0 == gnutls_x509_crt_get_fingerprint(crt_dat, GNUTLS_MAC_SHA, + 0 == gnutls_x509_crt_get_fingerprint(crt_dat, GNUTLS_DIG_SHA, hashbuf, &tmpsz), NULL); @@ -990,7 +986,7 @@ static gchar * x509_cert_dn (PurpleCertificate *crt) { - gnutls_x509_crt cert_dat; + gnutls_x509_crt_t cert_dat; gchar *dn = NULL; size_t dn_size; @@ -1023,7 +1019,7 @@ static gchar * x509_issuer_dn (PurpleCertificate *crt) { - gnutls_x509_crt cert_dat; + gnutls_x509_crt_t cert_dat; gchar *dn = NULL; size_t dn_size; @@ -1057,7 +1053,7 @@ static gchar * x509_common_name (PurpleCertificate *crt) { - gnutls_x509_crt cert_dat; + gnutls_x509_crt_t cert_dat; gchar *cn = NULL; size_t cn_size; int ret; @@ -1100,7 +1096,7 @@ static gboolean x509_check_name (PurpleCertificate *crt, const gchar *name) { - gnutls_x509_crt crt_dat; + gnutls_x509_crt_t crt_dat; g_return_val_if_fail(crt, FALSE); g_return_val_if_fail(crt->scheme == &x509_gnutls, FALSE); @@ -1118,7 +1114,7 @@ static gboolean x509_times (PurpleCertificate *crt, time_t *activation, time_t *expiration) { - gnutls_x509_crt crt_dat; + gnutls_x509_crt_t crt_dat; /* GnuTLS time functions return this on error */ const time_t errval = (time_t) (-1); gboolean success = TRUE;
--- a/libpurple/util.c Tue May 06 12:43:32 2014 +0200 +++ b/libpurple/util.c Tue May 06 13:03:47 2014 +0200 @@ -4646,7 +4646,11 @@ G_CONST_RETURN gchar * purple_gai_strerror(gint errnum) { +#if GLIB_CHECK_VERSION(2, 32, 0) + static GPrivate msg_private = G_PRIVATE_INIT(g_free); +#else static GStaticPrivate msg_private = G_STATIC_PRIVATE_INIT; +#endif char *msg; int saved_errno = errno; @@ -4674,11 +4678,19 @@ } } +#if GLIB_CHECK_VERSION(2, 32, 0) + msg = g_private_get(&msg_private); +#else msg = g_static_private_get(&msg_private); +#endif if (!msg) { msg = g_new(gchar, 64); +#if GLIB_CHECK_VERSION(2, 32, 0) + g_private_set(&msg_private, msg); +#else g_static_private_set(&msg_private, msg, g_free); +#endif } sprintf(msg, "unknown error (%d)", errnum);