dns-dump.cc 801 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include <sys/types.h>
  2. #include <fcntl.h>
  3. #ifdef _MSC_VER
  4. # include <io.h>
  5. #else
  6. # include <unistd.h>
  7. #endif
  8. #include <iostream>
  9. #include <vector>
  10. #include "dns-proto.h"
  11. namespace ares {
  12. static void ShowFile(const char* filename) {
  13. int fd = open(filename, O_RDONLY);
  14. if (fd < 0) {
  15. std::cerr << "Failed to open '" << filename << "'" << std::endl;
  16. return;
  17. }
  18. std::vector<unsigned char> contents;
  19. while (true) {
  20. unsigned char buffer[1024];
  21. int len = read(fd, buffer, sizeof(buffer));
  22. if (len <= 0) break;
  23. contents.insert(contents.end(), buffer, buffer + len);
  24. }
  25. std::cout << PacketToString(contents) << std::endl;
  26. }
  27. } // namespace ares
  28. int main(int argc, char* argv[]) {
  29. for (int ii = 1; ii < argc; ++ii) {
  30. ares::ShowFile(argv[ii]);
  31. }
  32. return 0;
  33. }