GCC Code Coverage Report


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