GCC Code Coverage Report


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