GCC Code Coverage Report


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