GCC Code Coverage Report


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