Code

liboping(3), oping(1): Correct licensing information.
[liboping.git] / src / mans / liboping.pod
1 =head1 NAME
3 liboping - Library to send ICMPv4/ICMPv6 echo packets to multiple hosts
5 =head1 DESCRIPTION
7 This is an overview of liboping, a C library to send ICMP ECHO_REQUEST packets
8 to remote hosts and measure the time it takes for replies to be received. This
9 method, often simply called "ping", is a common way to measure network latency
10 and/or host reachability.
12 The goals of this library are to provide the above functionality in a platform
13 and protocol independent manner. The interface is simple, object oriented and
14 (hopefully) ANSI-C compliant.
16 =head1 GENERAL USAGE
18 There are two main types that are used by applications. Both are "opaque
19 types", meaning they are structures that are B<not> completely defined in the
20 header file, so you cannot access the structures' members. You don't need to,
21 don't do it. These structures are subject to change without notice.
23 =over 4
25 =item C<pingobj_t>
27 A ping-object. You can set specific options for this object, add and remove
28 hosts to/from it and send ICMP packets to all associated hosts. This is often
29 called a "handle".
31 =item C<pingobj_iter_t>
33 An iterator over the hosts associated with a C<pingobj_t> object. This iterator
34 can be used to query more information about a host, for example the hostname,
35 the measured latency or the current ICMP sequence.
37 =back
39 Upon startup you usually create one or more C<pingobj_t> objects and add hosts
40 to it using the C<ping_host_add> method (see below). You periodically send
41 "echo requests" using the C<ping_send> method, iterate over all hosts using
42 C<ping_iterator_get> and C<ping_iterator_next>. For each host you call
43 C<ping_iterator_get_info> to read the current latency and do something with it.
45 If an error occurs you can use C<ping_get_error> so get information on what
46 failed.
48 =head1 LINKING WITH LIBOPING
50 Depending on you platform you don't need any extra libraries (e.g. GNU/Linux)
51 or C<libsocket> (using C<-lsocket>) if the C<socket> function is not in the
52 C-library. The latter is the case for the Solaris operating system.
54 =head1 SYMBOL NAMES
56 All "official" function or method names are prefixed with "ping_". Don't use
57 any other functions or methods. Although no such functions should exist.
59 =head1 THREAD SAFETY
61 liboping has been designed to be as thread safe a possible. However, this has
62 not been tested and may need some additional work. Use at your own risk and
63 please report back any problems or success messages. Thank you :)
65 =head1 SEE ALSO
67 L<ping_construct(3)>,
68 L<ping_setopt(3)>,
69 L<ping_host_add(3)>,
70 L<ping_send(3)>,
71 L<ping_get_error(3)>,
72 L<ping_iterator_count(3)>,
73 L<ping_iterator_get(3)>,
74 L<ping_iterator_get_info(3)>,
75 L<ping_iterator_get_context(3)>
77 =head1 LICENSE
79 liboping is licensed under the LGPL 2.1 or later.
81 =head1 AUTHOR
83 liboping is written by Florian "octo" Forster E<lt>ff at octo.itE<gt>.
84 Its homepage can be found at L<http://noping.cc/>.
86 Copyright (c) 2005-2017 by Florian "octo" Forster.