History log of /haiku/src/kits/network/libnetapi/Jamfile
Revision Date Author Comments
# 0992009d 31-May-2023 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

libnetapi: remove support for old OpenSSL versions, prepare for OpenSSL 3

- Remove backported function that was needed only for old OpenSSL versions
- Add compile time options to declare which version of OpenSSL API we
want to use

This should make it possible to build with OpenSSL 3 while keeping the
old APIs available. Once the migration to OpenSSL 3 is done, we can bump
the OPENSSL_API_COMPAT value to get compile time errors when using APIs
that are deprecated in OpenSSL3, and rewrite all the code that needs
changes.

Change-Id: I606633739ed12f9698a3013989025b68478352fc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6484
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# a00a1da3 11-Sep-2021 Niels Sascha Reedijk <niels.reedijk@gmail.com>

libbnetapi.so: remove deprecated network services classes

This was communicated to devs and end users to happen after R1 beta 3

Change-Id: I65177c0061a58519b04d944ad6a73677ad77206a


# 35d8d4d1 19-Jan-2021 Niels Sascha Reedijk <niels.reedijk@gmail.com>

libnetapi.so: move deprecated classes out into a libnetservices directory

These classes have been moved to the public API too soon, and they need some
more time to mature before they can be declared stable.

In this first step the classes that are involved, are moved to a separate
folder. They will still be linked to libnetapi.so, so that binaries that
depend on them currently will not break.

Change-Id: I6c16f17573d819314a27936f065ebe675846f763
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3664
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# d9ef4f90 17-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove GPL-licensed implementation of MD5

APE reader was using a GPL licensed version of MD5. A similar
implementation in the public domain was available in libnetapi, which I
moved to libshared so the APE reader can use it (and made some fixes,
missing const mainly). It only needs a small wrapper to use it easily
from C++ in a way compatible with the previous implementation.

Part of #13814.


# 49506076 19-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Add a features.h to auto enable _DEFAULT_SOURCE

Unless __STRICT_ANSI__ is defined (as it is when running the compiler in
--std=c89 or --std=c99, but not when running it without any specific
args), we can enable these by default and behave like most other
systems. I don't know why no one has done this yet despite suggesting it
multiple times and people prefer to #define _BSD_SOURCE manually
everywhere.

Remove all places in our Jamfiles and sources where it had been defined.
_DEFAULT_SOURCE is now enabled by default for all sources of Haiku, since we
let the compiler use GNU extensions (no strict C standard specified on
command line)

Use _DEFAULT_SOURCE as the define name to match current versions of
glibc. Enable it if _BSD_SOURCE is #defined in compiler flags, for
backward compatibility.

Change-Id: I6db04da5f6db437723cdfba3478f5094a69d7727
Reviewed-on: https://review.haiku-os.org/c/1633
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# d65ffc92 02-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

libnetapi: Remove __gNetAPIStart.

Not used by anything.


# 753c7e08 05-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

freebsd11_wlan -> freebsd_wlan.

FreeBSD 12's net80211 layer contains only 2 small KPI breaks from FreeBSD 11,
so we can upgrade it, apply those 2 changes to the drivers which are affected
(as the changes are in some lesser-used functions), and then upgrade all drivers
one at a time.


# dba28784 24-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

freebsd11_network -> freebsd_network.

FreeBSD 12 has no major changes to the ifnet KPIs that constitute a
source compatibility break, save a single one related to locking
which doesn't really apply to us, and so we don't need to create
a "freebsd12_network" directory to work through the upgrades.


# 0dc3ab4f 01-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

libnetapi: Do not use the freebsd11_network headers globally.

Since they were being Use'd at global scope, the FreeBSD versions
of a number of POSIX headers were being used instead of the POSIX ones,
which breaks the build on non-x86 as these headers presently do not work
elsewhere.

Instead, just include the base directory, and then include the compat
headers manually in the one place that actually requires them.
Also fix all the other files that expected errno.h and others to
be included implicitly, which they now are not.

This should fix the PowerPC and (part of the) ARM builds.


# 1e29bfd7 18-Jul-2018 Augustin Cavalier <waddlesplash@gmail.com>

Update all remaining consumers of the FreeBSD compat headers.


# 2c26ad4b 29-Dec-2016 Adrien Destugues <pulkomandy@gmail.com>

move BUrl to the support kit

It is used by the media kit, which created a dependency from libmedia to
libbnetapi to openssl.
It is not entirely specific to the network kit, there are some use cases
that don't involve network at all.


# 493cced1 30-Apr-2016 Rene Gollent <rene@gollent.com>

libbnetapi: Add socket messenger class.

- Introduces new network API class BSocketMessenger, allowing one to send
and receive BMessages across a network socket in a BMessenger-like
fashion. Still very much WIP, hence currently not exposed via public headers.
Based partly on previous work by Axel.


# 8028ede7 15-Jan-2016 Rene Gollent <rene@gollent.com>

Build: Add architecture rule for libshared.a.

- As suggested by Ingo, add libshared.a to the architecture name map.
This allows it to be linked by its short name like other frequently
used libraries.
- Adjust all Jamfiles referencing the lib accordingly.


# c6149613 10-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

Implement CONNECT pass-through for HTTPS proxy

* When using a proxy, HTTPS connexion must still go directly to the
target website. The proxy can then act as a TCP stream relay and just
transmit the raw SSL stream between the client and website.
* For this, we ask the proxy sending an HTTP request with the CONNECT
method. If the proxy supports this, we can then send anything as the
payload and it will be forwarded.
* Untested, as the network here in Dusseldorf doesn't let me use a
proxy.

ticket : #10973


# 8d2aee6b 14-Jun-2015 Adrien Destugues <pulkomandy@gmail.com>

libbind: integrate "netresolv" patches from NetBSD.

