GCC Code Coverage Report


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