GCC Code Coverage Report


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