libbind development was transferred to the NetBSD project at
http://wiki.netbsd.org/individual-software-releases/netresolv/

There isn't an official release yet, but they provide a set of patches
against the latest libbind release.

* Remove all files we don't use
* Merge the changes to the remaining files
* Add some new files we need
* Move getifaddrs implementation to libnetwork (instead of libbnetapi)
so it can be used by netresolv.

Fixes #8293 : netresolv uses getifaddrs to determine if there is a local
IPv6 address. If there is not, it will not return AAAA records.


# 091a80ae 15-Apr-2015 Adrien Destugues <pulkomandy@gmail.com>

Protect all BSD extensions with _BSD_SOURCE

* Do not define the symbols by default, as they are not in the default
libraries.
* Adjust jamfiles of all code using BSD extensions to define
_BSD_SOURCE.
* This makes Haiku slightly more compliant to standard C/POSIX.


# 9bf9ee38 12-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

Whitespace and style cleanup only.


# 3b7b927d 12-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

libbnetapi: Add BNetworkRoute to replace use of route_entry.

The BNetworkRoute class manages a route_entry and the sockaddr's
associated with it. It replaces the direct use of route_entry in the
BNetworkInterface API.

Using route_entry is fragile and inconvenient as it only holds pointers
to the sockaddr's. When getting a list of routes from the kernel, each
route_entry is set up so that its pointers point into the single flat
buffer that is passed around. Creating a copy of the route_entry and
then deleting the flat buffer makes the pointers in the copy stale.
Returning these route entries therefore always lead to a use-after-free
when they were eventually used.

BNetworkRoute also takes over the code and functionallity of getting
routes from RouteSupport. The corresponding method in BNetworkRoster is
replaced by a static method in BNetworkRoute.

Also distinguish between the default route and gateway of an interface.
GetDefaultRoute() now gets the default BNetworkRoute for the interface
while GetDefaultGateway() gets the associated gateway address within
that default route. Adjust network preferences panel to this change.

Note that we currently only seem to have per interface default routes
and not an actual global default route. This was already the case before
these changes and I did not further investigate what this means.


# fd55fb66 18-Feb-2015 Axel Dörfler <axeld@pinc-software.de>

Moved net_server's settings to libbnetapi.

* As experimental API class BNetworkSettings.
* Added add/remove methods for interfaces, and services, too.
* Moved the conversion of the wireless networks into the settings class,
too, so that it only gives out converted ones (but accepts both
variants).


# 77206143 05-Feb-2015 Axel Dörfler <axeld@pinc-software.de>

Revert "Move getifaddrs to libnetwork again."

This reverts commit 31ea76548a64b232ed10cb444bf84ca1f7e40b0f.

Adrien, please try again without clobbering the otherwise nice
BNetworkInterface API!

Conflicts:
src/kits/network/getifaddrs.cpp


# 31ea7654 20-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

Move getifaddrs to libnetwork again.

* BNetworkInterfaceAddress is moved to libnetwork. It is modified to not
use BNetworkAddress (which is in libbnetapi) and instead use sockaddr
and sockaddr_storage directly. All callers are adjusted to this.
* Some support code is shared between BNetworkInterface and
BNetworkInterfaceAddress, move it to libnetwork but in the BPrivate
namespace.


# 46c267cf 16-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

Move getifaddrs to libbnetapi

* Since it uses BNetworkAddress, it can't be in libnetwork.


# 9bf4e994 21-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

BUrl: IDNA ToUnicode and ToASCII conversions.

* Since DNS are normally restricted to ASCII, the use of UTF-8 in domain
names is implemented using a "punycode" encoding.
* The request to the DNS server must be sent with the ASCII
representation of the domain name, however the Unicode one should be
used for user-visible parts.
* ICU provides an implementation of the conversion, which we use here.
* Conversion is currently done in-place and modifies the BUrl object
(this is similar to UrlEncode/UrlDecode).
* Adjust existing IDN test to make use of these methods. It's passing
now.


# 3006031a 01-Oct-2014 Oliver Tappe <zooey@hirschkaefer.de>

Move Geolocation to kits/shared and make it private.


# 13f04588 23-Sep-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Add BGeolocation experimental API.

A BGeolocation object can query an online service to get geolocation
and geotagging data:
* LocateSelf() tries to locate the machine it is running on, by using an
online database of wifi access points
* Locate() (not yet implemented) searches a BString and converts it to
lat/lon coordinates (reverse geotagging)
* Name() (not yet implemented) finds a suitable name for the given
coordinates (address, building name, or anything fitting).

The default service used is openbmap.org, which is freely available but
not very accurate. A request has been sent to Mozilla to use MLS
(Mozilla Location Services), which is a bit more accurate but needs an
API key. MLS is used for geolocation on FirefoxOS, for mobile phones
which don't have a GPS, and the data can be contributed by Firefox for
Android or the dedicated MozStumbler app.

Alternatively, Google Maps also provide the service, but wants
people to pay for it. Google Maps data is more accurate as all Android
devices contribute data to it.

All 3 services use the same JSON-based API: we send a list of reachable
Wifi APs (mac address and signal strength), and we get lattitude and
longitude information, and possibly extra data which will currently be
unused.

This can be used to implement HTML5 geolocation with reasonably accurate
results, but it can also be used in other places. For example
FirstBootPrompt could try to guess a list of most likely languages and
keyboard layouts from it (if wifi is working at install time, that is).


# 220d0402 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# 2f9b1874 04-Aug-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Factor out a BNetworkRequest

* Shares common behavior between the Gopher and HTTP request handlers.
* Most of this can be used when implemeting other protocols.


# 0c1a4ebf 25-Jul-2014 François Revol <revol@free.fr>

Preliminary support for Gopher

Currently parses information and text items and retrives files.


