Index: net/socket/nss_ssl_util.cc |
=================================================================== |
--- net/socket/nss_ssl_util.cc (revision 142108) |
+++ net/socket/nss_ssl_util.cc (working copy) |
@@ -11,6 +11,7 @@ |
#include <string> |
+#include "base/bind.h" |
#include "base/lazy_instance.h" |
#include "base/logging.h" |
#include "base/memory/singleton.h" |
@@ -220,41 +221,30 @@ |
} |
} |
-// Extra parameters to attach to the NetLog when we receive an error in response |
-// to a call to an NSS function. Used instead of SSLErrorParams with |
-// events of type TYPE_SSL_NSS_ERROR. Automatically looks up last PR error. |
-class SSLFailedNSSFunctionParams : public NetLog::EventParameters { |
- public: |
- // |param| is ignored if it has a length of 0. |
- SSLFailedNSSFunctionParams(const std::string& function, |
- const std::string& param) |
- : function_(function), param_(param), ssl_lib_error_(PR_GetError()) { |
- } |
+// Returns parameters to attach to the NetLog when we receive an error in |
+// response to a call to an NSS function. Used instead of |
+// NetLogSSLErrorCallback with events of type TYPE_SSL_NSS_ERROR. |
+// Automatically looks up last PR error. |
+Value* NetLogSSLFailedNSSFunctionCallback( |
+ const char* function, |
+ const char* param, |
+ NetLog::LogLevel /* log_level */) { |
+ DictionaryValue* dict = new DictionaryValue(); |
+ dict->SetString("function", function); |
+ if (param[0] != '\0') |
+ dict->SetString("param", param); |
+ dict->SetInteger("ssl_lib_error", PR_GetError()); |
eroman
2012/06/14 17:45:50
Please take PR_GetError() as a parameter.
My conc
mmenke
2012/06/14 18:03:45
Done.
I did think about that. Then I thought tha
|
+ return dict; |
+} |
- virtual Value* ToValue() const { |
- DictionaryValue* dict = new DictionaryValue(); |
- dict->SetString("function", function_); |
- if (!param_.empty()) |
- dict->SetString("param", param_); |
- dict->SetInteger("ssl_lib_error", ssl_lib_error_); |
- return dict; |
- } |
- |
- protected: |
- virtual ~SSLFailedNSSFunctionParams() {} |
- |
- private: |
- const std::string function_; |
- const std::string param_; |
- const PRErrorCode ssl_lib_error_; |
-}; |
- |
void LogFailedNSSFunction(const BoundNetLog& net_log, |
const char* function, |
const char* param) { |
+ DCHECK(function); |
+ DCHECK(param); |
net_log.AddEvent( |
NetLog::TYPE_SSL_NSS_ERROR, |
- make_scoped_refptr(new SSLFailedNSSFunctionParams(function, param))); |
+ base::Bind(&NetLogSSLFailedNSSFunctionCallback, function, param)); |
} |
} // namespace net |