GCC Code Coverage Report


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