# 2573655b 02-Jul-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Revert "HttpRequest: support gzip and deflate compression.""

This reverts commit 256080b112e417fc4fd2f3f9fcb23485e1b23b42.

With the following changes:
* Adjusted to the BZlibCompressionAlgorithm API.
* Add some error handling.


# 256080b1 18-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "HttpRequest: support gzip and deflate compression."

This reverts commit c3d0dd7a5e6ca1d2d43b6ebfb4c6a67300c780f7.

Conflicts:
src/kits/network/libnetapi/HttpRequest.cpp
src/kits/network/libnetapi/Jamfile


# f256bccc 18-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Fix zlib-dependency in libnetapi."

This reverts commit 6b6ff33d607f01ac07dc1fa1305eddb9f801dc73.


# 6b6ff33d 24-May-2014 Oliver Tappe <zooey@hirschkaefer.de>

Fix zlib-dependency in libnetapi.

* Fix copy-'n'paste bug that resulted in the zlib.h dependency being
added to no source file at all.


# 2e61b6dd 02-Mar-2014 Oliver Tappe <zooey@hirschkaefer.de>

Adjust libnetwork.so to no longer depend on libbe.so.

* Libbe is not available when cross-building the *_bootstrap packages,
so no libnetwork could not be used either, which made building
anything network-related impossible.
* The only code in libnetwork that requires libbe is the notification,
so I moved that over to libbnetapi. Non-C++ applications can't use
the notification calls anyway, as their interface is C++-only.


# c3d0dd7a 10-Feb-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

HttpRequest: support gzip and deflate compression.

* Use the ZlibDecompressor to decompress the data
* Advertise support in accept-encoding

This should make web browsing feel even faster on wesites that support
these compresion schemes. It also fixes some websites (www.ru,
rainloop.net, ...) that serve gzipped resources even to browser not
supporting it.


# 159d1fb6 15-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Style fixes, build fix with OpenSSL disabled.


# 5ebdc799 15-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

SecureSocket: add some certificate support

* Instead of creating an OpenSSL context ofor each socket, use a global
one and initialize it lazily when the first SecureSocket is created
* Load the certificates from our certificate list so SSL certificates
sent by servers can be validated.
* Add a callback for signalling that certificate validation failed, the
default implementation proceeds with the connection anyway (to keep the
old behavior).
* Introduce BCertificate class, that provides some information about a
certificate. Currently it's only used by the callback mentionned above,
but it will be possible to get the leaf certificate for the connection
after it's established.

Review of the API and implementation is welcome, before I start making
use of this in HttpRequest and WebKit to allow the user to accept new
certificates.


# 824dd0a8 09-Dec-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

Reintroduce BUrlResult and add BDataRequest

* BUrlResult is back, with ContentType and Length methods.
* BHttpResult subclasses it and use HTTP header fields to implement
those
* Introduce BDataRequest for "data" URIs. These embed the data inside
the URI, either as plaintext or base64 encoded.


# 41d42066 18-Nov-2013 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added family parameter to the GetRoutes() API.
Moved common code to a private file.


# c52c444c 24-Oct-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

Add file: protocol handler.


# afd547b3 08-Oct-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

Refactor UrlRequest/UrlProtocol in the Service Kit

* Remove the BUrlRequest class, which was only delegating work to
BUrlProtocol and subclasses
* Rename BUrlProtocol to BUrlRequest, and BUrlRequestHttp to BHttpRequest
* Creating a request is now done through the BUrlProtocolRoster. For
now there is just a static MakeRequest method, this will be completed
when we get to actually allowing add-ons to provide different request
handlers.

This allows cleanup of the API for requests:
* Remove the universal SetOption method with constants, and have
dedicated setters for each protocol option.
* Setters can now have multiple parameters, for example you can give
BHTTPRequest a BDataIO and a known size
* In this case, the BHttpRequest will not use HTTP chunked transfers,
which were always used before and made most servers unhappy (tested and
failed with lighttpd, google accounts and github).


# 225b6382 05-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Support building most system libraries for secondary arch

Also adjust the HaikuImageGet[Private]SystemLibs rules to support to
return the library targets matching the current architecture.


# ebb78dd9 13-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Update openssl package

Also use the new build feature rules


# 04b5e12f 13-Mar-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

Network Kit: Fix parallel build

* HttpAuthentication.cpp wasn't in ssl grist
resulting in unmet dependencies. #9523
* md5.c only being used when ssl wasn't available
was kind of spaghetti logic. These changes make
this more obvious.


# d1b6afe6 11-May-2012 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Re-enable the services kit from GSOC 2010

* Use a public domain MD5 implementation when the OpenSSL one is not available
* No functional changes


# f0cacbb3 08-Dec-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

OptionalBuildFeatures -> BuildFeatures, make use of new rules

Got rid of X86_ONLY and friends in HaikuImage, FloppyBootImage, etc.
Instead we use build feature specification annotated lists with
FFilterByBuildFeatures (either explicitly or implicitly where passing
the list directly to the image rules).

I just translated the variables to the respective annotatation in most
cases, though in some cases different annotation would be more correct
(e.g. for the OpenGL stuff).

Provides a simple framework for addressing #3798. The interested reader
may add the build features and add/adjust the annotations accordingly.


# e2c30bd6 21-Nov-2011 Axel Dörfler <axeld@pinc-software.de>

Forgot to include the Jamfile in the commit.

* The socket API is now actually available.


# 60fed7e0 23-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Moved the shared part of NetServer.h into a new private header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2087545c 23-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Added methods to manipulate routes.
* Added AutoConfigure() method.
* Implemented missing Index() method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39592 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d72ede75 10-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* We now use a FreeBSD compatible ifmediareq structure for SIOCIFMEDIA, and
SIOCSIFMEDIA.
* Made sure that the two media ioctls are actually forwarded to the driver.
* Added NetworkDevice.cpp to the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39389 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45939109 27-Oct-2010 Stephan Aßmus <superstippi@gmx.de>

