GCC Code Coverage Report


Directory: cvmfs/
File: cvmfs/network/network_errors.h
Date: 2026-02-22 02:35:58
Exec Total Coverage
Lines: 36 36 100.0%
Branches: 4 4 100.0%

Line Branch Exec Source
1 /**
2 * This file is part of the CernVM File System.
3 */
4
5 #ifndef CVMFS_NETWORK_NETWORK_ERRORS_H_
6 #define CVMFS_NETWORK_NETWORK_ERRORS_H_
7
8 namespace download {
9
10 /**
11 * Possible return values. Adjust ObjectFetcher error handling if new network
12 * error conditions are added.
13 */
14 enum Failures {
15 kFailOk = 0,
16 kFailLocalIO,
17 kFailBadUrl,
18 kFailProxyResolve,
19 kFailHostResolve,
20 // artificial failure code. Try other host even though
21 // failure seems to be at the proxy
22 kFailHostAfterProxy,
23 kFailProxyConnection,
24 kFailHostConnection,
25 kFailProxyHttp,
26 kFailHostHttp,
27 kFailBadData,
28 kFailTooBig,
29 kFailOther,
30 kFailUnsupportedProtocol,
31 kFailProxyTooSlow,
32 kFailHostTooSlow,
33 kFailProxyShortTransfer,
34 kFailHostShortTransfer,
35 kFailCanceled,
36
37 kFailNumEntries
38 }; // Failures
39
40
41 2597 inline bool IsHostTransferError(const Failures error) {
42
2/2
✓ Branch 0 taken 886 times.
✓ Branch 1 taken 1711 times.
2597 switch (error) {
43 886 case kFailHostConnection:
44 case kFailHostTooSlow:
45 case kFailHostShortTransfer:
46 886 return true;
47 1711 default:
48 1711 break;
49 }
50 1711 return false;
51 }
52
53 2628 inline bool IsProxyTransferError(const Failures error) {
54
2/2
✓ Branch 0 taken 62 times.
✓ Branch 1 taken 2566 times.
2628 switch (error) {
55 62 case kFailProxyConnection:
56 case kFailProxyTooSlow:
57 case kFailProxyShortTransfer:
58 62 return true;
59 2566 default:
60 2566 break;
61 }
62 2566 return false;
63 }
64
65 985 inline const char *Code2Ascii(const Failures error) {
66 const char *texts[kFailNumEntries + 1];
67 985 texts[0] = "OK";
68 985 texts[1] = "local I/O failure";
69 985 texts[2] = "malformed URL";
70 985 texts[3] = "failed to resolve proxy address";
71 985 texts[4] = "failed to resolve host address";
72 985 texts[5] = "all proxies failed, trying host fail-over";
73 985 texts[6] = "proxy connection problem";
74 985 texts[7] = "host connection problem";
75 985 texts[8] = "proxy returned HTTP error";
76 985 texts[9] = "host returned HTTP error";
77 985 texts[10] = "corrupted data received";
78 985 texts[11] = "resource too big to download";
79 985 texts[12] = "unknown network error";
80 985 texts[13] = "Unsupported URL in protocol";
81 985 texts[14] = "proxy serving data too slowly";
82 985 texts[15] = "host serving data too slowly";
83 985 texts[16] = "proxy data transfer cut short";
84 985 texts[17] = "host data transfer cut short";
85 985 texts[18] = "request canceled";
86 985 texts[19] = "no text";
87 985 return texts[error];
88 }
89
90 } // namespace download
91
92 #endif // CVMFS_NETWORK_NETWORK_ERRORS_H_
93