Blame SOURCES/bz2111711-connretry-recv.patch
|
|
69d18f |
diff --git a/lib/ipc_setup.c b/lib/ipc_setup.c
|
|
|
69d18f |
index 23eeabb..0a720c8 100644
|
|
|
69d18f |
--- a/lib/ipc_setup.c
|
|
|
69d18f |
+++ b/lib/ipc_setup.c
|
|
|
69d18f |
@@ -447,6 +447,7 @@ qb_ipcc_us_setup_connect(struct qb_ipcc_connection *c,
|
|
|
69d18f |
int32_t res;
|
|
|
69d18f |
struct qb_ipc_connection_request request;
|
|
|
69d18f |
struct ipc_auth_data *data;
|
|
|
69d18f |
+ int retry_count = 0;
|
|
|
69d18f |
#ifdef QB_LINUX
|
|
|
69d18f |
int off = 0;
|
|
|
69d18f |
int on = 1;
|
|
|
69d18f |
@@ -478,7 +479,12 @@ qb_ipcc_us_setup_connect(struct qb_ipcc_connection *c,
|
|
|
69d18f |
}
|
|
|
69d18f |
|
|
|
69d18f |
qb_ipc_us_ready(&c->setup, NULL, -1, POLLIN);
|
|
|
69d18f |
+retry:
|
|
|
69d18f |
res = qb_ipc_us_recv_msghdr(data);
|
|
|
69d18f |
+ if (res == -EAGAIN && ++retry_count < 10) {
|
|
|
69d18f |
+ usleep(100000);
|
|
|
69d18f |
+ goto retry;
|
|
|
69d18f |
+ }
|
|
|
69d18f |
|
|
|
69d18f |
#ifdef QB_LINUX
|
|
|
69d18f |
setsockopt(c->setup.u.us.sock, SOL_SOCKET, SO_PASSCRED, &off,
|