Patch done by Christophe Huriaux as part of GSoC 2010 "Services Kit" project:
Integrated the classes in the Network Kit (libbnetapi.so). Only the foundation
classed BUrl, BUrlContext, BNetworkCookie, BNetworkCookieJar and the private
HttpTime code is currently compiled. The BUrlProtocol currently contains some
misplaced BUrlProtocolHttp specific stuff, and the HTTP stuff itself has a
dependency on libcrypto and should live in an add-on instead. I've sprinkled
some TODOs in the code, and I've done some renaming compared to the last
version of the GSoC patch. Any help to bring this further along is appreciated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39161 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 836c43f2 12-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Factored out a BNetworkAddressResolver from BNetworkAddress, that also allows
to iterate over all possible addresses, as suggested privately by Rene.
* Added flags to the resolving methods that allow more control over the
addresses returned.
* Added setters to BNetworkAddress that accept a service name instead of port
number, renamed PortName() to ServiceName().
* Made the sockaddr* cast operators return a const sockaddr as it was supposed
to be, although I should probably add non-const ones as well.
* This also simplified the code somewhat.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38039 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c2808ea7 09-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Adapted API as needed, and implemented most of the C++ API - it's completely
untested at this point, though.
* Will port ifconfig, NetworkStatus, and the Network preferences application
later in order to test the API.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37988 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf58f252 06-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Adapted headers after Stippi's suggestions - I won't add the const until I
know how I implement that function :-)
* Cleaned up libbnetapi.so Jamfile, removed non-Haiku target code.
* Added empty files to the build to see that the headers are compiling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37942 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16d5c24e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d254c83c 17-Jan-2009 Bruno G. Albuquerque <bga@bug-br.org.br>

- Changed BNetBuffer to a simpler (and R5 compatible) implementation.
- This has the side effect that now it actually works.
- This also indirectly fix BNetEndpoint usage of BNetBuffer.
- Added DynamicBuffer (the underlying buffer implementation) to the Jamfile.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28928 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07ddcd64 14-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed libnetapi to libbnetapi. Create a symlink in the image.
* Extended R5 compatibility check to also consider calls from
libbnetapi.
* Fixed incorrect R5 compatibility check in BNetEndpoint constructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25489 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9b4fea7e 13-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made libnetapi a separate library again.
* The built-in services are no longer added as resource to libnetwork,
but as attribute. This removes the libbe dependency.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25485 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e8ac290 12-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prefixed the variables NETWORK_LIBS, NETAPI_LIB, and
SELECT_UNAME_ETC_LIB with TARGET_ and introduced HAIKU_* and HOST_*
counterparts.
* Use HOST_NETWORK_LIBS for building remote_disk_server.
* Also got rid of {R5,BONE,DANO,HAIKU}_COMPATIBLE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21912 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb4e3730 06-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

* Followed suggestions by Philippe and moved libnetapi.so into libnetwork.so as well.
* Also added libbnetapi.so and libnetapi.so to the R5 compatibility evaluation score.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 241b0480 28-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

* Fixed build of libnetapi.so - it probably won't work for now, though, have a look
at the comment in r5_compatibility.h.
* Intentionally broke source compatibility and removed all that outdated Nettle stuff.
* Also, I took the liberty of making m_init private and rename it to fInit - again, this
will only affect source compatibility.
* Rewrote NetEndpoint.h
* Fixed quite a few small bugs around the code that I touched, for example in NetAddress,
SetTo() never set fInit, and therefore could be wrong.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18680 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6fdccb80 28-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Moved libnetapi.so sources into the src/kit/net/ directory - they don't yet build, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18678 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67b376e9 26-Nov-2005 Waldemar Kornewald <wkornew@nowhere.fake>

Moved our networking libraries to src/kits/network/compat. We want to have our own, clean libnetwork.so.

TODO: move all public networking headers to some other place (compat or headers/legacy?) and replace the current headers with clean versions from FreeBSD and BIND 9.3.1
TODO: remove R5 target support


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b8ddda5 11-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Added socket.c to the build again. It is of course neccessary to have it in libnet.so. The real version of socket is in libsocket.so.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12290 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a43fdf8 09-Apr-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed the build for target Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12282 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22f72496 09-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Adapt the build of the network libraries to the different target platforms. If we compile for Haiku we don't want select for example as we have it in libroot, but we need it under R5.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12275 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ada7820 27-Aug-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

NetworkingKit package's libs where misplaced, installed into
Desktop/openbeos-networkingkit-cvs, when bin tools where, them, installed into Desktop/haiku-networkingkit-cvs !
This should not have help earlier tester(s) ;-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8675 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c42f7bc 13-Aug-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

Complete BNetEdnpoint implementation, based on Alexandre Bique contribution.
Fix sendto() and recvfrom() sockaddr length argument to int, not size_t.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8564 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f6af500 26-Jul-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

openbeos-networkingkit-cvs => haiku-networkingkit-cvs
Haiku'ed libnet/README.html


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8476 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31dca902 14-May-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

libnetapi.so is now again linked against libnet.so to be R5 binary compatible.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7584 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38737ad1 25-Apr-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Just changed the libs to link against our private libsocket.so.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7305 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ffa9d4cc 15-Apr-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Now linking against libsocket.so.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c52e77c0 16-Jan-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

Pre-alpha networkingkit packaging network libs and apps.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6110 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bd3c770 14-Jan-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

Add an install_netwrok_etc_files rule to install our BINDy /etc/services,
/etc/resolv.conf and co installed.
Make libnet.so depend on these network etc files installation.
Make libnetapi.so depend on libnet.so.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6073 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09eceed9 17-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for installing the networking stuff. Use: jam [un]install-networking.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b3c3547 16-May-2003 beveloper <beveloper@nowhere.fake>

