mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-04 00:00:14 -04:00
tls-socket: Handle sending fatal errors better
In particular as server, the previous code might cause it to hang in recv() if this case wasn't triggered by a close notify (followed by a shutdown of the socket) but it e.g. failed processing a ServerHello and responded with a fatal alert. Fixes: 09fbaad6bd71 ("tls-socket: Don't fail reading if sending data failed")
This commit is contained in:
parent
01485770fd
commit
d95381ec7a
@ -193,11 +193,13 @@ static bool exchange(private_tls_socket_t *this, bool wr, bool block)
|
||||
case SUCCESS:
|
||||
return TRUE;
|
||||
default:
|
||||
if (wr)
|
||||
{
|
||||
return FALSE;
|
||||
if (!wr && this->app.in_done > 0)
|
||||
{ /* return data after proper termination via fatal close
|
||||
* notify to which we responded with one */
|
||||
this->eof = TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user