GCC Code Coverage Report


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