diff options
Diffstat (limited to 'extra/glib-networking')
-rw-r--r-- | extra/glib-networking/PKGBUILD | 11 | ||||
-rw-r--r-- | extra/glib-networking/fix_G_TLS_ERROR_EOF_handling.patch | 73 |
2 files changed, 80 insertions, 4 deletions
diff --git a/extra/glib-networking/PKGBUILD b/extra/glib-networking/PKGBUILD index d6f4c744e..42253c635 100644 --- a/extra/glib-networking/PKGBUILD +++ b/extra/glib-networking/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 135780 2011-08-18 15:04:08Z andyrtr $ +# $Id: PKGBUILD 138109 2011-09-16 18:27:00Z ibiru $ # Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com> pkgname=glib-networking pkgver=2.28.7 -pkgrel=4 +pkgrel=5 pkgdesc="Network-related giomodules for glib" arch=('i686' 'x86_64') url="http://www.gtk.org/" @@ -12,13 +12,16 @@ makedepends=('intltool') options=('!libtool') install=glib-networking.install source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.bz2 - glib-networking-2.29.9-port-gnutls3-API.patch) + glib-networking-2.29.9-port-gnutls3-API.patch + fix_G_TLS_ERROR_EOF_handling.patch) sha256sums=('98bedfbd530c4b1b53c91025fe82290bafd289d249e4eb549c3b90d23a76021c' - '101daf107773f84d08d7ab55a354875e2e021c3b5dd3cdc259fb544f94a8beee') + '101daf107773f84d08d7ab55a354875e2e021c3b5dd3cdc259fb544f94a8beee' + '286d64a121cb987866b51af70f55d47bafc5bf60e813aa1412dce51e426cc553') build() { cd "$srcdir/$pkgname-$pkgver" patch -Np0 -i "$srcdir/glib-networking-2.29.9-port-gnutls3-API.patch" + patch -Np1 -i "$srcdir/fix_G_TLS_ERROR_EOF_handling.patch" ./configure \ --prefix=/usr --sysconfdir=/etc \ --libexecdir=/usr/lib/glib-networking --disable-static diff --git a/extra/glib-networking/fix_G_TLS_ERROR_EOF_handling.patch b/extra/glib-networking/fix_G_TLS_ERROR_EOF_handling.patch new file mode 100644 index 000000000..c26f422aa --- /dev/null +++ b/extra/glib-networking/fix_G_TLS_ERROR_EOF_handling.patch @@ -0,0 +1,73 @@ +From 9e2aaacafb45d51cff57dc033f4b5ad5bc1a1762 Mon Sep 17 00:00:00 2001 +From: Dan Winship <danw@gnome.org> +Date: Fri, 16 Sep 2011 15:29:29 +0000 +Subject: gnutls: fix G_TLS_ERROR_EOF handling with gnutls 3.0 + +gnutls 3.0 has a new error code for "peer closed connection without +sending a Close packet", so add some #ifdefs to do the right thing +with either 2.x or 3.x. + +https://bugzilla.gnome.org/show_bug.cgi?id=659233 +--- +diff --git a/tls/gnutls/gtlsconnection-gnutls.c b/tls/gnutls/gtlsconnection-gnutls.c +index c1ede79..0f792bb 100644 +--- a/tls/gnutls/gtlsconnection-gnutls.c ++++ b/tls/gnutls/gtlsconnection-gnutls.c +@@ -132,7 +132,10 @@ struct _GTlsConnectionGnutlsPrivate + + GError *error; + GCancellable *cancellable; +- gboolean blocking, eof; ++ gboolean blocking; ++#ifndef GNUTLS_E_PREMATURE_TERMINATION ++ gboolean eof; ++#endif + GIOCondition internal_direction; + }; + +@@ -548,19 +551,22 @@ end_gnutls_io (GTlsConnectionGnutls *gnutls, + gnutls->priv->need_handshake = TRUE; + return status; + } +- else if (status == GNUTLS_E_UNEXPECTED_PACKET_LENGTH) ++ else if ( ++#ifdef GNUTLS_E_PREMATURE_TERMINATION ++ status == GNUTLS_E_PREMATURE_TERMINATION ++#else ++ status == GNUTLS_E_UNEXPECTED_PACKET_LENGTH && gnutls->priv->eof ++#endif ++ ) + { +- if (gnutls->priv->eof) ++ if (gnutls->priv->require_close_notify) + { +- if (gnutls->priv->require_close_notify) +- { +- g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_EOF, +- _("TLS connection closed unexpectedly")); +- return status; +- } +- else +- return 0; ++ g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_EOF, ++ _("TLS connection closed unexpectedly")); ++ return status; + } ++ else ++ return 0; + } + + return status; +@@ -795,8 +801,10 @@ g_tls_connection_gnutls_pull_func (gnutls_transport_ptr_t transport_data, + + if (ret < 0) + set_gnutls_error (gnutls, G_IO_IN); ++#ifndef GNUTLS_E_PREMATURE_TERMINATION + else if (ret == 0) + gnutls->priv->eof = TRUE; ++#endif + + return ret; + } +-- +cgit v0.9.0.2 |