GCC Code Coverage Report


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