CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
network_errors.h
Go to the documentation of this file.
1 
5 #ifndef CVMFS_NETWORK_NETWORK_ERRORS_H_
6 #define CVMFS_NETWORK_NETWORK_ERRORS_H_
7 
8 namespace download {
9 
14 enum Failures {
15  kFailOk = 0,
20  // artificial failure code. Try other host even though
21  // failure seems to be at the proxy
36 
38 }; // Failures
39 
40 
41 inline bool IsHostTransferError(const Failures error) {
42  switch (error) {
44  case kFailHostTooSlow:
46  return true;
47  default:
48  break;
49  }
50  return false;
51 }
52 
53 inline bool IsProxyTransferError(const Failures error) {
54  switch (error) {
56  case kFailProxyTooSlow:
58  return true;
59  default:
60  break;
61  }
62  return false;
63 }
64 
65 inline const char *Code2Ascii(const Failures error) {
66  const char *texts[kFailNumEntries + 1];
67  texts[0] = "OK";
68  texts[1] = "local I/O failure";
69  texts[2] = "malformed URL";
70  texts[3] = "failed to resolve proxy address";
71  texts[4] = "failed to resolve host address";
72  texts[5] = "all proxies failed, trying host fail-over";
73  texts[6] = "proxy connection problem";
74  texts[7] = "host connection problem";
75  texts[8] = "proxy returned HTTP error";
76  texts[9] = "host returned HTTP error";
77  texts[10] = "corrupted data received";
78  texts[11] = "resource too big to download";
79  texts[12] = "unknown network error";
80  texts[13] = "Unsupported URL in protocol";
81  texts[14] = "proxy serving data too slowly";
82  texts[15] = "host serving data too slowly";
83  texts[16] = "proxy data transfer cut short";
84  texts[17] = "host data transfer cut short";
85  texts[18] = "request canceled";
86  texts[19] = "no text";
87  return texts[error];
88 }
89 
90 } // namespace download
91 
92 #endif // CVMFS_NETWORK_NETWORK_ERRORS_H_
const char * Code2Ascii(const Failures error)
bool IsProxyTransferError(const Failures error)
bool IsHostTransferError(const Failures error)