/src/nss/lib/ssl/sslerr.c
Line | Count | Source |
1 | | /* |
2 | | * Function to set error code only when meaningful error has not already |
3 | | * been set. |
4 | | * |
5 | | * This Source Code Form is subject to the terms of the Mozilla Public |
6 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
7 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
8 | | |
9 | | #include "prerror.h" |
10 | | #include "secerr.h" |
11 | | #include "sslerr.h" |
12 | | #include "seccomon.h" |
13 | | |
14 | | /* look at the current value of PR_GetError, and evaluate it to see |
15 | | * if it is meaningful or meaningless (out of context). |
16 | | * If it is meaningless, replace it with the hiLevelError. |
17 | | * Returns the chosen error value. |
18 | | */ |
19 | | int |
20 | | ssl_MapLowLevelError(int hiLevelError) |
21 | 55.5k | { |
22 | 55.5k | int oldErr = PORT_GetError(); |
23 | | |
24 | 55.5k | switch (oldErr) { |
25 | | |
26 | 1.47k | case 0: |
27 | 1.47k | case PR_IO_ERROR: |
28 | 1.47k | case SEC_ERROR_IO: |
29 | 1.78k | case SEC_ERROR_BAD_DATA: |
30 | 2.58k | case SEC_ERROR_LIBRARY_FAILURE: |
31 | 2.95k | case SEC_ERROR_EXTENSION_NOT_FOUND: |
32 | 2.96k | case SSL_ERROR_BAD_CLIENT: |
33 | 4.06k | case SSL_ERROR_BAD_SERVER: |
34 | 4.06k | case SSL_ERROR_SESSION_NOT_FOUND: |
35 | 4.06k | PORT_SetError(hiLevelError); |
36 | 4.06k | return hiLevelError; |
37 | | |
38 | 51.5k | default: /* leave the majority of error codes alone. */ |
39 | 51.5k | return oldErr; |
40 | 55.5k | } |
41 | 55.5k | } |