GCC Code Coverage Report


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