GCC Code Coverage Report


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