GCC Code Coverage Report


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