PR: 1949
Submitted by: steve@openssl.org More robust fix and workaround for PR#1949. Don't try to work out if there is any write pending data as this can be unreliable: always flush.
This commit is contained in:
@@ -167,7 +167,6 @@ int ssl3_connect(SSL *s)
|
||||
{
|
||||
BUF_MEM *buf=NULL;
|
||||
unsigned long Time=(unsigned long)time(NULL),l;
|
||||
long num1;
|
||||
void (*cb)(const SSL *ssl,int type,int val)=NULL;
|
||||
int ret= -1;
|
||||
int new_state,state,skip=0;
|
||||
@@ -496,16 +495,13 @@ int ssl3_connect(SSL *s)
|
||||
break;
|
||||
|
||||
case SSL3_ST_CW_FLUSH:
|
||||
/* number of bytes to be flushed */
|
||||
num1=BIO_ctrl(s->wbio,BIO_CTRL_INFO,0,NULL);
|
||||
if (num1 > 0)
|
||||
s->rwstate=SSL_WRITING;
|
||||
if (BIO_flush(s->wbio) <= 0)
|
||||
{
|
||||
s->rwstate=SSL_WRITING;
|
||||
num1=BIO_flush(s->wbio);
|
||||
if (num1 <= 0) { ret= -1; goto end; }
|
||||
s->rwstate=SSL_NOTHING;
|
||||
ret= -1;
|
||||
goto end;
|
||||
}
|
||||
|
||||
s->rwstate=SSL_NOTHING;
|
||||
s->state=s->s3->tmp.next_state;
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user