Updated jamfiles to match recent cvs changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3249 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ae0638a6 31-Oct-2002 Philippe Houdoin <philippe.houdoin@gmail.com>

On behalf of Scott Mansfield, here come 3/4 of libnetapi.so rewritten,
and now building for your pleasure ;-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1813 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9fc71646 23-Oct-2002 beveloper <beveloper@nowhere.fake>

allow building everything without local(tree external) header files beeing
used for kernel or kit components


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1630 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f048ab01 28-Aug-2002 Philippe Houdoin <philippe.houdoin@gmail.com>

Ooops, libnetapi.so should link against libnet.so!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@916 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f3dfda17 27-Aug-2002 Philippe Houdoin <philippe.houdoin@gmail.com>

Moving net kit libnet.so and libnetapi.so source code to /current.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@895 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d2aee6bc8f64e410788506daa9d09d487594d05 14-Jun-2015 Adrien Destugues <pulkomandy@gmail.com>

libbind: integrate "netresolv" patches from NetBSD.

libbind development was transferred to the NetBSD project at
http://wiki.netbsd.org/individual-software-releases/netresolv/

There isn't an official release yet, but they provide a set of patches
against the latest libbind release.

* Remove all files we don't use
* Merge the changes to the remaining files
* Add some new files we need
* Move getifaddrs implementation to libnetwork (instead of libbnetapi)
so it can be used by netresolv.

Fixes #8293 : netresolv uses getifaddrs to determine if there is a local
IPv6 address. If there is not, it will not return AAAA records.


# 091a80aeed690e629167ea9e5603f51d950e49b8 15-Apr-2015 Adrien Destugues <pulkomandy@gmail.com>

Protect all BSD extensions with _BSD_SOURCE

* Do not define the symbols by default, as they are not in the default
libraries.
* Adjust jamfiles of all code using BSD extensions to define
_BSD_SOURCE.
* This makes Haiku slightly more compliant to standard C/POSIX.


# 9bf9ee3806866886516cbe7b37dea5f8985c7186 12-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

Whitespace and style cleanup only.


# 3b7b927dd01fc96efcda618430851e691ebdb313 12-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

libbnetapi: Add BNetworkRoute to replace use of route_entry.

The BNetworkRoute class manages a route_entry and the sockaddr's
associated with it. It replaces the direct use of route_entry in the
BNetworkInterface API.

Using route_entry is fragile and inconvenient as it only holds pointers
to the sockaddr's. When getting a list of routes from the kernel, each
route_entry is set up so that its pointers point into the single flat
buffer that is passed around. Creating a copy of the route_entry and
then deleting the flat buffer makes the pointers in the copy stale.
Returning these route entries therefore always lead to a use-after-free
when they were eventually used.

BNetworkRoute also takes over the code and functionallity of getting
routes from RouteSupport. The corresponding method in BNetworkRoster is
replaced by a static method in BNetworkRoute.

Also distinguish between the default route and gateway of an interface.
GetDefaultRoute() now gets the default BNetworkRoute for the interface
while GetDefaultGateway() gets the associated gateway address within
that default route. Adjust network preferences panel to this change.

Note that we currently only seem to have per interface default routes
and not an actual global default route. This was already the case before
these changes and I did not further investigate what this means.


# fd55fb661591f2b63d5d961a6cf1f475be21ad9d 18-Feb-2015 Axel Dörfler <axeld@pinc-software.de>

Moved net_server's settings to libbnetapi.

* As experimental API class BNetworkSettings.
* Added add/remove methods for interfaces, and services, too.
* Moved the conversion of the wireless networks into the settings class,
too, so that it only gives out converted ones (but accepts both
variants).


# 7720614300ff86e823735adcb96690c822dd60f8 05-Feb-2015 Axel Dörfler <axeld@pinc-software.de>

Revert "Move getifaddrs to libnetwork again."

This reverts commit 31ea76548a64b232ed10cb444bf84ca1f7e40b0f.

Adrien, please try again without clobbering the otherwise nice
BNetworkInterface API!

Conflicts:
src/kits/network/getifaddrs.cpp


# 31ea76548a64b232ed10cb444bf84ca1f7e40b0f 20-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

Move getifaddrs to libnetwork again.

* BNetworkInterfaceAddress is moved to libnetwork. It is modified to not
use BNetworkAddress (which is in libbnetapi) and instead use sockaddr
and sockaddr_storage directly. All callers are adjusted to this.
* Some support code is shared between BNetworkInterface and
BNetworkInterfaceAddress, move it to libnetwork but in the BPrivate
namespace.


# 46c267cf18011590897c353df1cc2649aec3715a 16-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

Move getifaddrs to libbnetapi

* Since it uses BNetworkAddress, it can't be in libnetwork.


# 9bf4e994771d86bafbd15f0eb0e91ff1d482c7ce 21-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

BUrl: IDNA ToUnicode and ToASCII conversions.

* Since DNS are normally restricted to ASCII, the use of UTF-8 in domain
names is implemented using a "punycode" encoding.
* The request to the DNS server must be sent with the ASCII
representation of the domain name, however the Unicode one should be
used for user-visible parts.
* ICU provides an implementation of the conversion, which we use here.
* Conversion is currently done in-place and modifies the BUrl object
(this is similar to UrlEncode/UrlDecode).
* Adjust existing IDN test to make use of these methods. It's passing
now.


# 3006031ac284d9a27b3f5df09ed5974cc31492c4 01-Oct-2014 Oliver Tappe <zooey@hirschkaefer.de>

Move Geolocation to kits/shared and make it private.


# 13f0458896f84bcd6ea7521bb96298565eb2ef78 23-Sep-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Add BGeolocation experimental API.

