File tree Expand file tree Collapse file tree 2 files changed +24
-16
lines changed Expand file tree Collapse file tree 2 files changed +24
-16
lines changed Original file line number Diff line number Diff line change @@ -913,27 +913,24 @@ addToLibrary({
913913  $DNS : { 
914914    address_map : { 
915915      id : 1 , 
916-       addrs : { } , 
917-       names : { } 
916+       addrs : { ' localhost ': ' 127.0 .0 .1 ' } , 
917+       names : { ' 127.0 .0 .1 ': ' localhost ' } 
918918    } , 
919919
920920    lookup_name ( name )  { 
921921      // If the name is already a valid ipv4 / ipv6 address, don't generate a fake one. 
922-       var  res  =  inetPton4 ( name ) ; 
923-       if  ( res  !==  null )  { 
922+       if  ( inetPton4 ( name )  !=  null )  { 
924923        return  name ; 
925924      } 
926-       res  =  inetPton6 ( name ) ; 
927-       if  ( res  !==  null )  { 
925+       // Unlike the inetPton4 above we don't need and explict null comparison 
926+       // here since there are no valie v6 addresses that are falsey. 
927+       if  ( inetPton6 ( name ) )  { 
928928        return  name ; 
929929      } 
930930
931931      // See if this name is already mapped. 
932-       var  addr ; 
933- 
934-       if  ( DNS . address_map . addrs [ name ] )  { 
935-         addr  =  DNS . address_map . addrs [ name ] ; 
936-       }  else  { 
932+       var  addr  =  DNS . address_map . addrs [ name ] ; 
933+       if  ( ! addr )  { 
937934        var  id  =  DNS . address_map . id ++ ; 
938935        assert ( id  <  65535 ,  'exceeded max address mappings of 65535' ) ; 
939936
@@ -947,11 +944,8 @@ addToLibrary({
947944    } , 
948945
949946    lookup_addr ( addr )  { 
950-       if  ( DNS . address_map . names [ addr ] )  { 
951-         return  DNS . address_map . names [ addr ] ; 
952-       } 
953- 
954-       return  null ; 
947+       // Returns `undefined` if that address is not in the map. 
948+       return  DNS . address_map . names [ addr ] ; 
955949    } 
956950  } , 
957951
Original file line number Diff line number Diff line change @@ -293,6 +293,20 @@ int main() {
293293  assert (sa4 -> sin_port  ==  ntohs (80 ));
294294  freeaddrinfo (servinfo );
295295
296+   // test loopback address 
297+   err  =  getaddrinfo ("localhost" , "89" , & hints , & servinfo );
298+   assert (!err );
299+   print_addrinfo (servinfo );
300+   sa4  =  ((struct  sockaddr_in * )servinfo -> ai_addr );
301+   assert (servinfo -> ai_family  ==  AF_INET );
302+   assert (servinfo -> ai_socktype  ==  SOCK_STREAM );
303+   assert (servinfo -> ai_protocol  ==  IPPROTO_TCP );
304+   assert (sa4 -> sin_port  ==  ntohs (89 ));
305+   struct  in_addr  addr ;
306+   inet_aton ("127.0.0.1" , & addr );
307+   assert (sa4 -> sin_addr .s_addr  ==  addr .s_addr );
308+   freeaddrinfo (servinfo );
309+ 
296310#ifdef  __EMSCRIPTEN__ 
297311  // test gai_strerror 
298312  CHECK_ERR (0 , "Unknown error" );
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments