GCC Code Coverage Report


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