GCC Code Coverage Report


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