Diff for /embedaddon/mtr/ui/dns.c between versions 1.1 and 1.1.1.2

version 1.1, 2019/10/21 14:25:31 version 1.1.1.2, 2021/03/17 00:07:30
Line 11 Line 11
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.      GNU General Public License for more details.
   
    You should have received a copy of the GNU General Public License    You should have received a copy of the GNU General Public License along
    along with this program; if not, write to the Free Software    with this program; if not, write to the Free Software Foundation, Inc.,
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */  */
   
 /*  /*
Line 41 Line 41
 #include "dns.h"  #include "dns.h"
 #include "net.h"  #include "net.h"
 #include "utils.h"  #include "utils.h"
   #include "packet/sockaddr.h"
   
 struct dns_results {  struct dns_results {
     ip_t ip;      ip_t ip;
Line 105  static struct dns_results *findip( Line 106  static struct dns_results *findip(
     struct dns_results *t;      struct dns_results *t;
   
     for (t = results; t; t = t->next) {      for (t = results; t; t = t->next) {
        if (addrcmp((void *) ip, (void *) &t->ip, ctl->af) == 0)        if (addrcmp(ip, &t->ip, ctl->af) == 0)
             return t;              return t;
     }      }
   
Line 117  static void set_sockaddr_ip( Line 118  static void set_sockaddr_ip(
     struct sockaddr_storage *sa,      struct sockaddr_storage *sa,
     ip_t * ip)      ip_t * ip)
 {  {
     struct sockaddr_in *sa_in;  
     struct sockaddr_in6 *sa_in6;  
   
     memset(sa, 0, sizeof(struct sockaddr_storage));      memset(sa, 0, sizeof(struct sockaddr_storage));
    switch (ctl->af) {    sa->ss_family = ctl->af;
    case AF_INET:    memcpy(sockaddr_addr_offset(sa), ip, sockaddr_addr_size(sa));
        sa_in = (struct sockaddr_in *) sa; 
        sa_in->sin_family = ctl->af; 
        addrcpy((void *) &sa_in->sin_addr, (void *) ip, ctl->af); 
        break; 
    case AF_INET6: 
        sa_in6 = (struct sockaddr_in6 *) sa; 
        sa_in6->sin6_family = ctl->af; 
        addrcpy((void *) &sa_in6->sin6_addr, (void *) ip, ctl->af); 
        break; 
    } 
 }  }
   
 void dns_open(  void dns_open(
Line 162  void dns_open( Line 150  void dns_open(
             error(EXIT_FAILURE, errno, "signal");              error(EXIT_FAILURE, errno, "signal");
         }          }
   
        /* Close all unneccessary FDs.        /* Close all unnecessary FDs.
            for debugging and error reporting, keep std-in/out/err. */             for debugging and error reporting, keep std-in/out/err. */
         for (i = 3; i < fromdns[1]; i++) {          for (i = 3; i < fromdns[1]; i++) {
             if (i == todns[0])              if (i == todns[0])
Line 276  char *dns_lookup2( Line 264  char *dns_lookup2(
         /* we've got a result. */          /* we've got a result. */
         if (r->name)          if (r->name)
             return r->name;              return r->name;
         else  
             return strlongip(ctl, ip);  
     } else {      } else {
         r = xmalloc(sizeof(struct dns_results));          r = xmalloc(sizeof(struct dns_results));
         memcpy(&r->ip, ip, sizeof(r->ip));          memcpy(&r->ip, ip, sizeof(r->ip));
Line 289  char *dns_lookup2( Line 275  char *dns_lookup2(
         if (rv < 0)          if (rv < 0)
             error(0, errno, "couldn't write to resolver process");              error(0, errno, "couldn't write to resolver process");
     }      }
    return strlongip(ctl, ip);    return NULL;
 }  }
   
   
Line 302  char *dns_lookup( Line 288  char *dns_lookup(
     if (!ctl->dns || !ctl->use_dns)      if (!ctl->dns || !ctl->use_dns)
         return NULL;          return NULL;
     t = dns_lookup2(ctl, ip);      t = dns_lookup2(ctl, ip);
    return t;    return t ? t : strlongip(ctl, ip);
 }  }
   
 /* XXX check if necessary/exported. */  /* XXX check if necessary/exported. */

Removed from v.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>