From 0d5dfe5a4c36bd8a762d265083203c9a8d093099 Mon Sep 17 00:00:00 2001 From: Joe Orton Date: Thu, 14 Nov 2019 10:45:12 +0000 Subject: [PATCH] revert broken IPv6 workaround --- libserf-1.3.9-ipv6fail.patch | 73 ------------------------------------ libserf.spec | 5 ++- 2 files changed, 4 insertions(+), 74 deletions(-) delete mode 100644 libserf-1.3.9-ipv6fail.patch diff --git a/libserf-1.3.9-ipv6fail.patch b/libserf-1.3.9-ipv6fail.patch deleted file mode 100644 index 35587cb..0000000 --- a/libserf-1.3.9-ipv6fail.patch +++ /dev/null @@ -1,73 +0,0 @@ - -https://bugzilla.redhat.com/show_bug.cgi?id=1130328 - -https://issues.apache.org/jira/browse/SERF-190 - ---- serf-1.3.9/outgoing.c.ipv6fail 2015-10-17 13:25:14.000000000 +0100 -+++ serf-1.3.9/outgoing.c 2019-04-16 11:31:53.586762388 +0100 -@@ -1264,17 +1264,6 @@ apr_status_t serf__process_connection(se - return APR_SUCCESS; - } - } -- if ((events & APR_POLLHUP) != 0) { -- /* The connection got reset by the server. On Windows this can happen -- when all data is read, so just cleanup the connection and open -- a new one. -- If we haven't had any successful responses on this connection, -- then error out as it is likely a server issue. */ -- if (conn->completed_responses) { -- return reset_connection(conn, 1); -- } -- return SERF_ERROR_ABORTED_CONNECTION; -- } - if ((events & APR_POLLERR) != 0) { - /* We might be talking to a buggy HTTP server that doesn't - * do lingering-close. (httpd < 2.1.8 does this.) -@@ -1292,11 +1281,15 @@ apr_status_t serf__process_connection(se - { - apr_os_sock_t osskt; - if (!apr_os_sock_get(&osskt, conn->skt)) { -- int error; -+ int error = 0, rv; - apr_socklen_t l = sizeof(error); - -- if (!getsockopt(osskt, SOL_SOCKET, SO_ERROR, (char*)&error, -- &l)) { -+ rv = getsockopt(osskt, SOL_SOCKET, SO_ERROR, (char*)&error, &l); -+ /* The error is placed in errno on Solaris for SO_ERROR */ -+ if (rv) -+ error = errno; -+ -+ if (error) { - status = APR_FROM_OS_ERROR(error); - - /* Handle fallback for multi-homed servers. -@@ -1310,8 +1303,8 @@ apr_status_t serf__process_connection(se - && conn->address->next != NULL - && (APR_STATUS_IS_ECONNREFUSED(status) - || APR_STATUS_IS_TIMEUP(status) -- || APR_STATUS_IS_ENETUNREACH(status))) { -- -+ || APR_STATUS_IS_ENETUNREACH(status) -+ || APR_STATUS_IS_EHOSTUNREACH(status))) { - conn->address = conn->address->next; - return reset_connection(conn, 1); - } -@@ -1323,6 +1316,17 @@ apr_status_t serf__process_connection(se - #endif - return APR_EGENERAL; - } -+ if ((events & APR_POLLHUP) != 0) { -+ /* The connection got reset by the server. On Windows this can happen -+ when all data is read, so just cleanup the connection and open -+ a new one. -+ If we haven't had any successful responses on this connection, -+ then error out as it is likely a server issue. */ -+ if (conn->completed_responses) { -+ return reset_connection(conn, 1); -+ } -+ return SERF_ERROR_ABORTED_CONNECTION; -+ } - if ((events & APR_POLLOUT) != 0) { - if ((status = write_to_connection(conn)) != APR_SUCCESS) - return status; diff --git a/libserf.spec b/libserf.spec index 7fe3cab..5634b12 100644 --- a/libserf.spec +++ b/libserf.spec @@ -8,7 +8,7 @@ Name: libserf Version: 1.3.9 -Release: 13%{?dist} +Release: 14%{?dist} Summary: High-Performance Asynchronous HTTP Client Library License: ASL 2.0 URL: http://serf.apache.org/ @@ -75,6 +75,9 @@ export LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{_libdir}/pkgconfig/serf*.pc %changelog +* Thu Nov 14 2019 Joe Orton - 1.3.9-14 +- revert broken IPv6 workaround + * Thu Jul 25 2019 Fedora Release Engineering - 1.3.9-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild