GCC Code Coverage Report


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