ftp: convert 'sock_accepted' to a plain boolean

This was an array indexed with sockindex but it was only ever used for
the secondary socket.

Closes #4929
This commit is contained in:
Daniel Stenberg 2020-02-15 00:00:45 +01:00
parent 03564deba2
commit c188391a9f
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 5 additions and 6 deletions

View File

@ -1428,12 +1428,11 @@ int Curl_closesocket(struct connectdata *conn,
curl_socket_t sock)
{
if(conn && conn->fclosesocket) {
if((sock == conn->sock[SECONDARYSOCKET]) &&
conn->sock_accepted[SECONDARYSOCKET])
if((sock == conn->sock[SECONDARYSOCKET]) && conn->sock_accepted)
/* if this socket matches the second socket, and that was created with
accept, then we MUST NOT call the callback but clear the accepted
status */
conn->sock_accepted[SECONDARYSOCKET] = FALSE;
conn->sock_accepted = FALSE;
else {
int rc;
Curl_multi_closed(conn->data, sock);

View File

@ -291,7 +291,7 @@ static CURLcode AcceptServerConnect(struct connectdata *conn)
conn->sock[SECONDARYSOCKET] = s;
(void)curlx_nonblock(s, TRUE); /* enable non-blocking */
conn->sock_accepted[SECONDARYSOCKET] = TRUE;
conn->sock_accepted = TRUE;
if(data->set.fsockopt) {
int error = 0;

View File

@ -925,8 +925,6 @@ struct connectdata {
curl_socket_t sock[2]; /* two sockets, the second is used for the data
transfer when doing FTP */
curl_socket_t tempsock[2]; /* temporary sockets for happy eyeballs */
bool sock_accepted[2]; /* TRUE if the socket on this index was created with
accept() */
Curl_recv *recv[2];
Curl_send *send[2];
@ -1081,6 +1079,8 @@ struct connectdata {
handle */
BIT(writechannel_inuse); /* whether the write channel is in use by an easy
handle */
BIT(sock_accepted); /* TRUE if the SECONDARYSOCKET was created with
accept() */
};
/* The end of connectdata. */