[haiku-commits] Re: haiku: hrev48737 - in docs/user/net/images: . docs/user docs/user/net

  • From: Adrien Destugues <pulkomandy@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 28 Jan 2015 09:26:59 +0100

On Wed, Jan 28, 2015 at 01:18:15AM +0100, jscipione@xxxxxxxxx wrote:
> Revision:    hrev48737
> Commit:      b1a9f638daa96471328f57f385ff17a9dee760b2
> URL:         http://cgit.haiku-os.org/haiku/commit/?id=b1a9f638daa9
> Author:      John Scipione <jscipione@xxxxxxxxx>
> Date:        Wed Jan 28 00:16:54 2015 UTC
> 
> Add preliminary Net Kit intro by Philippe Houdoin
> 
> From here:
> http://philippe.houdoin.free.fr/phil/beos/openbeos/network_kit/overview.html
> 
> ----------------------------------------------------------------------------
> 
> diff --git a/docs/user/Doxyfile b/docs/user/Doxyfile
> index 5a64a35..3ba6f77 100644
> --- a/docs/user/Doxyfile
> +++ b/docs/user/Doxyfile
> @@ -766,6 +766,7 @@ IMAGE_PATH             = . \
>                           interface/images \
>                           keyboard \
>                           midi2/images \
> +                         net/images \
>                           storage/images
>  
>  # The INPUT_FILTER tag can be used to specify a program that doxygen should
> diff --git a/docs/user/book.dox b/docs/user/book.dox
> index 72f751d..1487069 100644
> --- a/docs/user/book.dox
> +++ b/docs/user/book.dox
> @@ -471,9 +471,44 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE);
>  
>       \defgroup libmidi2 (libmidi2.so)
>  
> +
>       \defgroup network Network Kit
>       \brief Classes that deal with all network connections and 
> communications.
>  
> +     The Haiku Network Kit consists of:
> +     - A modular, add-ons based network stack
> +     - Two shared libraries, libnet.so and libnetapi.so
> +     - A stack driver, acting as interface between the network stack and
> +       libnet.so
> +     - Basic network apps
> +     - A modular GUI preflet
> +
> +     The libnet.so shared library is the way that BeOS R5 provided POSIX/BSD
> +     API sockets to apps. Being binary compatible with BeOS R5 has made this
> +     library implementation tedious. To counter this, the libnetapi.so shared
> +     library was developed. It contains thin C++ classes wrapping the C
> +     sockets POSIX/BSD API into these BNet* classes we're used under BeOS.
> +
> +     The stack driver is the interface between libnet.so and the real stack
> +     behind it, hosted by the network stack kernel modules. Its purposes
> +     include:
> +     -# Providing sockets to file descriptors translation support
> +     -# Providing support for select() on sockets
> +     -# Loading the network stack on first access, and then keeping it for
> +        further accesses
> +
> +     The following diagram illustrates the network stack design on Haiku:
> +
> +     \image html obos_net_stack_design_1.gif
> +
> +     The Network Kit includes a handful of useful networking related apps
> +     including ping, ifconfig, route, traceroute, and arp.
> +
> +     See the User Guide for more information about the
> +     <a 
> href="http://haiku-os.org/docs/userguide/en/preferences/network.html";>Network 
> preferences app</a>
> +     included as part of the Network Kit.
> +
> +
>       \defgroup storage Storage Kit
>       \brief Collection of classes that deal with storing and retrieving
>               information from disk.
> diff --git a/docs/user/net/_network_intro.dox 
> b/docs/user/net/_network_intro.dox
> new file mode 100644
> index 0000000..97d1c4e
> --- /dev/null
> +++ b/docs/user/net/_network_intro.dox
> @@ -0,0 +1,47 @@
> +/*
> + * Copyright 2004 Philippe Houdoin
> + * Copyright 2009-2015 Haiku, Inc. All rights reserved.
> + * Distributed under the terms of the MIT License.
> + *
> + * Authors:
> + *           Philippe Houdoin
> + *           John Scipione, jscipione@xxxxxxxxx
> + */
> +
> +
> +/*!
> +     \page network_intro Introduction to the Network Kit
> +
> +     The Haiku Network Kit consists of:
> +     - A modular, add-ons based network stack
> +     - Two shared libraries, libnet.so and libnetapi.so
> +     - A stack driver, acting as interface between the network stack and
> +       libnet.so
> +     - Basic network apps
> +     - A modular GUI preflet
> +
> +     The libnet.so shared library is the way that BeOS R5 provided POSIX/BSD
> +     API sockets to apps. Being binary compatible with BeOS R5 has made this
> +     library implementation tedious. To counter this, the libnetapi.so shared
> +     library was developed. It contains thin C++ classes wrapping the C
> +     sockets POSIX/BSD API into these BNet* classes we're used under BeOS.
> +
> +     The stack driver is the interface between libnet.so and the real stack
> +     behind it, hosted by the network stack kernel modules. Its purposes
> +     include:
> +     -# Providing sockets to file descriptors translation support
> +     -# Providing support for select() on sockets
> +     -# Loading the network stack on first access, and then keeping it for
> +        further accesses
> +
> +     The following diagram illustrates the network stack design on Haiku:
> +
> +     \image html obos_net_stack_design_1.gif
> +
> +     The Network Kit includes a handful of useful networking related apps
> +     including ping, ifconfig, route, traceroute, and arp.
> +
> +     See the User Guide for more information about the
> +     <a 
> href="http://haiku-os.org/docs/userguide/en/preferences/network.html";>Network 
> preferences app</a>
> +     included as part of the Network Kit.
> +*/
> diff --git a/docs/user/net/images/obos_net_stack_design_1.gif 
> b/docs/user/net/images/obos_net_stack_design_1.gif
> new file mode 100644
> index 0000000..d08644e
> Binary files /dev/null and b/docs/user/net/images/obos_net_stack_design_1.gif 
> differ
> 
> 

You seem to have added the same information twice. And most of this is
long outdated information (as the "openbeos" in the URL page hints...):
* libnet.so is only for compatibility with BeOS apps, the actual
implementation of the network stack is in libnetwork.so now,
* libnetapi.so was renamed to libbnetapi.so because of a name conflict
with a library provided with Samba,
* libbnetapi.so also now include BNetwork* classes which are the
recommended ones, with the older BNet* interface deprecated,
* libbnetapi.so also includes the "service kit" classes, providing
support for HTTP and other high level protocols. It is not limited to
TCP and UDP anymore.

The diagram documents mostly the internals of the kit, which isn't
really relevant to the Haiku Book, this should be part of the
"internals" documentation instead. It's also missing any mention of the
net_server, which I find strange.

The commands are not really provided by the "network kit". And they
should be documented in the userguide, not in the API guide.

-- 
Adrien.

Other related posts: