| 260 | } |
| 261 | |
| 262 | static void ShowNetworkStatus (std::stringstream& s, RouterStatus status, bool testing, RouterError error) |
| 263 | { |
| 264 | switch (status) |
| 265 | { |
| 266 | case eRouterStatusOK: s << tr("OK"); break; |
| 267 | case eRouterStatusFirewalled: s << tr("Firewalled"); break; |
| 268 | case eRouterStatusUnknown: s << tr("Unknown"); break; |
| 269 | case eRouterStatusProxy: s << tr("Proxy"); break; |
| 270 | case eRouterStatusMesh: s << tr("Mesh"); break; |
| 271 | case eRouterStatusStan: s << tr("Stan"); break; |
| 272 | default: s << tr("Unknown"); |
| 273 | } |
| 274 | if (testing) |
| 275 | s << " (" << tr("Testing") << ")"; |
| 276 | if (error != eRouterErrorNone) |
| 277 | { |
| 278 | switch (error) |
| 279 | { |
| 280 | case eRouterErrorClockSkew: |
| 281 | s << " - " << tr("Clock skew"); |
| 282 | break; |
| 283 | case eRouterErrorOffline: |
| 284 | s << " - " << tr("Offline"); |
| 285 | break; |
| 286 | case eRouterErrorSymmetricNAT: |
| 287 | s << " - " << tr("Symmetric NAT"); |
| 288 | break; |
| 289 | case eRouterErrorFullConeNAT: |
| 290 | s << " - " << tr("Full cone NAT"); |
| 291 | break; |
| 292 | case eRouterErrorNoDescriptors: |
| 293 | s << " - " << tr("No Descriptors"); |
| 294 | break; |
| 295 | default: ; |
| 296 | } |
| 297 | } |
| 298 | } |
| 299 | |
| 300 | void ShowStatus (std::stringstream& s, bool includeHiddenContent, i2p::http::OutputFormatEnum outputFormat) |
| 301 | { |