GCC Code Coverage Report


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