GCC Code Coverage Report


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