GCC Code Coverage Report


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