Provided by: liboping-dev_1.10.0-5build5_amd64 bug

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.

       PING_OPT_MARK
           Mark  (as  in netfilter) outgoing packets using the SO_MARK socket option. Takes an int* pointer as a
           value. Setting this requires CAP_NET_ADMIN under Linux.  Fails  with  "operation  not  supported"  on
           platforms which don't have SO_MARK.

       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  <ff  at  octo.it>.   Its  homepage  can  be  found  at
       <http://noping.cc/>.

       Copyright (c) 2006-2017 by Florian "octo" Forster.

1.10.0                                             2024-03-31                                     ping_setopt(3)