NAME¶
ping_setopt - Set options for a liboping object
SYNOPSIS¶
#include <oping.h>
int ping_setopt (pingobj_t *obj, int opt, void *val);
DESCRIPTION¶
The
ping_setopt method sets options that apply to all hosts associated
with the object
obj and hosts that are yet to be added to the object.
The
obj argument is a pointer to an
liboping object, as returned
by
ping_construct(3).
The
opt argument specifies the option to set. Use one of the following
constants. You can check if the required constant is supported by the library
at compile time using "#ifdef". It is recommended to check for
desired features using the "OPING_VERSION" define.
- PING_OPT_TIMEOUT
- The time to wait for a "echo reply" to be
received; in seconds. In this case the memory pointed to by val is
interpreted as a double value and must be greater than zero. The default
is PING_DEF_TIMEOUT.
- PING_OPT_TTL
- The value written into the time-to-live (= TTL) field of
generated ICMP packets. The memory pointed to by val is interpreted
as an integer. Valid values are 1 through 255. Default is
PING_DEF_TTL.
- PING_OPT_AF
- The address family to use. The memory pointed to by
val is interpreted as an integer and must be either
AF_UNSPEC, AF_INET, or AF_INET6. This option only
affects hosts that are being added after this option has been set.
Default is PING_DEF_AF. If you change this option, and a source
address is set (see PING_OPT_SOURCE) that setting will be
reset.
- PING_OPT_DATA
- Set the data to send. The value passed must be a
char-pointer to a null-terminated string. By default a 56 byte long string
is used so that the packet size of an ICMPv4 packet is exactly 64 bytes.
That's the behavior of the ping(1) command.
- PING_OPT_SOURCE
- Set the source address to use. The value passed must be a
char-pointer to a null-terminated string specifying either a numerical
network address or network hostname. This option will ignore the address
family setting (as set with PING_OPT_AF) and will set the object's
address family according to the source address assigned.
- PING_OPT_DEVICE
- Set the outgoing network device to be used. The value
passed must be a char-pointer to a null-terminated string specifying an
interface name (e. g. "eth0"). Please note that this might
not be supported by all operating systems. In that case,
ping_setopt sets the error to "operation not
supported".
- PING_OPT_QOS
- Sets the Quality of Service flags that should be
used when crafting ICMP and ICMPv6 packets. The memory pointed to by
val is interpreted as a "uint8_t". The byte is passed to
setsockopt(2) without modification, using the "IP_TOS"
(IPv4) or "IPV6_TCLASS" (IPv6) option. It is the caller's
responsibility to chose a valid bit combination. For details, read the
ip(7) and ipv6(7) manual pages, as well as
RFC 2474.
The
val argument is a pointer to the new value. It must not be NULL. It
is dereferenced depending on the value of the
opt argument, see above.
The memory pointed to by
val is not changed.
RETURN VALUE¶
ping_setopt returns zero upon success or less than zero upon failure.
SEE ALSO¶
ping_construct(3),
liboping(3)
AUTHOR¶
liboping is written by Florian "octo" Forster <octo at
verplant.org>. Its homepage can be found at
<
http://verplant.org/liboping/>.
Copyright (c) 2005-2011 by Florian "octo" Forster.