A BGeolocation object can query an online service to get geolocation
and geotagging data:
* LocateSelf() tries to locate the machine it is running on, by using an
online database of wifi access points
* Locate() (not yet implemented) searches a BString and converts it to
lat/lon coordinates (reverse geotagging)
* Name() (not yet implemented) finds a suitable name for the given
coordinates (address, building name, or anything fitting).

The default service used is openbmap.org, which is freely available but
not very accurate. A request has been sent to Mozilla to use MLS
(Mozilla Location Services), which is a bit more accurate but needs an
API key. MLS is used for geolocation on FirefoxOS, for mobile phones
which don't have a GPS, and the data can be contributed by Firefox for
Android or the dedicated MozStumbler app.

Alternatively, Google Maps also provide the service, but wants
people to pay for it. Google Maps data is more accurate as all Android
devices contribute data to it.

All 3 services use the same JSON-based API: we send a list of reachable
Wifi APs (mac address and signal strength), and we get lattitude and
longitude information, and possibly extra data which will currently be
unused.

This can be used to implement HTML5 geolocation with reasonably accurate
results, but it can also be used in other places. For example
FirstBootPrompt could try to guess a list of most likely languages and
keyboard layouts from it (if wifi is working at install time, that is).


# 220d04022750f40f8bac8f01fa551211e28d04f2 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# 2f9b1874977669807fe200c7d3595d86a1984454 04-Aug-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Factor out a BNetworkRequest

* Shares common behavior between the Gopher and HTTP request handlers.
* Most of this can be used when implemeting other protocols.


# 0c1a4ebf8b65b69d3a6606b3578ba83155f47b58 25-Jul-2014 François Revol <revol@free.fr>

Preliminary support for Gopher

Currently parses information and text items and retrives files.


# 2573655b7962928c847ecc4690d73f0f5b6afb19 02-Jul-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Revert "HttpRequest: support gzip and deflate compression.""

This reverts commit 256080b112e417fc4fd2f3f9fcb23485e1b23b42.

With the following changes:
* Adjusted to the BZlibCompressionAlgorithm API.
* Add some error handling.


# 256080b112e417fc4fd2f3f9fcb23485e1b23b42 18-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "HttpRequest: support gzip and deflate compression."

This reverts commit c3d0dd7a5e6ca1d2d43b6ebfb4c6a67300c780f7.

Conflicts:
src/kits/network/libnetapi/HttpRequest.cpp
src/kits/network/libnetapi/Jamfile


# f256bccc66e15bc713f1097a35a084e2bc218392 18-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Fix zlib-dependency in libnetapi."

This reverts commit 6b6ff33d607f01ac07dc1fa1305eddb9f801dc73.


# 6b6ff33d607f01ac07dc1fa1305eddb9f801dc73 24-May-2014 Oliver Tappe <zooey@hirschkaefer.de>

Fix zlib-dependency in libnetapi.

* Fix copy-'n'paste bug that resulted in the zlib.h dependency being
added to no source file at all.


# 2e61b6dd1dfa06f67a1786a8d1b146206c053646 02-Mar-2014 Oliver Tappe <zooey@hirschkaefer.de>

Adjust libnetwork.so to no longer depend on libbe.so.

* Libbe is not available when cross-building the *_bootstrap packages,
so no libnetwork could not be used either, which made building
anything network-related impossible.
* The only code in libnetwork that requires libbe is the notification,
so I moved that over to libbnetapi. Non-C++ applications can't use
the notification calls anyway, as their interface is C++-only.


# c3d0dd7a5e6ca1d2d43b6ebfb4c6a67300c780f7 10-Feb-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

HttpRequest: support gzip and deflate compression.

* Use the ZlibDecompressor to decompress the data
* Advertise support in accept-encoding

This should make web browsing feel even faster on wesites that support
these compresion schemes. It also fixes some websites (www.ru,
rainloop.net, ...) that serve gzipped resources even to browser not
supporting it.


# 159d1fb69a57dfe50cafdbc9af1b9e99548e24f7 15-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Style fixes, build fix with OpenSSL disabled.


# 5ebdc79955caf4781dfffd14b57849ce40df2117 15-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

SecureSocket: add some certificate support

* Instead of creating an OpenSSL context ofor each socket, use a global
one and initialize it lazily when the first SecureSocket is created
* Load the certificates from our certificate list so SSL certificates
sent by servers can be validated.
* Add a callback for signalling that certificate validation failed, the
default implementation proceeds with the connection anyway (to keep the
old behavior).
* Introduce BCertificate class, that provides some information about a
certificate. Currently it's only used by the callback mentionned above,
but it will be possible to get the leaf certificate for the connection
after it's established.

Review of the API and implementation is welcome, before I start making
use of this in HttpRequest and WebKit to allow the user to accept new
certificates.


# 824dd0a8344ada5f1ae41d5f0c8354b7517f2c79 09-Dec-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

Reintroduce BUrlResult and add BDataRequest

* BUrlResult is back, with ContentType and Length methods.
* BHttpResult subclasses it and use HTTP header fields to implement
those
* Introduce BDataRequest for "data" URIs. These embed the data inside
the URI, either as plaintext or base64 encoded.


# 41d4206692bec4352e7ea02ddb0222eab6b71884 18-Nov-2013 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added family parameter to the GetRoutes() API.
Moved common code to a private file.


# c52c444c2733032679528e83572e8f2f6d576a13 24-Oct-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

Add file: protocol handler.


# afd547b368a43aa45c2be5dde6052242ea1eefce 08-Oct-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

Refactor UrlRequest/UrlProtocol in the Service Kit

