double latency;
uint32_t dropped;
int recv_ttl;
- unsigned recv_tos;
+ uint8_t recv_tos;
char *data;
void *context;
double timeout;
int ttl;
int addrfamily;
- unsigned tos;
+ uint8_t tos;
char *data;
struct sockaddr *srcaddr;
}
if (ptr != NULL){
- ptr->recv_ttl = ip_hdr->ip_ttl;
- ptr->recv_tos = ip_hdr->ip_tos;
+ ptr->recv_ttl = (int) ip_hdr->ip_ttl;
+ ptr->recv_tos = (uint8_t) ip_hdr->ip_tos;
}
return (ptr);
}
struct timeval diff;
pinghost_t *host = NULL;
int recv_ttl;
- unsigned recv_tos;
+ uint8_t recv_tos;
/*
* Set up the receive buffer..
/* Iterate over all auxiliary data in msghdr */
recv_ttl = -1;
- recv_tos = 0xffff;
+ recv_tos = 0xff;
for (cmsg = CMSG_FIRSTHDR (&msghdr); /* {{{ */
cmsg != NULL;
cmsg = CMSG_NXTHDR (&msghdr, cmsg))
{
memcpy (&recv_tos, CMSG_DATA (cmsg),
sizeof (recv_tos));
- dprintf ("TOSv4 = %u;\n", recv_tos);
+ dprintf ("TOSv4 = %#04"PRIx8";\n", recv_tos);
} else
if (cmsg->cmsg_type == IP_TTL)
{
{
memcpy (&recv_tos, CMSG_DATA (cmsg),
sizeof (recv_tos));
- dprintf ("TOSv6 = %u;\n", recv_tos);
+ dprintf ("TOSv6 = %#04"PRIx8";\n", recv_tos);
} else
if (cmsg->cmsg_type == IPV6_HOPLIMIT)
{
/*
* Set the TOS of a socket protocol independently.
*/
-static int ping_set_tos (pinghost_t *ph, unsigned tos)
+static int ping_set_tos (pinghost_t *ph, uint8_t tos)
{
int ret = -2;
if ((obj = (pingobj_t *) malloc (sizeof (pingobj_t))) == NULL)
return (NULL);
- memset (obj, '\0', sizeof (pingobj_t));
+ memset (obj, 0, sizeof (pingobj_t));
obj->timeout = PING_DEF_TIMEOUT;
obj->ttl = PING_DEF_TTL;
obj->addrfamily = PING_DEF_AF;
obj->data = strdup (PING_DEF_DATA);
- obj->tos = 0;
+ obj->tos = 0;
return (obj);
}
switch (option)
{
- case PING_OPT_TOS:{
- obj->tos=*(unsigned *)value;
+ case PING_OPT_TOS:
+ {
pinghost_t *ph;
+
+ obj->tos = *((uint8_t *) value);
for (ph = obj->head; ph != NULL; ph = ph->next)
ping_set_tos (ph, obj->tos);
break;
}
+
case PING_OPT_TIMEOUT:
obj->timeout = *((double *) value);
if (obj->timeout < 0.0)