GCC Code Coverage Report


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