GCC Code Coverage Report


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