Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
michael@0 | 2 | * |
michael@0 | 3 | * This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 4 | * License, v. 2.0. If a copy of the MPL was not distributed with this |
michael@0 | 5 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
michael@0 | 6 | |
michael@0 | 7 | #include "nsNSSComponent.h" |
michael@0 | 8 | #include "secerr.h" |
michael@0 | 9 | #include "sslerr.h" |
michael@0 | 10 | |
michael@0 | 11 | const char * |
michael@0 | 12 | nsNSSErrors::getDefaultErrorStringName(PRErrorCode err) |
michael@0 | 13 | { |
michael@0 | 14 | return PR_ErrorToName(err); |
michael@0 | 15 | } |
michael@0 | 16 | |
michael@0 | 17 | const char * |
michael@0 | 18 | nsNSSErrors::getOverrideErrorStringName(PRErrorCode aErrorCode) |
michael@0 | 19 | { |
michael@0 | 20 | const char *id_str = nullptr; |
michael@0 | 21 | |
michael@0 | 22 | switch (aErrorCode) { |
michael@0 | 23 | case SSL_ERROR_SSL_DISABLED: |
michael@0 | 24 | id_str = "PSMERR_SSL_Disabled"; |
michael@0 | 25 | break; |
michael@0 | 26 | |
michael@0 | 27 | case SSL_ERROR_SSL2_DISABLED: |
michael@0 | 28 | id_str = "PSMERR_SSL2_Disabled"; |
michael@0 | 29 | break; |
michael@0 | 30 | |
michael@0 | 31 | case SEC_ERROR_REUSED_ISSUER_AND_SERIAL: |
michael@0 | 32 | id_str = "PSMERR_HostReusedIssuerSerial"; |
michael@0 | 33 | break; |
michael@0 | 34 | } |
michael@0 | 35 | |
michael@0 | 36 | return id_str; |
michael@0 | 37 | } |
michael@0 | 38 | |
michael@0 | 39 | nsresult |
michael@0 | 40 | nsNSSErrors::getErrorMessageFromCode(PRErrorCode err, |
michael@0 | 41 | nsINSSComponent *component, |
michael@0 | 42 | nsString &returnedMessage) |
michael@0 | 43 | { |
michael@0 | 44 | NS_ENSURE_ARG_POINTER(component); |
michael@0 | 45 | returnedMessage.Truncate(); |
michael@0 | 46 | |
michael@0 | 47 | const char *nss_error_id_str = getDefaultErrorStringName(err); |
michael@0 | 48 | const char *id_str = getOverrideErrorStringName(err); |
michael@0 | 49 | |
michael@0 | 50 | if (id_str || nss_error_id_str) |
michael@0 | 51 | { |
michael@0 | 52 | nsString defMsg; |
michael@0 | 53 | nsresult rv; |
michael@0 | 54 | if (id_str) |
michael@0 | 55 | { |
michael@0 | 56 | rv = component->GetPIPNSSBundleString(id_str, defMsg); |
michael@0 | 57 | } |
michael@0 | 58 | else |
michael@0 | 59 | { |
michael@0 | 60 | rv = component->GetNSSBundleString(nss_error_id_str, defMsg); |
michael@0 | 61 | } |
michael@0 | 62 | |
michael@0 | 63 | if (NS_SUCCEEDED(rv)) |
michael@0 | 64 | { |
michael@0 | 65 | returnedMessage.Append(defMsg); |
michael@0 | 66 | returnedMessage.Append(NS_LITERAL_STRING("\n")); |
michael@0 | 67 | } |
michael@0 | 68 | } |
michael@0 | 69 | |
michael@0 | 70 | if (returnedMessage.IsEmpty()) |
michael@0 | 71 | { |
michael@0 | 72 | // no localized string available, use NSS' internal |
michael@0 | 73 | returnedMessage.AppendASCII(PR_ErrorToString(err, PR_LANGUAGE_EN)); |
michael@0 | 74 | returnedMessage.Append(NS_LITERAL_STRING("\n")); |
michael@0 | 75 | } |
michael@0 | 76 | |
michael@0 | 77 | if (nss_error_id_str) |
michael@0 | 78 | { |
michael@0 | 79 | nsresult rv; |
michael@0 | 80 | nsCString error_id(nss_error_id_str); |
michael@0 | 81 | ToLowerCase(error_id); |
michael@0 | 82 | NS_ConvertASCIItoUTF16 idU(error_id); |
michael@0 | 83 | |
michael@0 | 84 | const char16_t *params[1]; |
michael@0 | 85 | params[0] = idU.get(); |
michael@0 | 86 | |
michael@0 | 87 | nsString formattedString; |
michael@0 | 88 | rv = component->PIPBundleFormatStringFromName("certErrorCodePrefix", |
michael@0 | 89 | params, 1, |
michael@0 | 90 | formattedString); |
michael@0 | 91 | if (NS_SUCCEEDED(rv)) { |
michael@0 | 92 | returnedMessage.Append(NS_LITERAL_STRING("\n")); |
michael@0 | 93 | returnedMessage.Append(formattedString); |
michael@0 | 94 | returnedMessage.Append(NS_LITERAL_STRING("\n")); |
michael@0 | 95 | } |
michael@0 | 96 | else { |
michael@0 | 97 | returnedMessage.Append(NS_LITERAL_STRING("(")); |
michael@0 | 98 | returnedMessage.Append(idU); |
michael@0 | 99 | returnedMessage.Append(NS_LITERAL_STRING(")")); |
michael@0 | 100 | } |
michael@0 | 101 | } |
michael@0 | 102 | |
michael@0 | 103 | return NS_OK; |
michael@0 | 104 | } |