GCC Code Coverage Report


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