GCC Code Coverage Report


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