GCC Code Coverage Report


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