Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
58205784c5 | ||
|
f34b60b043 | ||
|
02d9323c21 | ||
|
c3b19ddf18 | ||
|
8d2a2fd5c1 | ||
|
5f799e054a | ||
|
ddfb5be5b5 | ||
|
1fa32af06a | ||
|
8a77eb5edb | ||
|
6a41fe16c8 | ||
|
24a24582d9 | ||
|
0d5dfe5a4c |
21
libserf-1.3.9-bio-ctrl.patch
Normal file
21
libserf-1.3.9-bio-ctrl.patch
Normal file
@ -0,0 +1,21 @@
|
||||
diff --git a/buckets/ssl_buckets.c b/buckets/ssl_buckets.c
|
||||
index b01e5359db08..3c8b7e2a685f 100644
|
||||
--- a/buckets/ssl_buckets.c
|
||||
+++ b/buckets/ssl_buckets.c
|
||||
@@ -407,7 +407,7 @@ static int bio_bucket_destroy(BIO *bio)
|
||||
|
||||
static long bio_bucket_ctrl(BIO *bio, int cmd, long num, void *ptr)
|
||||
{
|
||||
- long ret = 1;
|
||||
+ long ret = 0;
|
||||
|
||||
switch (cmd) {
|
||||
default:
|
||||
@@ -415,6 +415,7 @@ static long bio_bucket_ctrl(BIO *bio, int cmd, long num, void *ptr)
|
||||
break;
|
||||
case BIO_CTRL_FLUSH:
|
||||
/* At this point we can't force a flush. */
|
||||
+ ret = 1;
|
||||
break;
|
||||
case BIO_CTRL_PUSH:
|
||||
case BIO_CTRL_POP:
|
13
libserf-1.3.9-errgetfunc.patch
Normal file
13
libserf-1.3.9-errgetfunc.patch
Normal file
@ -0,0 +1,13 @@
|
||||
--- serf-1.3.9/buckets/ssl_buckets.c.errgetfunc
|
||||
+++ serf-1.3.9/buckets/ssl_buckets.c
|
||||
@@ -1204,6 +1204,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#ifndef ERR_GET_FUNC
|
||||
+#define ERR_GET_FUNC(ec) (0)
|
||||
+#endif
|
||||
+
|
||||
static int ssl_need_client_cert(SSL *ssl, X509 **cert, EVP_PKEY **pkey)
|
||||
{
|
||||
serf_ssl_context_t *ctx = SSL_get_app_data(ssl);
|
@ -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;
|
39
libserf.spec
39
libserf.spec
@ -8,7 +8,7 @@
|
||||
|
||||
Name: libserf
|
||||
Version: 1.3.9
|
||||
Release: 13%{?dist}
|
||||
Release: 24%{?dist}
|
||||
Summary: High-Performance Asynchronous HTTP Client Library
|
||||
License: ASL 2.0
|
||||
URL: http://serf.apache.org/
|
||||
@ -18,7 +18,8 @@ BuildRequires: apr-devel, apr-util-devel, krb5-devel, openssl-devel
|
||||
BuildRequires: zlib-devel
|
||||
Patch0: %{name}-norpath.patch
|
||||
Patch1: %{name}-python3.patch
|
||||
Patch2: %{name}-1.3.9-ipv6fail.patch
|
||||
Patch2: %{name}-1.3.9-bio-ctrl.patch
|
||||
Patch3: %{name}-1.3.9-errgetfunc.patch
|
||||
|
||||
%description
|
||||
The serf library is a C-based HTTP client library built upon the Apache
|
||||
@ -75,6 +76,40 @@ export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
|
||||
%{_libdir}/pkgconfig/serf*.pc
|
||||
|
||||
%changelog
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-24
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-23
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Mon Oct 4 2021 Joe Orton <jorton@redhat.com> - 1.3.9-22
|
||||
- fix build with OpenSSL 3.0
|
||||
|
||||
* Mon Sep 20 2021 Tomas Korbar <tkorbar@redhat.com> - 1.3.9-21
|
||||
- Fix internal BIO control function
|
||||
|
||||
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 1.3.9-20
|
||||
- Rebuilt with OpenSSL 3.0.0
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-19
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-18
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-17
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-16
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-15
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Thu Nov 14 2019 Joe Orton <jorton@redhat.com> - 1.3.9-14
|
||||
- revert broken IPv6 workaround
|
||||
|
||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user