Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ping_setopt(3)			    liboping			  ping_setopt(3)

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 con-
     stants. You can check if the required constant is supported by the  library
     at compile time using "#ifdef". It is recommended to check for desired fea-
     tures 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 ad-
	 dress 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 op-
	 erating 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 op-
	 tion.	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  home-
     page can be found at <http://noping.cc/>.

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

1.10.0				   2017-05-11			  ping_setopt(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ping_setopt&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help