Changeset 21608
- Timestamp:
- 10/19/08 11:31:08 (5 years ago)
- Location:
- lang/cplusplus/llv8call/trunk
- Files:
-
- 2 modified
-
ext/socket/socket.cc (modified) (3 diffs)
-
t/100_socket/02_misc.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/cplusplus/llv8call/trunk/ext/socket/socket.cc
r21606 r21608 349 349 END 350 350 351 FUNCTION(_gethostbyaddr) 352 // @return [hostname, aliaslist, ipaddrlist] 353 ARG_COUNT(1); 354 ARG_str(ip_address, 0); 355 struct in_addr addr; 356 addr.s_addr = inet_addr(*ip_address); 357 struct hostent *host = gethostbyaddr(&(addr.s_addr), sizeof(addr.s_addr), AF_INET); 358 if (host) { 359 Handle<Array> result = Array::New(3); 360 result->Set(Int32::New(0), String::New(host->h_name)); 361 { 362 Handle<Array> aliaslist = Array::New(); 363 for (int i=0; host->h_aliases[i]; i++) { 364 aliaslist->Set(Int32::New(i), String::New(host->h_aliases[i])); 365 } 366 result->Set(Int32::New(1), aliaslist); 367 } 368 { 369 Handle<Array> addrlist = Array::New(); 370 for (int i=0; host->h_addr_list[i]; i++) { 371 in_addr a; 372 memcpy(&a.s_addr, host->h_addr_list[i], sizeof(a.s_addr)); 373 addrlist->Set(Int32::New(i), String::New(inet_ntoa(a))); 374 } 375 result->Set(Int32::New(2), addrlist); 376 } 377 return result; 378 } else { 379 herror("gethostbyaddr"); // FIXME 380 return ThrowException(String::New("gethostbyaddr error")); 381 } 382 END 383 351 384 FUNCTION(_getservbyname) 352 385 // @prototype getservbyname(servicename[, protocolname]) … … 863 896 BIND_CM("gethostbyname", _gethostbyname); 864 897 BIND_CM("getprotobyname", _getprotobyname); 898 BIND_CM("gethostbyaddr", _gethostbyaddr); 865 899 BIND_CM("getservbyname", _getservbyname); 866 900 BIND_CM("getservbyport", _getservbyport); … … 889 923 BIND_IM("getsockopt", _getsockopt); 890 924 BIND_IM("close", _close); 891 // rest function is: 16 892 // getaddrinfo 893 // getfqdn 894 // gethostbyaddr 925 // rest function is: 13 895 926 // getnameinfo 896 927 // fromfd -
lang/cplusplus/llv8call/trunk/t/100_socket/02_misc.js
r21606 r21608 31 31 is(JSON.stringify(Socket.getaddrinfo('example.com', 80)), '[[2,1,6,null,["208.77.188.166",80]],[2,2,17,null,["208.77.188.166",80]]]', 'getaddrinfo'); 32 32 33 is(JSON.stringify(Socket.gethostbyaddr('127.0.0.1')), '["localhost",[],["127.0.0.1"]]', 'gethostbyaddr');
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)