Преглед изворни кода

Not including useless OpenSSL states in error reporting

Source commit: 627ff74a4254d728b9a431e91f4e12e5b0950fdc
Martin Prikryl пре 1 година
родитељ
комит
aa2b34138d
1 измењених фајлова са 11 додато и 9 уклоњено
  1. 11 9
      source/filezilla/AsyncSslSocketLayer.cpp

+ 11 - 9
source/filezilla/AsyncSslSocketLayer.cpp

@@ -1091,17 +1091,19 @@ BOOL CAsyncSslSocketLayer::ShutDownComplete()
 void CAsyncSslSocketLayer::LogSslError(const SSL *s, const char * str, const char * fmt, int nMessageType, char * debug)
 {
   USES_CONVERSION;
-  char * buffer = new char[4096 + ((debug != NULL) ? strlen(debug) : 0)];
-  sprintf(buffer, fmt,
-      str,
-      SSL_state_string_long(s));
-  if (debug != NULL)
+  const char * StateString = SSL_state_string_long(s);
+  if ((strcmp(StateString, "error") != 0) || (debug != NULL))
   {
-    sprintf(buffer + strlen(buffer), " [%s]", debug);
-    OPENSSL_free(debug);
+    char * buffer = new char[4096 + ((debug != NULL) ? strlen(debug) : 0)];
+    sprintf(buffer, fmt, str, StateString);
+    if (debug != NULL)
+    {
+      sprintf(buffer + strlen(buffer), " [%s]", debug);
+      OPENSSL_free(debug);
+    }
+    LogSocketMessageRaw(nMessageType, A2T(buffer));
+    delete[] buffer;
   }
-  LogSocketMessageRaw(nMessageType, A2T(buffer));
-  delete[] buffer;
 }
 
 void CAsyncSslSocketLayer::apps_ssl_info_callback(const SSL *s, int where, int ret)