GCC Code Coverage Report


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