dump_sections.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include "diagnostic/dump_sections.hpp"
  2. #include "node/InetAddress.hpp"
  3. #include "osdep/OSUtils.hpp"
  4. #include "osdep/Http.hpp"
  5. #include <sstream>
  6. #include <string>
  7. #include <map>
  8. void dumpStatus(std::stringstream& dump, const ZeroTier::InetAddress& addr, std::map<std::string,std::string>& requestHeaders) {
  9. dump << "status" << ZT_EOL_S << "------" << ZT_EOL_S;
  10. std::map<std::string, std::string> responseHeaders;
  11. std::string responseBody;
  12. unsigned int scode = ZeroTier::Http::GET(1024 * 1024 * 16,60000,(const struct sockaddr *)&addr,"/status",requestHeaders,responseHeaders,responseBody);
  13. if (scode != 200) {
  14. dump << responseBody << ZT_EOL_S;
  15. return;
  16. }
  17. dump << responseBody << ZT_EOL_S;
  18. }
  19. void dumpNetworks(std::stringstream& dump, const ZeroTier::InetAddress& addr, std::map<std::string,std::string>& requestHeaders) {
  20. dump << ZT_EOL_S << "networks" << ZT_EOL_S << "--------" << ZT_EOL_S;
  21. std::map<std::string, std::string> responseHeaders;
  22. std::string responseBody;
  23. unsigned int scode = ZeroTier::Http::GET(1024 * 1024 * 16,60000,(const struct sockaddr *)&addr,"/network",requestHeaders,responseHeaders,responseBody);
  24. if (scode != 200) {
  25. dump << responseBody << ZT_EOL_S;
  26. return;
  27. }
  28. dump << responseBody << ZT_EOL_S;
  29. }
  30. void dumpPeers(std::stringstream& dump, const ZeroTier::InetAddress& addr, std::map<std::string,std::string>& requestHeaders) {
  31. dump << ZT_EOL_S << "peers" << ZT_EOL_S << "-----" << ZT_EOL_S;
  32. std::map<std::string, std::string> responseHeaders;
  33. std::string responseBody;
  34. unsigned int scode = ZeroTier::Http::GET(1024 * 1024 * 16,60000,(const struct sockaddr *)&addr,"/peer",requestHeaders,responseHeaders,responseBody);
  35. if (scode != 200) {
  36. dump << responseBody << ZT_EOL_S;
  37. return;
  38. }
  39. dump << responseBody << ZT_EOL_S;
  40. }
  41. void dumpLocalConf(std::stringstream& dump, const std::string& homeDir) {
  42. dump << ZT_EOL_S << "local.conf" << ZT_EOL_S << "----------" << ZT_EOL_S;
  43. std::string localConf;
  44. ZeroTier::OSUtils::readFile((homeDir + ZT_PATH_SEPARATOR_S + "local.conf").c_str(), localConf);
  45. if (localConf.empty()) {
  46. dump << "None Present" << ZT_EOL_S;
  47. }
  48. else {
  49. dump << localConf << ZT_EOL_S;
  50. }
  51. }