GCC Code Coverage Report


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