GCC Code Coverage Report


Directory: cvmfs/
File: cvmfs/network/network_errors.h
Date: 2025-06-29 02:35:41
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 1768 inline bool IsHostTransferError(const Failures error) {
42
2/2
✓ Branch 0 taken 487 times.
✓ Branch 1 taken 1281 times.
1768 switch (error) {
43 487 case kFailHostConnection:
44 case kFailHostTooSlow:
45 case kFailHostShortTransfer:
46 487 return true;
47 1281 default:
48 1281 break;
49 }
50 1281 return false;
51 }
52
53 1784 inline bool IsProxyTransferError(const Failures error) {
54
2/2
✓ Branch 0 taken 32 times.
✓ Branch 1 taken 1752 times.
1784 switch (error) {
55 32 case kFailProxyConnection:
56 case kFailProxyTooSlow:
57 case kFailProxyShortTransfer:
58 32 return true;
59 1752 default:
60 1752 break;
61 }
62 1752 return false;
63 }
64
65 400 inline const char *Code2Ascii(const Failures error) {
66 const char *texts[kFailNumEntries + 1];
67 400 texts[0] = "OK";
68 400 texts[1] = "local I/O failure";
69 400 texts[2] = "malformed URL";
70 400 texts[3] = "failed to resolve proxy address";
71 400 texts[4] = "failed to resolve host address";
72 400 texts[5] = "all proxies failed, trying host fail-over";
73 400 texts[6] = "proxy connection problem";
74 400 texts[7] = "host connection problem";
75 400 texts[8] = "proxy returned HTTP error";
76 400 texts[9] = "host returned HTTP error";
77 400 texts[10] = "corrupted data received";
78 400 texts[11] = "resource too big to download";
79 400 texts[12] = "unknown network error";
80 400 texts[13] = "Unsupported URL in protocol";
81 400 texts[14] = "proxy serving data too slowly";
82 400 texts[15] = "host serving data too slowly";
83 400 texts[16] = "proxy data transfer cut short";
84 400 texts[17] = "host data transfer cut short";
85 400 texts[18] = "request canceled";
86 400 texts[19] = "no text";
87 400 return texts[error];
88 }
89
90 } // namespace download
91
92 #endif // CVMFS_NETWORK_NETWORK_ERRORS_H_
93