usrsock_server: fix unblock socket connect error

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
This commit is contained in:
zhanghongyu 2022-08-29 22:53:20 +08:00 committed by Masayuki Ishikawa
parent bcbf3ae89d
commit 8a2f29c9b5

View File

@ -178,7 +178,7 @@ static int usrsock_rpmsg_send_ack(struct rpmsg_endpoint *ept,
ack.head.events = events; ack.head.events = events;
ack.xid = xid; ack.xid = xid;
ack.result = result; ack.result = result == -EINPROGRESS ? 0 : result;
return rpmsg_send(ept, &ack, sizeof(ack)); return rpmsg_send(ept, &ack, sizeof(ack));
} }
@ -317,14 +317,15 @@ static int usrsock_rpmsg_connect_handler(struct rpmsg_endpoint *ept,
{ {
ret = psock_connect(&priv->socks[req->usockid], ret = psock_connect(&priv->socks[req->usockid],
(const struct sockaddr *)(req + 1), req->addrlen); (const struct sockaddr *)(req + 1), req->addrlen);
}
retr = usrsock_rpmsg_send_ack(ept, 0, req->head.xid, ret);
if (ret == -EINPROGRESS) if (ret == -EINPROGRESS)
{ {
inprogress = true; inprogress = true;
ret = 0; ret = 0;
} }
}
retr = usrsock_rpmsg_send_ack(ept, 0, req->head.xid, ret);
if (retr >= 0 && ret >= 0 && priv->pfds[req->usockid].ptr == NULL) if (retr >= 0 && ret >= 0 && priv->pfds[req->usockid].ptr == NULL)
{ {
pthread_mutex_lock(&priv->mutex); pthread_mutex_lock(&priv->mutex);