611 |
|
|
612 |
ASSERT(hostname); |
ASSERT(hostname); |
613 |
|
|
614 |
if( (hp= gethostbyname(hostname)) == NULL ) |
if((hp= gethostbyname(hostname)) == NULL) |
615 |
return FALSE; |
return FALSE; |
616 |
|
|
617 |
if( (s= socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) < 0 ) |
if((s= socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) < 0) |
618 |
return FALSE; |
return FALSE; |
619 |
|
|
620 |
if( setsockopt(s, SOL_IP, IP_TTL, (char *)&ttl, sizeof(ttl)) < 0 ) |
if(setsockopt(s, SOL_IP, IP_TTL, (char *)&ttl, sizeof(ttl)) < 0) |
621 |
goto error; |
goto error; |
622 |
|
|
623 |
icmphdrout= (struct icmphdr *)xmalloc(sizeof(struct icmphdr)); |
NEW(icmphdrout); |
624 |
icmphdrout->type= ICMP_ECHO; |
icmphdrout->type= ICMP_ECHO; |
625 |
icmphdrout->code= 0; |
icmphdrout->code= 0; |
626 |
icmphdrout->un.echo.id= getpid(); |
icmphdrout->un.echo.id= getpid(); |