summaryrefslogtreecommitdiff
path: root/packages/gnutls
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gnutls')
-rw-r--r--packages/gnutls/gnutls-2.4.2/gnutls-replace-siginterrupt.patch37
-rw-r--r--packages/gnutls/gnutls_2.4.2.bb3
2 files changed, 39 insertions, 1 deletions
diff --git a/packages/gnutls/gnutls-2.4.2/gnutls-replace-siginterrupt.patch b/packages/gnutls/gnutls-2.4.2/gnutls-replace-siginterrupt.patch
new file mode 100644
index 0000000000..9b734a9bf9
--- /dev/null
+++ b/packages/gnutls/gnutls-2.4.2/gnutls-replace-siginterrupt.patch
@@ -0,0 +1,37 @@
+Index: gnutls-2.4.2/src/tests.c
+===================================================================
+--- gnutls-2.4.2.orig/src/tests.c 2008-09-15 13:04:19.000000000 -0700
++++ gnutls-2.4.2/src/tests.c 2009-03-04 15:25:09.000000000 -0800
+@@ -491,6 +491,7 @@
+ int old, secs = 6;
+
+ #ifndef _WIN32
++ struct sigaction act;
+ signal (SIGALRM, got_alarm);
+ #endif
+
+@@ -511,7 +512,9 @@
+ return TEST_FAILED;
+
+ #ifndef _WIN32
+- old = siginterrupt (SIGALRM, 1);
++ (void) sigaction(SIGALRM, NULL, &act);
++ act.sa_flags &= ~SA_RESTART;
++ old = sigaction(SIGALRM, &act, NULL);
+ alarm (secs);
+ #else
+ setsockopt ((int)gnutls_transport_get_ptr (session), SOL_SOCKET, SO_RCVTIMEO,
+@@ -525,7 +528,12 @@
+ while (ret > 0);
+
+ #ifndef _WIN32
+- siginterrupt (SIGALRM, old);
++ (void) sigaction(SIGALRM, NULL, &act);
++ if (old)
++ act.sa_flags &= ~SA_RESTART;
++ else
++ act.sa_flags |= SA_RESTART;
++ sigaction(SIGALRM, &act, NULL);
+ #else
+ if (WSAGetLastError () == WSAETIMEDOUT ||
+ WSAGetLastError () == WSAECONNABORTED)
diff --git a/packages/gnutls/gnutls_2.4.2.bb b/packages/gnutls/gnutls_2.4.2.bb
index ddaef1dea3..d33e687741 100644
--- a/packages/gnutls/gnutls_2.4.2.bb
+++ b/packages/gnutls/gnutls_2.4.2.bb
@@ -4,6 +4,7 @@ SRC_URI += "\
file://gnutls-openssl.patch;patch=1 \
file://gnutls-texinfo-euro.patch;patch=1 \
file://configure_madness.patch;patch=1 \
+ file://gnutls-replace-siginterrupt.patch;patch=1 \
"
-PR = "r3"
+PR = "r4"