GCC Code Coverage Report


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