GCC Code Coverage Report


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