Advertisement
bonsaiviking

Diagnose and maybe fix nmap --iflist on bsd

Nov 7th, 2013
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. diff --git a/libnetutil/netutil.cc b/libnetutil/netutil.cc
  2. index 28c624c..ce7d92b 100644
  3. --- a/libnetutil/netutil.cc
  4. +++ b/libnetutil/netutil.cc
  5. @@ -1298,6 +1298,9 @@ static int canonicalize_address(const struct sockaddr_storage *ss,
  6. hints.ai_flags |= AI_NUMERICHOST;
  7.  
  8. rc = getaddrinfo(canonical_ip_string, NULL, &hints, &ai);
  9. + if (rc != 0) {
  10. + fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(rc));
  11. + }
  12. if (rc != 0 || ai == NULL)
  13. return -1;
  14. assert(ai->ai_addrlen > 0 && ai->ai_addrlen <= (int) sizeof(*output));
  15. @@ -1328,8 +1331,15 @@ static int collect_dnet_interfaces(const struct intf_entry *entry, void *arg) {
  16. After that we add the aliases one at a time. */
  17. if (!primary_done) {
  18. if (addr_ntos(&entry->intf_addr, (struct sockaddr *) &tmpss) == -1) {
  19. + fprintf(stderr,"primary - trying %s, type %d, addr_type %d\n", entry->intf_name, entry->intf_type, entry->intf_addr.addr_type);
  20. dcrn->ifaces[dcrn->numifaces].addr.ss_family = 0;
  21. } else {
  22. + fprintf(stderr,"primary - Canonicalizing %s, type %d, addr_type %d\n", entry->intf_name, entry->intf_type, entry->intf_addr.addr_type);
  23. + fprintf(stderr," ai_family = %d, address %s\n", tmpss.ss_family, addr_ntoa(&entry->intf_addr));
  24. +#ifdef AF_LINK
  25. + if (tmpss.ss_family == AF_LINK)
  26. + tmpss.ss_familiy = AF_UNSPEC;
  27. +#endif
  28. rc = canonicalize_address(&tmpss, &dcrn->ifaces[dcrn->numifaces].addr);
  29. assert(rc == 0);
  30. }
  31. @@ -1337,8 +1347,11 @@ static int collect_dnet_interfaces(const struct intf_entry *entry, void *arg) {
  32. primary_done = true;
  33. } else if (num_aliases_done < entry->intf_alias_num) {
  34. if (addr_ntos(&entry->intf_alias_addrs[num_aliases_done], (struct sockaddr *) &tmpss) == -1) {
  35. + fprintf(stderr,"trying %s, type %d, addr_type %d\n", entry->intf_name, entry->intf_type, entry->intf_addr.addr_type);
  36. dcrn->ifaces[dcrn->numifaces].addr.ss_family = 0;
  37. } else {
  38. + fprintf(stderr,"Canonicalizing %s, type %d, addr_type %d\n", entry->intf_name, entry->intf_type, entry->intf_addr.addr_type);
  39. + fprintf(stderr," ai_family = %d, address %s\n", tmpss.ss_family, addr_ntoa(&entry->intf_addr));
  40. rc = canonicalize_address(&tmpss, &dcrn->ifaces[dcrn->numifaces].addr);
  41. assert(rc == 0);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement