retry case needs to do another job with the same parameters not just a new job #4750

This commit is contained in:
Adam Potolsky 2015-06-24 16:31:47 -07:00
parent 2df88e07c4
commit f10f0f13c4
1 changed files with 20 additions and 5 deletions

View File

@ -611,9 +611,17 @@ SecureSocket::serviceConnect(ISocketMultiplexerJob* job,
return NULL;
}
// If status > 0, success
if (status > 0) {
return newJob();
}
// Retry case
return new TSocketMultiplexerMethodJob<SecureSocket>(
this, &SecureSocket::serviceConnect,
getSocket(), isReadable(), isWritable());
}
ISocketMultiplexerJob*
SecureSocket::serviceAccept(ISocketMultiplexerJob* job,
bool, bool write, bool error)
@ -626,15 +634,22 @@ SecureSocket::serviceAccept(ISocketMultiplexerJob* job,
#elif SYSAPI_UNIX
status = secureAccept(getSocket()->m_fd);
#endif
LOG((CLOG_ERR "DELME: status:%d",status));
// If status < 0, error happened
if (status < 0) {
return NULL;
}
// If status > 0, success
if (status > 0) {
return newJob();
}
// Retry case
return new TSocketMultiplexerMethodJob<SecureSocket>(
this, &SecureSocket::serviceConnect,
getSocket(), isReadable(), isWritable());
}
void
showCipherStackDesc(STACK_OF(SSL_CIPHER) * stack) {
char msg[kMsgSize];