Commit 44b769e497f9e972e398f98a3d80267ac03e3e1d

Carlos Martín Nieto 2015-04-13T15:39:58

SecureTransport: handle graceful closes On close, we might get a return code which looks like an error but just means that the other side closed gracefully. Handle that.

diff --git a/src/stransport_stream.c b/src/stransport_stream.c
index db993ff..429aa2d 100644
--- a/src/stransport_stream.c
+++ b/src/stransport_stream.c
@@ -19,7 +19,7 @@ int stransport_error(OSStatus ret)
 {
 	CFStringRef message;
 
-	if (ret == noErr) {
+	if (ret == noErr || ret == errSSLClosedGraceful) {
 		giterr_clear();
 		return 0;
 	}
@@ -183,7 +183,8 @@ int stransport_close(git_stream *stream)
 	stransport_stream *st = (stransport_stream *) stream;
 	OSStatus ret;
 
-	if ((ret = SSLClose(st->ctx)) != noErr)
+	ret = SSLClose(st->ctx);
+	if (ret != noErr && ret != errSSLClosedGraceful)
 		return stransport_error(ret);
 
 	return git_stream_close(st->io);