GCC Code Coverage Report


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