* Remove the BUrlRequest class, which was only delegating work to
BUrlProtocol and subclasses
* Rename BUrlProtocol to BUrlRequest, and BUrlRequestHttp to BHttpRequest
* Creating a request is now done through the BUrlProtocolRoster. For
now there is just a static MakeRequest method, this will be completed
when we get to actually allowing add-ons to provide different request
handlers.

This allows cleanup of the API for requests:
* Remove the universal SetOption method with constants, and have
dedicated setters for each protocol option.
* Setters can now have multiple parameters, for example you can give
BHTTPRequest a BDataIO and a known size
* In this case, the BHttpRequest will not use HTTP chunked transfers,
which were always used before and made most servers unhappy (tested and
failed with lighttpd, google accounts and github).


# 225b6382637a7346d5378ee45a6581b4e2616055 05-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Support building most system libraries for secondary arch

Also adjust the HaikuImageGet[Private]SystemLibs rules to support to
return the library targets matching the current architecture.


# ebb78dd9b70b96e75a2763014c579e3973f3179b 13-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Update openssl package

Also use the new build feature rules


# 04b5e12f729138f5ed5265d79c07ecd010747312 13-Mar-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

Network Kit: Fix parallel build

* HttpAuthentication.cpp wasn't in ssl grist
resulting in unmet dependencies. #9523
* md5.c only being used when ssl wasn't available
was kind of spaghetti logic. These changes make
this more obvious.


# d1b6afe678cffdd0d56a9a1dea8071932a568dd7 11-May-2012 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Re-enable the services kit from GSOC 2010

* Use a public domain MD5 implementation when the OpenSSL one is not available
* No functional changes


# f0cacbb32ba55d1fb4bdbd71152e57a3da3f290e 08-Dec-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

OptionalBuildFeatures -> BuildFeatures, make use of new rules

Got rid of X86_ONLY and friends in HaikuImage, FloppyBootImage, etc.
Instead we use build feature specification annotated lists with
FFilterByBuildFeatures (either explicitly or implicitly where passing
the list directly to the image rules).

I just translated the variables to the respective annotatation in most
cases, though in some cases different annotation would be more correct
(e.g. for the OpenGL stuff).

Provides a simple framework for addressing #3798. The interested reader
may add the build features and add/adjust the annotations accordingly.


# e2c30bd6c2e07b26c35ef022219464d09c316519 21-Nov-2011 Axel Dörfler <axeld@pinc-software.de>

Forgot to include the Jamfile in the commit.

* The socket API is now actually available.


# 60fed7e0773745d919253ada6a83bd1a91213726 23-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Moved the shared part of NetServer.h into a new private header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2087545cc057c6c96cf1b14736e58ba4e4012d4d 23-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* Added methods to manipulate routes.
* Added AutoConfigure() method.
* Implemented missing Index() method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39592 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d72ede75fb252c24c8a5fcc39395f9ae1c202322 10-Nov-2010 Axel Dörfler <axeld@pinc-software.de>

* We now use a FreeBSD compatible ifmediareq structure for SIOCIFMEDIA, and
SIOCSIFMEDIA.
* Made sure that the two media ioctls are actually forwarded to the driver.
* Added NetworkDevice.cpp to the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39389 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45939109b4d2aebac59573a0cac0ff5641d47d57 27-Oct-2010 Stephan Aßmus <superstippi@gmx.de>

Patch done by Christophe Huriaux as part of GSoC 2010 "Services Kit" project:
Integrated the classes in the Network Kit (libbnetapi.so). Only the foundation
classed BUrl, BUrlContext, BNetworkCookie, BNetworkCookieJar and the private
HttpTime code is currently compiled. The BUrlProtocol currently contains some
misplaced BUrlProtocolHttp specific stuff, and the HTTP stuff itself has a
dependency on libcrypto and should live in an add-on instead. I've sprinkled
some TODOs in the code, and I've done some renaming compared to the last
version of the GSoC patch. Any help to bring this further along is appreciated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39161 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 836c43f2b8f7519aeccdc30ec2804d0c66d56df4 12-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Factored out a BNetworkAddressResolver from BNetworkAddress, that also allows
to iterate over all possible addresses, as suggested privately by Rene.
* Added flags to the resolving methods that allow more control over the
addresses returned.
* Added setters to BNetworkAddress that accept a service name instead of port
number, renamed PortName() to ServiceName().
* Made the sockaddr* cast operators return a const sockaddr as it was supposed
to be, although I should probably add non-const ones as well.
* This also simplified the code somewhat.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38039 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c2808ea7b2da2e03373962bc413c3c1c73a70e59 09-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Adapted API as needed, and implemented most of the C++ API - it's completely
untested at this point, though.
* Will port ifconfig, NetworkStatus, and the Network preferences application
later in order to test the API.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37988 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf58f252deedcb8b22e8f9a92ed9a1663f67a58d 06-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Adapted headers after Stippi's suggestions - I won't add the const until I
know how I implement that function :-)
* Cleaned up libbnetapi.so Jamfile, removed non-Haiku target code.
* Added empty files to the build to see that the headers are compiling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37942 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16d5c24e533eb14b7b8a99ee9f3ec9ba66335b1e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d254c83c84f230b2fb07c54325c4b6180a7ed4c8 17-Jan-2009 Bruno G. Albuquerque <bga@bug-br.org.br>

