diff options
| author | 2019-07-18 01:31:55 -0400 | |
|---|---|---|
| committer | 2019-07-18 01:31:55 -0400 | |
| commit | 0f98c212db6e4cfd750dc1a52a31ddf9396a5e07 (patch) | |
| tree | bd0bd43b383bccc43d1950fd356472d69f9cd0f1 /src/lib/net | |
| parent | d8c416864c505aea70c70fd0d5f7991aa50d2ff9 (diff) | |
| parent | a916009d4b29995ea8ad61ad47a51c2ee1fa80bc (diff) | |
Update upstream source from tag 'upstream/2.3.0+dfsg'
Update to upstream version '2.3.0+dfsg'
with Debian dir f701d582fe3b6bb5189dbf035102670db9c2516b
Diffstat (limited to 'src/lib/net')
| -rw-r--r-- | src/lib/net/SecureSocket.cpp | 12 | ||||
| -rw-r--r-- | src/lib/net/TCPSocket.cpp | 23 |
2 files changed, 27 insertions, 8 deletions
diff --git a/src/lib/net/SecureSocket.cpp b/src/lib/net/SecureSocket.cpp index 6670f5f..360db31 100644 --- a/src/lib/net/SecureSocket.cpp +++ b/src/lib/net/SecureSocket.cpp @@ -704,18 +704,30 @@ SecureSocket::verifyCertFingerprint() kFingerprintDirName, kFingerprintTrustedServersFilename); + // Provide debug hint as to what file is being used to verify fingerprint trust + LOG((CLOG_NOTE "trustedServersFilename: %s", trustedServersFilename.c_str() )); + // check if this fingerprint exist String fileLine; std::ifstream file; file.open(trustedServersFilename.c_str()); + if (!file.is_open()) { + LOG((CLOG_NOTE "Unable to open trustedServersFile: %s", trustedServersFilename.c_str() )); + } else { + LOG((CLOG_NOTE "Opened trustedServersFilename: %s", trustedServersFilename.c_str() )); + } + bool isValid = false; while (!file.eof() && file.is_open()) { getline(file,fileLine); if (!fileLine.empty()) { if (fileLine.compare(fingerprint) == 0) { + LOG((CLOG_NOTE "Fingerprint matches trusted fingerprint")); isValid = true; break; + } else { + LOG((CLOG_NOTE "Fingerprint does not match trusted fingerprint")); } } } diff --git a/src/lib/net/TCPSocket.cpp b/src/lib/net/TCPSocket.cpp index dce81ee..d454aa1 100644 --- a/src/lib/net/TCPSocket.cpp +++ b/src/lib/net/TCPSocket.cpp @@ -544,10 +544,11 @@ TCPSocket::serviceConnected(ISocketMultiplexerJob* job, return newJob(); } - EJobResult result = kRetry; + EJobResult writeResult = kRetry; + EJobResult readResult = kRetry; if (write) { try { - result = doWrite(); + writeResult = doWrite(); } catch (XArchNetworkShutdown&) { // remote read end of stream hungup. our output side @@ -558,13 +559,13 @@ TCPSocket::serviceConnected(ISocketMultiplexerJob* job, sendEvent(m_events->forISocket().disconnected()); m_connected = false; } - result = kNew; + writeResult = kNew; } catch (XArchNetworkDisconnected&) { // stream hungup onDisconnected(); sendEvent(m_events->forISocket().disconnected()); - result = kNew; + writeResult = kNew; } catch (XArchNetwork& e) { // other write error @@ -572,19 +573,19 @@ TCPSocket::serviceConnected(ISocketMultiplexerJob* job, onDisconnected(); sendEvent(m_events->forIStream().outputError()); sendEvent(m_events->forISocket().disconnected()); - result = kNew; + writeResult = kNew; } } if (read && m_readable) { try { - result = doRead(); + readResult = doRead(); } catch (XArchNetworkDisconnected&) { // stream hungup sendEvent(m_events->forISocket().disconnected()); onDisconnected(); - result = kNew; + readResult = kNew; } catch (XArchNetwork& e) { // ignore other read error @@ -592,5 +593,11 @@ TCPSocket::serviceConnected(ISocketMultiplexerJob* job, } } - return result == kBreak ? NULL : result == kNew ? newJob() : job; + if (writeResult == kBreak || readResult == kBreak) { + return NULL; + } else if (writeResult == kNew || readResult == kNew) { + return newJob(); + } else { + return job; + } } |
