GCC Code Coverage Report


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