- Changed BNetBuffer to a simpler (and R5 compatible) implementation.
- This has the side effect that now it actually works.
- This also indirectly fix BNetEndpoint usage of BNetBuffer.
- Added DynamicBuffer (the underlying buffer implementation) to the Jamfile.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28928 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07ddcd64cfef3d135917011878bc7c2cb027b397 14-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed libnetapi to libbnetapi. Create a symlink in the image.
* Extended R5 compatibility check to also consider calls from
libbnetapi.
* Fixed incorrect R5 compatibility check in BNetEndpoint constructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25489 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9b4fea7ee730525f509cdb998994311e8c2cfedc 13-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made libnetapi a separate library again.
* The built-in services are no longer added as resource to libnetwork,
but as attribute. This removes the libbe dependency.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25485 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e8ac2903b840f54bd891019fac17f2e28cbbc0c 12-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prefixed the variables NETWORK_LIBS, NETAPI_LIB, and
SELECT_UNAME_ETC_LIB with TARGET_ and introduced HAIKU_* and HOST_*
counterparts.
* Use HOST_NETWORK_LIBS for building remote_disk_server.
* Also got rid of {R5,BONE,DANO,HAIKU}_COMPATIBLE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21912 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb4e373041bdb2da5063275ac24bbe032309915c 06-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

* Followed suggestions by Philippe and moved libnetapi.so into libnetwork.so as well.
* Also added libbnetapi.so and libnetapi.so to the R5 compatibility evaluation score.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 241b048033e34efa942d1f43f8d199d086b07743 28-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

* Fixed build of libnetapi.so - it probably won't work for now, though, have a look
at the comment in r5_compatibility.h.
* Intentionally broke source compatibility and removed all that outdated Nettle stuff.
* Also, I took the liberty of making m_init private and rename it to fInit - again, this
will only affect source compatibility.
* Rewrote NetEndpoint.h
* Fixed quite a few small bugs around the code that I touched, for example in NetAddress,
SetTo() never set fInit, and therefore could be wrong.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18680 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6fdccb80f57f9386b43253be9278c40fd7d5cc26 28-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Moved libnetapi.so sources into the src/kit/net/ directory - they don't yet build, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18678 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67b376e9539ff0b7cc4914c79c0976ffb96e6790 26-Nov-2005 Waldemar Kornewald <wkornew@nowhere.fake>

Moved our networking libraries to src/kits/network/compat. We want to have our own, clean libnetwork.so.

TODO: move all public networking headers to some other place (compat or headers/legacy?) and replace the current headers with clean versions from FreeBSD and BIND 9.3.1
TODO: remove R5 target support


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15169 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc301721b1f472e8297a898d4eaa2f2ee3a 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b8ddda544807b4158f427e396e0230b5e70f856 11-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Added socket.c to the build again. It is of course neccessary to have it in libnet.so. The real version of socket is in libsocket.so.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12290 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a43fdf807bc22a0927fdfc331e9ad2717f3b8a9 09-Apr-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed the build for target Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12282 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22f72496d973ccbe12ff239fee876e59cf090c94 09-Apr-2005 Michael Lotz <mmlr@mlotz.ch>

Adapt the build of the network libraries to the different target platforms. If we compile for Haiku we don't want select for example as we have it in libroot, but we need it under R5.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12275 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ada78200d92884a1068de3262c2f77f0a2537ef 27-Aug-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

NetworkingKit package's libs where misplaced, installed into
Desktop/openbeos-networkingkit-cvs, when bin tools where, them, installed into Desktop/haiku-networkingkit-cvs !
This should not have help earlier tester(s) ;-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8675 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c42f7bcf1de1e01c0ea53aee13eefbec266ebc4 13-Aug-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

Complete BNetEdnpoint implementation, based on Alexandre Bique contribution.
Fix sendto() and recvfrom() sockaddr length argument to int, not size_t.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8564 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f6af5000431e3103d3431c6be3746a10d5a7883 26-Jul-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

openbeos-networkingkit-cvs => haiku-networkingkit-cvs
Haiku'ed libnet/README.html


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8476 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31dca902f05e0e03c3f92bb2c17498b37ea10fe7 14-May-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

libnetapi.so is now again linked against libnet.so to be R5 binary compatible.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7584 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38737ad1b103d3323e76d9bcbbd154be5a06efb3 25-Apr-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Just changed the libs to link against our private libsocket.so.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7305 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ffa9d4cce943b58372090ae90d79bf252324f36e 15-Apr-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Now linking against libsocket.so.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c52e77c03d4b7bbc6673a0a40afb729711f1af3b 16-Jan-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

Pre-alpha networkingkit packaging network libs and apps.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6110 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bd3c77058ed8f22049c7dc01a6f424280a186b8 14-Jan-2004 Philippe Houdoin <philippe.houdoin@gmail.com>

Add an install_netwrok_etc_files rule to install our BINDy /etc/services,
/etc/resolv.conf and co installed.
Make libnet.so depend on these network etc files installation.
Make libnetapi.so depend on libnet.so.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6073 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09eceed9b84ee7ca4ab82fae954e8bb7ce4e18d1 17-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for installing the networking stuff. Use: jam [un]install-networking.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b3c3547a5dba50f1c6d601ec1b03ec266674d55 16-May-2003 beveloper <beveloper@nowhere.fake>

Updated jamfiles to match recent cvs changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3249 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ae0638a6be77feda92cf91e3ad82d0b8b652611b 31-Oct-2002 Philippe Houdoin <philippe.houdoin@gmail.com>

On behalf of Scott Mansfield, here come 3/4 of libnetapi.so rewritten,
and now building for your pleasure ;-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1813 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9fc7164698d6f33ed1a1d311078bd7c2f73e6a75 23-Oct-2002 beveloper <beveloper@nowhere.fake>

allow building everything without local(tree external) header files beeing
used for kernel or kit components


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1630 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f048ab013833deb436e1511de488ea1ba5a63315 28-Aug-2002 Philippe Houdoin <philippe.houdoin@gmail.com>

Ooops, libnetapi.so should link against libnet.so!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@916 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f3dfda177957165c55cbe4d0b4386bc114f48e1c 27-Aug-2002 Philippe Houdoin <philippe.houdoin@gmail.com>

Moving net kit libnet.so and libnetapi.so source code to /current.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@895 a95241bf-73f2-0310-859d-f6bbb57e9c96