/**
* Object oriented C module to send ICMP and ICMPv6 `echo's.
- * Copyright (C) 2006-2016 Florian octo Forster <ff at octo.it>
+ * Copyright (C) 2006-2017 Florian octo Forster <ff at octo.it>
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
#ifdef SO_TIMESTAMP
if (1) /* {{{ */
{
- int status;
- int opt = 1;
-
- status = setsockopt (fd,
- SOL_SOCKET, SO_TIMESTAMP,
- &opt, sizeof (opt));
+ int status = setsockopt (fd, SOL_SOCKET, SO_TIMESTAMP,
+ &(int){1}, sizeof(int));
if (status != 0)
{
ping_set_errno (obj, errno);
if (addrfam == AF_INET)
{
- int opt;
-
#ifdef IP_RECVTOS
/* Enable receiving the TOS field */
- opt = 1;
- setsockopt (fd, IPPROTO_IP, IP_RECVTOS,
- &opt, sizeof (opt));
+ setsockopt (fd, IPPROTO_IP, IP_RECVTOS, &(int){1}, sizeof(int));
#endif /* IP_RECVTOS */
/* Enable receiving the TTL field */
- opt = 1;
- setsockopt (fd, IPPROTO_IP, IP_RECVTTL,
- &opt, sizeof (opt));
+ setsockopt (fd, IPPROTO_IP, IP_RECVTTL, &(int){1}, sizeof(int));
}
#if defined(IPV6_RECVHOPLIMIT) || defined(IPV6_RECVTCLASS)
else if (addrfam == AF_INET6)
{
- int opt;
-
# if defined(IPV6_RECVHOPLIMIT)
/* For details see RFC 3542, section 6.3. */
- opt = 1;
setsockopt (fd, IPPROTO_IPV6, IPV6_RECVHOPLIMIT,
- &opt, sizeof (opt));
+ &(int){1}, sizeof(int));
# endif /* IPV6_RECVHOPLIMIT */
# if defined(IPV6_RECVTCLASS)
/* For details see RFC 3542, section 6.5. */
- opt = 1;
setsockopt (fd, IPPROTO_IPV6, IPV6_RECVTCLASS,
- &opt, sizeof (opt));
+ &(int){1}, sizeof(int));
# endif /* IPV6_RECVTCLASS */
}
#endif /* IPV6_RECVHOPLIMIT || IPV6_RECVTCLASS */
{
pingobj_t *obj;
- if ((obj = (pingobj_t *) malloc (sizeof (pingobj_t))) == NULL)
+ if ((obj = malloc (sizeof (*obj))) == NULL)
return (NULL);
- memset (obj, 0, sizeof (pingobj_t));
+ memset (obj, 0, sizeof (*obj));
obj->timeout = PING_DEF_TIMEOUT;
obj->ttl = PING_DEF_TTL;
void ping_destroy (pingobj_t *obj)
{
pinghost_t *current;
- pinghost_t *next;
if (obj == NULL)
return;
current = obj->head;
- next = NULL;
while (current != NULL)
{
- next = current->next;
+ pinghost_t *next = current->next;
ping_free (current);
current = next;
}