History log of /haiku/src/servers/net/NetServer.cpp
Revision Date Author Comments
# 3554137f 27-Jan-2023 Christof Meerwald <cmeerw@cmeerw.org>

network: Always add default route after setting IP address

Previously, a default route was only added if the interface was not
set for auto configuration and it was added before the address was
configured. Currently, using DHCP for IPv4 means that the interface is
set as auto-configured (i.e. this also meant that the statically
configured default route for IPv6 wasn't even attempted to be added).
Also, adding a default route when the address hasn't been set is
questionable.

Always adding a default route (if a gateway is configured) shouldn't
cause any issues, even for auto-configuration cases, as the default
route will just be replaced once auto-configuration has completed
(which already happens for the IP address).

This change fixes network configuration where IPv6 is statically
configured and IPv4 is either also statically configured or
auto-configured.

Change-Id: I6b268ab1fa89777c64e1396cc460444f49edfef9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6039
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# fce7f3a7 09-Dec-2020 X512 <danger_mail@list.ru>

integrate AutoDeleter's into pointers

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


# 6a41334c 06-Aug-2021 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

net_server: remove about box.

Fixes #16823.


# 8fe17af9 24-Dec-2020 Jeremy Visser <jeremyvisser@google.com>

NetServer: set B_UNCONFIGURED_ADDRESS_FAMILIES flag for IPv6 link local mask

In NetServer::_ConfigureIPv6LinkLocal, it was observed that the
IPv6 link local addresses being added by the function had invalid
masks applied, which upon investigation turned out to be
uninitialised memory.

It turns out that this call:

BNetworkAddress localLinkMask("ffff:ffff:ffff:ffff::");

...internally relies on getaddrinfo(), which only works if the OS
already has an IPv6 address. Since this is the first IPv6 address,
this will always fail. Since the error code is not checked, this
results in uninitialised memory being used as the IPv6 mask.

There are a variety of possible ways to solve this problem, but
the one presented here passes the B_UNCONFIGURED_ADDRESS_FAMILIES
flag which tells the resolver to always resolve IPv6 addresses.

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


# b240f0ad 20-Nov-2019 Axel Dörfler <axeld@pinc-software.de>

net_server: Fixed overwriting wrong interface config

* When the "interfaces" file contains a configuration for a missing
device, the first interface found would be overwritten, irregardless
of its status.
* Now, _ConfigureDevices() properly honours the
"devicesAlreadyConfigured" list.
* This fixes bug #14908.


# 660dea3f 17-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

net_server: Clean up authentication handling code.

Even if we find an authentication string, make sure it's not empty before
trying to use it; and use the other one if possible.


# 5186fb7e 31-Jan-2019 Rob Gill <rrobgill@protonmail.com>

Network: Avoid DHCP over-writing user specified DNS settings

* Adds parser to servers/net/nethost, to check current
settings in resolv.conf before updating

If user has specified DNS settings manually, DHCP derived
settings are appended to resolv.conf, rather than overwriting.

(If no user specified data is present, or in the event of
a badly damaged resolv.conf, DHCP over-writes file in same
manner as prior to this change)

Fixes #11565.

Change-Id: I43464909009d2416d57f66f7bd14d13c81f803e7
Reviewed-on: https://review.haiku-os.org/c/997
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


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

net_server: Do not add the FreeBSD compat headers to the include path.

This was already done for libbnetapi and ifconfig, but apparently
net_server was missed.


# 949a1ff7 19-Dec-2018 Axel Dörfler <axeld@pinc-software.de>

net_server: Documented suggested interface behavior

* Also simplified updating the interface message with SetString().

Change-Id: I29635cba5ddde693f6b7b97b8bd01769b02919d5
Reviewed-on: https://review.haiku-os.org/788
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# a0efb75a 19-Dec-2018 Axel Dörfler <axeld@pinc-software.de>

net_server: Configure devices not found in settings

* Previously, the assumption was that your settings would configure
all devices.
* Now, all devices that are not covered by the "interfaces" settings
file will be automatically configured.
* This fixes ticket #6423.

Change-Id: Ib1e0c70314dc27cde14a00601fc8045d32937dfd
Reviewed-on: https://review.haiku-os.org/787
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# 339eef51 18-Dec-2018 Axel Dörfler <axeld@pinc-software.de>

Revert "net_server: Add (more) missing devices even if one has already been found."

This reverts commit def61273ed29e944a48064bac18537652f9ef81a.

This isn't a fix for the issue, it will just throw away all settings.

Change-Id: I2979c02c54f9379f25dc5d41d3a6085c09e87ac3
Reviewed-on: https://review.haiku-os.org/785
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>


# def61273 14-Dec-2018 Danc2 <danc2@pdx.edu>

net_server: Add (more) missing devices even if one has already been found.

Fixes #6423 and helps with #14626.

In BringUpInterfaces, line 772 creates an error which only adds a missing
interface if one does not already exist (i.e., !_testInterface()). This can lead to
a missing WiFi interface if an Ethernet connection has been configured and set in
the /boot/system/settings/network/interfaces before the WiFi has had a chance to
be added to /dev/net. To properly configure a missing device, such as a WiFi
connection, and allow the user to choose amongst configured interfaces (i.e.,
add it to the list of devices in /dev/net and e.g., see WiFi as an option),
removing the 'if' statement on line 772 is necessary.

Two edge cases may arise:
1. A user may disable an interface -- don't add device
Solution: The code currently handles this. _ConfigureInterfacesFromSettings, called
at line 746, checks for interfaces in fSettings to see if they are disabled (706-711).
If so, they are disabled and not set as a missingDevice if the interface is disabled
(709). The next interface is checked... etc.

2. Devices must not be added twice (i.e., Checking for An Existing configured Network)
Solution: The code currently checks for this. On lines 716-720, a device that is found
in fSettings (missingDevice), is set to the interface which is later added to the
/dev/net within that (unnecessary?) if statement (772). The missingDevice will only
be set and added to /dev/net if an entry does not exist in the settings already (716)
(hence the identifier missingDevice).
Change-Id: Ifc303371b88f18c30141a651a7d97a3c860e864f
Reviewed-on: https://review.haiku-os.org/767
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 6f3f2e14 03-Nov-2018 Peter Kosyh <p.kosyh@gmail.com>

NetServer::_JoinNetwork: fix crash when name == NULL

Change-Id: Ie6a5b5af855ee2b6bec81dc6c37ff0fa6271deea
Reviewed-on: https://review.haiku-os.org/661
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 0a6b5623 23-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

net_server: fixed configuring disabled interfaces.

* BNetworkSettings now set unspecified addresses to their empty family
specific addresses, instead of using AF_UNSPEC.
* This allows the net_server to set those addresses on the address
specific stack interface.


# c3ef9391 11-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

net_server: Clients can now check if a service is running.

* Using the new kMsgIsServiceRunning command.


# b00dcbca 04-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

BNetworkSettings: added some convenience methods.

* From InterfaceAddressView: FindFirstAddress(), and IsAutoConfigure().
* Removed some debug leftovers in InterfaceAddressView, too.


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

Moved more functionality from net_server to NetworkSettings.

* Added (still incomplete) helper classes for the settings messages.
* The net_server now uses these classes for its interfaces, and services.
* Renamed service_address to service_connection, as that better matches
what it is used for.


# 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.


# 3aeed660 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 4b7e2196 03-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove /boot/common for good

* Remove support for the "common" installation location from packagefs,
package kit, package daemon, package managers.
* Rename the B_COMMON_*_DIRECTORY constants referring to writable
directories to B_SYSTEM_*_DIRECTORY.
* Remove/adjust the use of various B_COMMON_*_DIRECTORY constants.
I'm sure some occurrence still remain. They can be adjusted when the
remaining B_COMMON_*_DIRECTORY constants are removed.


# e3beee6b 26-Sep-2013 Axel Dörfler <axeld@pinc-software.de>

net_server: Support joining networks by address.

* Until now, only the SSID name was being used to select a certain network.
* Now, you can also specify an address.
* Unfortunately, I could not test these changes, but they are part of ticket
#10001.


# 6972b91e 24-Jul-2013 Pawel Dziepak <pdziepak@quarnos.org>

servers/net: Make DHCP client more RFC 2131 compliant

* The client should enter state REBINDING only when RENEWING times
out.
* When in RENEWING or REBINDING state do not give up retrying
unless the lease expires.
* Fix bug sending 2^n DHCP requests at n-th lease renewal.
* Use timeout values and renewal/rebinding times suggested by the
RFC.
* Use different XIDs in subsequent transactions.


# c143884f 27-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Use incorrect use of BPathMonitor in input/midi/net server

The B_ENTRY_* constants aren't valid watch flags.


# 43f7771e 02-Jun-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

NetServer: Disable IPv6 link local address (for now)

* After lots of testing and playing, our v6 stack
just isn't ready for this level of prime time as
we lack IPv6 address scope flags.
* Fixes regression in #9594


# 40cf1c05 25-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

net_server: 0xff is out of the bound of char, use uint8 instead

* found by GCC 4.7.3


# 9058801f 17-Apr-2013 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixing my own mess introduced in r41274. Fix #9446.


# a9abcc37 01-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Rework initial auto joining and add big TODOs.

* If we have a configured network, then we always try to connect to it
as soon as the interface has been brought up.
* If we don't have a configured network and are auto configuring, we
use the AutoconfigLooper to also do initial auto joins.
* Before issuing auto joins we need to wait for scan results to come
in, so we watch for corresponding messages.

For now auto joining is a one shot attempt as the infrastructure to
properly tell reasons for scans apart is not yet there.


# 50944289 01-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Use the wpa_supplicant to join open networks if it is running.

We need to make sure that the wpa_supplicant knows about our intention
even when joining an open network, as it otherwise might interfere.
Since leaving a network is not synchronous and the wpa_supplicant is
already running in that case anyway, this seems easier and more
reliable.

If the wpa_supplicant is not already running we still join ourselves.


# 0ef15eb6 01-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Rename _ConfigureInterfaces() to *FromSettings().

This makes it more obvious what the function does.


# 2ac5770d 31-Mar-2013 Michael Lotz <mmlr@mlotz.ch>

Don't automatically join a network if we already have a link.

The _ConfigureInterface() method is used as a backend for all
configuration tasks. That includes setting addresses manually or by
DHCP and changing flags, mtu or metric. Therefore we can't join
networks every time it is invoked. Instead we check for an existing
link first and only try to join if there is none yet.


# 8163a8e0 31-Mar-2013 Michael Lotz <mmlr@mlotz.ch>

Use a BMessenger to check for wpa_supplicant availabiltiy.

* Only launch it on join requests if it isn't yet valid anyway.
* Don't do any work on leave requests if it isn't running at all.


# fa21184f 30-Mar-2013 Michael Lotz <mmlr@mlotz.ch>

Implement leaving networks on the net_server side.

We always try to reach the wpa_supplicant first. If it isn't running
we check if this might have been a network we've connected directly
and then just disassociate using an MLME disassociation request.


# a3a541ee 30-Mar-2013 Michael Lotz <mmlr@mlotz.ch>

Make a copy of the network config message and store that one.

Using the original message and storing that into the settings resulted
in a not yet fully understood deadlock. Presumably related to missing
and/or stray replies.


# aed35104 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# d2b09eeb 10-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

net server: Remove un-needed braces. Look for network stack vs ipv4


# 94c264db 09-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

net server: IPv6, there is no place like ::1

* Add new function to check for protocol support
* If IPv6 support is present assign ::1 to loopback
* ping6 ::1 functions 100%
* Still some route strangeness with link local addresses


# 990a3ef3 08-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

net server: IPv6, look at nic flags vs name for loop


# ca1c1c5d 08-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

net server: IPv6 local link, Use BNetworkAddress tools for mac

* Stop using sscanf
* Start using BNetworkAddress LinkLevelAddress and friends
* Thanks Axel!


# 8b371b91 07-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

NetServer: Prevent duplicate v6 link local addresses

* Check to ensure the address doesn't already exist on card
* In the future we will want to check interface address flags
for any local scoped addresses on a card.


# dd7f08b5 07-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

NetServer: Add IPv6 link local address to each nic on boot

* Remove old ioctl code, cleanup AutoLooper.
* Move link local code into NetServer
AutoLooper should only be used for things that
count as "auto-configuration" such as DHCP, router
advertisements, and DHCPv6
* Properly form IPv6 link local address from MAC address
* I think some IPv6 routes are needed still for proper
local link connectivity.
* Duplicate Address Detection is still a TODO
* Style cleanup


# 7d7b9632 09-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* Remove the BNetworkDevice::AddPersistentNetwork() again and instead introduce
BNetworkRoster::{Count|GetNext|Add|Remove}PersistentNetwork() as it fits
better (thanks Philippe for the heads up).
* Implement the backend for these functions in the net_server and also move
conversion of the wireless_network based format into the settings based format
there.
* Implement removal of a network from the settings and make adding a new network
with the same name replace the old one instead of just adding multiple ones.
Might need to change this in the future depending on how we want to handle
multiple networks with the same name (i.e. distinguish based on BSSID or
similar).
* Fix apparent oversight that caused configured networks _not_ to be used in the
auto join attempt.
* Remove auto joining open networks. I've been bitten by that more than once now
because we happen to have an open network in the neighbourhood that I now
accidentally used to transfer quite a bit of (unencrypted) stuff before
noticing... In the future, one will instead have to explicitly join an open
network once and store that config. Note that the driver will actually still
auto-associate with open networks due to how things are set up currently.
Note also that the auto join will fire join requests whenever there's a
disassociation event, so you might see spurious join dialogs when the
wpa_supplicant actually just re-establishes the connection.
* Make join requests async again. Instead of waiting for a synchronous reply of
the wpa_supplicant we instead return success when the request has been sent.
While the API call might still be made synchronous again in the future, the
net_server should really not block on an external application. In the case of
the wpa_supplicant we would otherwise deadlock when using the new
*PersistentNetwork() API after a successful join, and in other cases we might
just unacceptably delay other calls.


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


# 8fecaf03 07-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

Add message handling for adding persistent network configurations (as in
wireless_network).


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


# 2348de0b 03-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

Small cleanup.


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


# dd9a0d1d 27-Sep-2011 Michael Lotz <mmlr@mlotz.ch>

* Fill out the wireless network join request as detailed as possible, but don't
fail when encountering missing information (like the password). This gives the
supplicant an opportunity to ask for the required information as needed.
* Remove (currently broken) WEP support from the net_server. It will be
delegated to the supplicant as well, as that one already handles all the
key/password conversion.

In the absence of a supplicant the net_server can therefore only join open
networks now. It will also only attempt that if it is sure that the network in
question is actually an open network (by means of scan results or explicit
configuration) and will otherwise delegate the join request.


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


# 8a9d5e34 28-Apr-2011 Rene Gollent <anevilyak@gmail.com>

Patch by Atis Elsts from GSoC 2010 that was overlooked.
- Adds IPv6 fragmentation support and some partial work to enable configuration of IPv6 in net_server. Not currently in the build.



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


# 0892800f 27-Apr-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Implemented INIT-REBOOT DHCP state: as required per DHCP specs,
we now request the last address we got from DHCP server, and only on failure
we fallback on the whole INIT state (discover, collect offer, etc).
This should fix people losing their IP address at each renewal, or far worse,
after the link goes up again.
Closed #7346.


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


# 9ff5266f 22-Apr-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Avoid deadlock.


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


# 302a7082 22-Apr-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Quit AutoconfigLooper when switching to static configuration.
Before, DHCP will still run after a link down & up event, which could
leads to break the user-defined static configuration.


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


# 6d5ad157 22-Apr-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Check node monitoring messages to handle them only when it make sense.
Before, the "interfaces" settings file creation/removal notification was
leading to a attempt to configure/remove an interface named
"/boot/common/settings/network/interfaces"!
Could help fixing issue #7475.


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


# 98e25dc3 14-Dec-2010 Axel Dörfler <axeld@pinc-software.de>

* The net_server now tries to join the network via wpa_supplicant, if available.
* Add some output when automatically joining a network.


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


# 9e124835 13-Dec-2010 Axel Dörfler <axeld@pinc-software.de>

* Turned on automatically joining a network even if none has been configured.


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


# 72a249a9 09-Dec-2010 Axel Dörfler <axeld@pinc-software.de>

* Added some authentication config stuff to the settings. Now you can override
the detected defaults with your own values.
* Implemented joining open and WEP networks - this is pretty much untested,
though.


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


# 0bf12848 08-Dec-2010 Axel Dörfler <axeld@pinc-software.de>

* Work in progress of WLAN support in the net_server.


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


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

* Don't overwrite the family if it is being passed as int32.


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


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

* Now uses the new network API instead of directly using socket ioctls.
This makes the code much cleaner and simpler.
* Completely untested, though (will do that next).


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


# 61729d93 28-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* Reworked the complete stack to allow more than one address per network
interface - this caused quite a number of changes.
* Network interfaces, and its addresses are now reference counted (not yet
complete, though, InterfaceAddresses need to hold references to their
interface as well).
* There are two known regressions of this commit that I will fix later:
- you cannot remove interfaces anymore
- IPv4 multicast was broken anyway, but now it's disabled, too.
* Moved a device_interfaces.cpp|h out of interfaces.cpp.
* The datalink layer chain is now instantiated per domain per interface,
not just per interface anymore.
* When a buffer reaches the network layer, it has no known interface yet, ie.
the ipv4|6|whatever modules need to set this manually.
* Added more debug output, and some new debugger commands, the control option
is now printed in clear text.
* Added hash_address() function to the address modules. Added "const" to
set_to_defaults() where needed.
* Fixed net_buffer's restore header functions offset use as reported by Atis.
* Improved buffer dump output, use the domain module to print the address if
available.
* Moved net_buffer::type into the union, as it's not needed by the upper layers
anymore.
* Moved IPv6 specific code from {add|remove}_default_route() to where it
belongs, but disabled it for the time being.
* Completely discarded useless ipv4_datagram module.
* Added ping6 to the build.


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


# 6600877a 21-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* On Haiku, ifreq::ifr_name always includes the trailing null byte. Adjusted
userland code to take this into account (the kernel would just cut off the
name).
* This closes ticket #6280.


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


# 2d3904fe 10-Jun-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Add interface disabling support.


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


# 022760a2 11-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Style cleanup.


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


# 16e8f13a 11-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Vegard that moves the resolver configuration to where it
belongs (with a few changes by myself). Thanks!
* This closes ticket #5636.


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


# de4212d4 04-Feb-2010 Philippe Saint-Pierre <stpere@gmail.com>

NetServer: Clear the IFF_AUTO_CONFIGURED as needed. It was cleared at reboot, but not when the config file was updated.

Fixing ticket #3912.


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


# 3e6fa229 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Switched strings to sentence case in servers and kits. This is the
case-servers+kits.diff applied from #5169. Couldn't spot any possibly
problematic changes.
Thanks a lot!


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


# 0b604ab6 12-Dec-2009 Jérôme Duval <korli@users.berlios.de>

Some simplifications (thanks Axel):
* Don't watch for moved entries
* Ask the network stack to delete the named interface


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


# b1b74111 12-Dec-2009 Jérôme Duval <korli@users.berlios.de>

* free buffer on ioctl failures
* monitors /dev/net for added or removed devices and handles events
by configuring or unconfiguring interfaces. When plugged a usb
network device, it now appears correcly.


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


# 73a1a46d 13-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Made defines out of the kNetServerSignature and kMsgConfigureInterface
constants - they are used in other apps as well, and defining them as
"static const" causes undefined warnings in other source files. This also
fixes the build.
* Changed "interfaces::auto config" to auto_config, as that's more convenient
to use in the settings files.


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


# 5544f69d 13-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Added "stand_alone" setting to the services - this way you can use the
net_server to launch services that work like a daemon theirselves (like sshd).
A service like this is also killed (via SIGTERM) when the netserver stops the
service (with sshd, you have to pass the '-D' option to make this work).
* If a boolean is given without value, it now defaults to true.
* The "launch" argument now gets its arguments properly parsed, and added, too.
* Services::_Update() did accidently set fUpdate on the wrong service, causing
services that were not changed to be stopped.
* More helpful output.


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


# 1a905a76 16-Feb-2009 Axel Dörfler <axeld@pinc-software.de>

* The auto-config looper now correctly sets the IFF_CONFIGURING flag - it
cannot be set in the AF_LINK level.
* It now also checks for this flag, so that the fallback configuration won't
overwrite a manually configured interface anymore.
* When an interface is configured, the IFF_CONFIGURING flag is now cleared as
it should.


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


# fd95a7e1 28-Dec-2008 Axel Dörfler <axeld@pinc-software.de>

* The net_server now accepts messages from the outside that want to configure
an interface (I don't remember why I didn't want this earlier, but well).
* ifconfig now has an auto-config option that will trigger DHCP.
* Also, it will now remove the IFF_AUTO_CONFIGURED and IFF_CONFIGURING flags
if an address is specified (any on-going auto-configuration should check for
these and abort if they aren't there anymore).


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


# 293ed4fe 27-Dec-2008 Axel Dörfler <axeld@pinc-software.de>

* Pulled an AutoconfigClient class out of DHCPClient - all clients are supposed
to inherit from that one (there is still just a single client, though, this
just simplifies having a generic mechanism to register and use auto-config
clients).
* AutoconfigLooper now listens to link changes, and will reconfigure the
interface if a new link is there - this even seems to work in emulation, will
test on real hardware next.


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


# 36bde12d 12-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* DHCP now actually uses the new SO_BINDTODEVICE socket option to make sure
the request is sent only on the device it should.


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


# a9ab9cf1 28-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

Setting a default netmask/broadcast address is no longer needed in ifconfig
and the net_server; the network stack now does this internally since r24170;
it worked for IPv4 only, anyway.


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


# ce78b365 25-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

Now only removes a default route for a domain in case a new one is specified;
this fixes bug #1423, the loop interface removed the default route for the
other interface (didn't happen previously, as routes were bound to devices).


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


# 43d946d6 04-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

* Now uses BPathMonitor instead of the node monitor; this fixes several issues with
changes to settings files that were ignored (for example, watching "services" did
only work if "interfaces" existed).
* On services update, Services::_Update() accidently compared the pointers of the
service objects, instead of the objects themselves.
* Implemented comparison of address changes in service objects; IOW when you change
the addresses a service should bind itself to, but leave the rest of the service
unchanged, this will now be detected as well.


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


# f01106c3 11-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Moved the network status replicant into its own application, similar to what
ProcessController and PowerStatus are doing.
* Currently polls for info only - later, the stack should support listeners for
interface related changes.
* Also works under BONE (although it doesn't make much sense to use it there).


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


# d7e473d3 02-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

The network status icons are now correctly read from the resources (I even
forgot to add them to the server before :-)).


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


# 3eb30a22 03-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Implemented loading icons from resources - doesn't seem to work yet, though.
* Fixed leaking menu items in StatusReplicant::_PrepareMenu().
* Renamed private methods to have an underscore prefix.
* Some minor style cleanup.


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


# a3e4e4f7 02-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

also update configured devices' status, but ignore the loopback interface.


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


# 90d110b6 02-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

tiny cleanups


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


# 37c50abf 02-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

net_server: initial replicant version.

* Still picture-less and thus ugly.
* It provides updated information on what the net_server is doing in terms of interface configuration.
* It is also able to show simplistic address information for configured interfaces.


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


# bbaa26a4 15-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

The net_server is now a BServer instead of a BApplication, IOW it doesn't rely on the
app_server being started anymore.


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


# 625f8abd 08-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

* The networking stack now removes all invalid interfaces during startup (those
where there is either no address or MAC address [ethernet only]).
* _ConfigureInterfaces() now notices if a network device that has a configuration
is gone and memorizes this configuration.
* If a new device pops up, and there is an existing configuration for a device
no longer available, that configuration will be used for the new device, allowing
you to easily move your Haiku image to a new system without losing its network
settings - it does not yet test if the IP address is already in use in the local
network, though (in which case a configuration using DHCP would be preferrable).


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


# c42ca726 28-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

Work-in-progress on the "services" implementation: it now reads the configuration
message, parses it, and stops/starts the services as needed - it doesn't launch
any actual servers yet, though.


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


# fc398fa2 22-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

* Added "services" to the network settings, and refactored the settings class a bit
to be easier extendable with more classes.
* Fixed a bug in the settings that caused updated settings to be appended to the
existing ones (missing BMessage::MakeEmpty()).
* Started services system, doesn't do anything useful yet (inetd replacement).
* Fixed the bug that caused the loopback default netmask to be incorrectly chosen;
removed the temporary fix Bruno introduced before. The same bug has been in
ifconfig where I copied the code from (but wrote it there, too) :-).


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


# eaeb7fd4 22-Dec-2006 Bruno G. Albuquerque <bga@bug-br.org.br>

The loopbacl interface has a fixed netmask.



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


# ef8ff79c 11-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

* A copy and paste bug prevented the gateway to be added (worked before the
previous commit).
* Removed the acceptance of a missing DHCP acknowledge message.


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


# 0ce7725e 11-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

* An interface can now also be configured to be "auto config" (which means DHCP for now).
* Some minor cleanup in the DHCP client.


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


# f9af6566 11-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

* Work-in-progress of DHCP - the interface should now be correctly configured.
* Lease times are currently ignored, though.


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


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

The beginnings of automatic configuration of network devices using DHCP; this is
currently only triggered when there is no configuration file - it can't be configured
this way yet.
All DHCP currently does is to send a UDP broadcast DHCP discover message. More to come.


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


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

* Implemented node monitoring: if you change the interfaces settings file, the
networking stack is reconfigured automatically.
* The previous default route is now removed before installing a new one.
* "gateway" was missing in the driver settings to BMessage conversion template,
and thus, it was only set to a default value in case there was no settings
file.


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


# 535df2cf 18-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

Now also supports setting a gateway through the configuration.


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


# 53d1802e 18-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

Now checks if a valid configuration was found, and if that's not the case, it
will automatically configure the stack - without DHCP for now.


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


# 1a2ad4cb 19-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

* Moved settings stuff into its own file.
* Minor cleanup.


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


# 919c897b 19-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

Started writing the new networking server. Right now, it'll configure the
networking stack according to some settings file. Doesn't do anything beyond
that yet, though.


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


# 6e17c55a 11-Oct-2005 Waldemar Kornewald <wkornew@nowhere.fake>

Bye, bye, poor net_server. :)


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


# abdb7d1a 10-Oct-2005 Waldemar Kornewald <wkornew@nowhere.fake>

- updated email-address
- removed profiles, ppp_up, and some TODOs
- simplified KPPPReportManager and reports API, KPPPInterface::Up()+Down(), and PPPInterfaceListener (also removed some features from the last one)
- KPPPInterface now sends the last PPP_CONNECTION_REPORT message to every newly registered report receiver
- added net_server to the build, but removed old net_server testing-stuff

all changes are completely untested


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


# dceee0de 20-Nov-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Changed license headers. Consider net_server as dead.


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


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

Nothing special. Just bringing the cvs version up-to-date with my private version.


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


# 60abfca0 01-Apr-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Initial checkin of skeleton net_server.


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


# 0a6b562313455bf5043f4f69632ce959caafa177 23-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

net_server: fixed configuring disabled interfaces.

* BNetworkSettings now set unspecified addresses to their empty family
specific addresses, instead of using AF_UNSPEC.
* This allows the net_server to set those addresses on the address
specific stack interface.


# c3ef93915b13214d3ee26c7224c0f109df58897f 11-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

net_server: Clients can now check if a service is running.

* Using the new kMsgIsServiceRunning command.


# b00dcbcad2226979bc585c84dc50dcc02b0c0f9a 04-Mar-2015 Axel Dörfler <axeld@pinc-software.de>

BNetworkSettings: added some convenience methods.

* From InterfaceAddressView: FindFirstAddress(), and IsAutoConfigure().
* Removed some debug leftovers in InterfaceAddressView, too.


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

Moved more functionality from net_server to NetworkSettings.

* Added (still incomplete) helper classes for the settings messages.
* The net_server now uses these classes for its interfaces, and services.
* Renamed service_address to service_connection, as that better matches
what it is used for.


# 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.


# 3aeed6607cd07762c0e709633c012b3a632dbad9 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 4b7e219688450694efc9d1890f83f816758c16d3 03-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove /boot/common for good

* Remove support for the "common" installation location from packagefs,
package kit, package daemon, package managers.
* Rename the B_COMMON_*_DIRECTORY constants referring to writable
directories to B_SYSTEM_*_DIRECTORY.
* Remove/adjust the use of various B_COMMON_*_DIRECTORY constants.
I'm sure some occurrence still remain. They can be adjusted when the
remaining B_COMMON_*_DIRECTORY constants are removed.


# e3beee6b66f8db0fd3c9b193fe9e698f96fa17b9 26-Sep-2013 Axel Dörfler <axeld@pinc-software.de>

net_server: Support joining networks by address.

* Until now, only the SSID name was being used to select a certain network.
* Now, you can also specify an address.
* Unfortunately, I could not test these changes, but they are part of ticket
#10001.


# 6972b91e17f19950fbf994033846a856bff4b796 24-Jul-2013 Pawel Dziepak <pdziepak@quarnos.org>

servers/net: Make DHCP client more RFC 2131 compliant

* The client should enter state REBINDING only when RENEWING times
out.
* When in RENEWING or REBINDING state do not give up retrying
unless the lease expires.
* Fix bug sending 2^n DHCP requests at n-th lease renewal.
* Use timeout values and renewal/rebinding times suggested by the
RFC.
* Use different XIDs in subsequent transactions.


# c143884fdf03ec3a8b7a89c88baa477f8629395c 27-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Use incorrect use of BPathMonitor in input/midi/net server

The B_ENTRY_* constants aren't valid watch flags.


# 43f7771e2c5d6813ff0eaea1c7a20f8f86d9d27c 02-Jun-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

NetServer: Disable IPv6 link local address (for now)

* After lots of testing and playing, our v6 stack
just isn't ready for this level of prime time as
we lack IPv6 address scope flags.
* Fixes regression in #9594


# 40cf1c0518157303a9bb6a64588e5ed7c81bb28a 25-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

net_server: 0xff is out of the bound of char, use uint8 instead

* found by GCC 4.7.3


# 9058801fe2eff79956ae3566a5405fcc896c291d 17-Apr-2013 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixing my own mess introduced in r41274. Fix #9446.


# a9abcc37cdc361a6cd3b35e8791e9603d793c424 01-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Rework initial auto joining and add big TODOs.

* If we have a configured network, then we always try to connect to it
as soon as the interface has been brought up.
* If we don't have a configured network and are auto configuring, we
use the AutoconfigLooper to also do initial auto joins.
* Before issuing auto joins we need to wait for scan results to come
in, so we watch for corresponding messages.

For now auto joining is a one shot attempt as the infrastructure to
properly tell reasons for scans apart is not yet there.


# 50944289c6f40c9961bf2a69d0986dd8aca11704 01-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Use the wpa_supplicant to join open networks if it is running.

We need to make sure that the wpa_supplicant knows about our intention
even when joining an open network, as it otherwise might interfere.
Since leaving a network is not synchronous and the wpa_supplicant is
already running in that case anyway, this seems easier and more
reliable.

If the wpa_supplicant is not already running we still join ourselves.


# 0ef15eb6b9510c80ff004a99e3cbd6f7c5d52053 01-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Rename _ConfigureInterfaces() to *FromSettings().

This makes it more obvious what the function does.


# 2ac5770dc73bf3c68886663ddbb9e7935d1cf782 31-Mar-2013 Michael Lotz <mmlr@mlotz.ch>

Don't automatically join a network if we already have a link.

The _ConfigureInterface() method is used as a backend for all
configuration tasks. That includes setting addresses manually or by
DHCP and changing flags, mtu or metric. Therefore we can't join
networks every time it is invoked. Instead we check for an existing
link first and only try to join if there is none yet.


# 8163a8e0efcfe7279bf6890250fa98e44cbbcedf 31-Mar-2013 Michael Lotz <mmlr@mlotz.ch>

Use a BMessenger to check for wpa_supplicant availabiltiy.

* Only launch it on join requests if it isn't yet valid anyway.
* Don't do any work on leave requests if it isn't running at all.


# fa21184f24d35e0c1e3dddae0a2981d05861e494 30-Mar-2013 Michael Lotz <mmlr@mlotz.ch>

Implement leaving networks on the net_server side.

We always try to reach the wpa_supplicant first. If it isn't running
we check if this might have been a network we've connected directly
and then just disassociate using an MLME disassociation request.


# a3a541eebd0b2ffe2e2ba30acf1c87d5ed9cf98f 30-Mar-2013 Michael Lotz <mmlr@mlotz.ch>

Make a copy of the network config message and store that one.

Using the original message and storing that into the settings resulted
in a not yet fully understood deadlock. Presumably related to missing
and/or stray replies.


# aed35104852941f0f6f3d1dcc5338b5f337d0a3c 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# d2b09eeb7f01241c4a3e37a853a9459050d48235 10-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

net server: Remove un-needed braces. Look for network stack vs ipv4


# 94c264db3a25af037201a73bdaf12f1862a19abe 09-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

net server: IPv6, there is no place like ::1

* Add new function to check for protocol support
* If IPv6 support is present assign ::1 to loopback
* ping6 ::1 functions 100%
* Still some route strangeness with link local addresses


# 990a3ef3eae8f757822f96be350cacd9025885fc 08-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

net server: IPv6, look at nic flags vs name for loop


# ca1c1c5db91740bc795c64b7319c8f1c36bd2ea6 08-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

net server: IPv6 local link, Use BNetworkAddress tools for mac

* Stop using sscanf
* Start using BNetworkAddress LinkLevelAddress and friends
* Thanks Axel!


# 8b371b91e441655a541d256be048962f22b296fa 07-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

NetServer: Prevent duplicate v6 link local addresses

* Check to ensure the address doesn't already exist on card
* In the future we will want to check interface address flags
for any local scoped addresses on a card.


# dd7f08b519348fc0fb96ec52f841cd09e40da8b8 07-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

NetServer: Add IPv6 link local address to each nic on boot

* Remove old ioctl code, cleanup AutoLooper.
* Move link local code into NetServer
AutoLooper should only be used for things that
count as "auto-configuration" such as DHCP, router
advertisements, and DHCPv6
* Properly form IPv6 link local address from MAC address
* I think some IPv6 routes are needed still for proper
local link connectivity.
* Duplicate Address Detection is still a TODO
* Style cleanup


# 7d7b9632250246bc3a60ae5c343f79c0236a9f02 09-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* Remove the BNetworkDevice::AddPersistentNetwork() again and instead introduce
BNetworkRoster::{Count|GetNext|Add|Remove}PersistentNetwork() as it fits
better (thanks Philippe for the heads up).
* Implement the backend for these functions in the net_server and also move
conversion of the wireless_network based format into the settings based format
there.
* Implement removal of a network from the settings and make adding a new network
with the same name replace the old one instead of just adding multiple ones.
Might need to change this in the future depending on how we want to handle
multiple networks with the same name (i.e. distinguish based on BSSID or
similar).
* Fix apparent oversight that caused configured networks _not_ to be used in the
auto join attempt.
* Remove auto joining open networks. I've been bitten by that more than once now
because we happen to have an open network in the neighbourhood that I now
accidentally used to transfer quite a bit of (unencrypted) stuff before
noticing... In the future, one will instead have to explicitly join an open
network once and store that config. Note that the driver will actually still
auto-associate with open networks due to how things are set up currently.
Note also that the auto join will fire join requests whenever there's a
disassociation event, so you might see spurious join dialogs when the
wpa_supplicant actually just re-establishes the connection.
* Make join requests async again. Instead of waiting for a synchronous reply of
the wpa_supplicant we instead return success when the request has been sent.
While the API call might still be made synchronous again in the future, the
net_server should really not block on an external application. In the case of
the wpa_supplicant we would otherwise deadlock when using the new
*PersistentNetwork() API after a successful join, and in other cases we might
just unacceptably delay other calls.


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


# 8fecaf03e3cb4756b82f7285f4132f650d71b871 07-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

Add message handling for adding persistent network configurations (as in
wireless_network).


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


# 2348de0bbc539bcff26d3d503e4bb4010e81d5eb 03-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

Small cleanup.


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


# dd9a0d1d4bcecef47a04bd6d26e7f291277a5df6 27-Sep-2011 Michael Lotz <mmlr@mlotz.ch>

* Fill out the wireless network join request as detailed as possible, but don't
fail when encountering missing information (like the password). This gives the
supplicant an opportunity to ask for the required information as needed.
* Remove (currently broken) WEP support from the net_server. It will be
delegated to the supplicant as well, as that one already handles all the
key/password conversion.

In the absence of a supplicant the net_server can therefore only join open
networks now. It will also only attempt that if it is sure that the network in
question is actually an open network (by means of scan results or explicit
configuration) and will otherwise delegate the join request.


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


# 8a9d5e34febe5626f9037b6eba9eb3acd4ca0f49 28-Apr-2011 Rene Gollent <anevilyak@gmail.com>

Patch by Atis Elsts from GSoC 2010 that was overlooked.
- Adds IPv6 fragmentation support and some partial work to enable configuration of IPv6 in net_server. Not currently in the build.



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


# 0892800f69bcfb0478aeeeb12171d998d2a315af 27-Apr-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Implemented INIT-REBOOT DHCP state: as required per DHCP specs,
we now request the last address we got from DHCP server, and only on failure
we fallback on the whole INIT state (discover, collect offer, etc).
This should fix people losing their IP address at each renewal, or far worse,
after the link goes up again.
Closed #7346.


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


# 9ff5266f3a21c5a8983c4cfacf2442edf3e4f740 22-Apr-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Avoid deadlock.


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


# 302a7082ba7466f063090ee7be036cdf34abe708 22-Apr-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Quit AutoconfigLooper when switching to static configuration.
Before, DHCP will still run after a link down & up event, which could
leads to break the user-defined static configuration.


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


# 6d5ad1571495b068193f0296394ab8ce1498f8e5 22-Apr-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Check node monitoring messages to handle them only when it make sense.
Before, the "interfaces" settings file creation/removal notification was
leading to a attempt to configure/remove an interface named
"/boot/common/settings/network/interfaces"!
Could help fixing issue #7475.


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


# 98e25dc3f9c931ef572d23f929b9881d0101e9fe 14-Dec-2010 Axel Dörfler <axeld@pinc-software.de>

* The net_server now tries to join the network via wpa_supplicant, if available.
* Add some output when automatically joining a network.


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


# 9e124835e21a91b2d4a4be3e3de8e7f5da7ca80d 13-Dec-2010 Axel Dörfler <axeld@pinc-software.de>

* Turned on automatically joining a network even if none has been configured.


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


# 72a249a942d80ac4e0d52b7feb492bff72d8fe91 09-Dec-2010 Axel Dörfler <axeld@pinc-software.de>

* Added some authentication config stuff to the settings. Now you can override
the detected defaults with your own values.
* Implemented joining open and WEP networks - this is pretty much untested,
though.


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


# 0bf128487afb42c550c72756e3a442641980187c 08-Dec-2010 Axel Dörfler <axeld@pinc-software.de>

* Work in progress of WLAN support in the net_server.


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


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

* Don't overwrite the family if it is being passed as int32.


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


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

* Now uses the new network API instead of directly using socket ioctls.
This makes the code much cleaner and simpler.
* Completely untested, though (will do that next).


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


# 61729d9323a555b9025ef6ebeb85dc1627f8acf7 28-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* Reworked the complete stack to allow more than one address per network
interface - this caused quite a number of changes.
* Network interfaces, and its addresses are now reference counted (not yet
complete, though, InterfaceAddresses need to hold references to their
interface as well).
* There are two known regressions of this commit that I will fix later:
- you cannot remove interfaces anymore
- IPv4 multicast was broken anyway, but now it's disabled, too.
* Moved a device_interfaces.cpp|h out of interfaces.cpp.
* The datalink layer chain is now instantiated per domain per interface,
not just per interface anymore.
* When a buffer reaches the network layer, it has no known interface yet, ie.
the ipv4|6|whatever modules need to set this manually.
* Added more debug output, and some new debugger commands, the control option
is now printed in clear text.
* Added hash_address() function to the address modules. Added "const" to
set_to_defaults() where needed.
* Fixed net_buffer's restore header functions offset use as reported by Atis.
* Improved buffer dump output, use the domain module to print the address if
available.
* Moved net_buffer::type into the union, as it's not needed by the upper layers
anymore.
* Moved IPv6 specific code from {add|remove}_default_route() to where it
belongs, but disabled it for the time being.
* Completely discarded useless ipv4_datagram module.
* Added ping6 to the build.


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


# 6600877a5f2801183b79bd582c65e15af7ba8434 21-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* On Haiku, ifreq::ifr_name always includes the trailing null byte. Adjusted
userland code to take this into account (the kernel would just cut off the
name).
* This closes ticket #6280.


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


# 2d3904fe20393795b4f6128fd0079845acb5ac95 10-Jun-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Add interface disabling support.


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


# 022760a24a6d7e03b4e21eb799f0ab5e022c68da 11-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Style cleanup.


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


# 16e8f13a6348d5899cc50506c91f9ce380ed8532 11-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Vegard that moves the resolver configuration to where it
belongs (with a few changes by myself). Thanks!
* This closes ticket #5636.


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


# de4212d411e5d4e081a8fd2de690888dd57f4c0a 04-Feb-2010 Philippe Saint-Pierre <stpere@gmail.com>

NetServer: Clear the IFF_AUTO_CONFIGURED as needed. It was cleared at reboot, but not when the config file was updated.

Fixing ticket #3912.


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


# 3e6fa229d866510c8687760bf5bca2c831f9fb28 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Switched strings to sentence case in servers and kits. This is the
case-servers+kits.diff applied from #5169. Couldn't spot any possibly
problematic changes.
Thanks a lot!


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


# 0b604ab6443a24d4a07ec6d4ea33ed5224baa83c 12-Dec-2009 Jérôme Duval <korli@users.berlios.de>

Some simplifications (thanks Axel):
* Don't watch for moved entries
* Ask the network stack to delete the named interface


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


# b1b74111f56fa5ddc454e6ae1a215fe0f67460c1 12-Dec-2009 Jérôme Duval <korli@users.berlios.de>

* free buffer on ioctl failures
* monitors /dev/net for added or removed devices and handles events
by configuring or unconfiguring interfaces. When plugged a usb
network device, it now appears correcly.


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


# 73a1a46de97c1b883dc6053af8c18f48675ddaa3 13-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Made defines out of the kNetServerSignature and kMsgConfigureInterface
constants - they are used in other apps as well, and defining them as
"static const" causes undefined warnings in other source files. This also
fixes the build.
* Changed "interfaces::auto config" to auto_config, as that's more convenient
to use in the settings files.


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


# 5544f69de6075ba11f1d879831b5d4b43d43e538 13-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Added "stand_alone" setting to the services - this way you can use the
net_server to launch services that work like a daemon theirselves (like sshd).
A service like this is also killed (via SIGTERM) when the netserver stops the
service (with sshd, you have to pass the '-D' option to make this work).
* If a boolean is given without value, it now defaults to true.
* The "launch" argument now gets its arguments properly parsed, and added, too.
* Services::_Update() did accidently set fUpdate on the wrong service, causing
services that were not changed to be stopped.
* More helpful output.


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


# 1a905a762aa791f366d5381ab8fed94bb99c1ea9 16-Feb-2009 Axel Dörfler <axeld@pinc-software.de>

* The auto-config looper now correctly sets the IFF_CONFIGURING flag - it
cannot be set in the AF_LINK level.
* It now also checks for this flag, so that the fallback configuration won't
overwrite a manually configured interface anymore.
* When an interface is configured, the IFF_CONFIGURING flag is now cleared as
it should.


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


# fd95a7e124618eb249769ce3ff6d7a16aeb873e8 28-Dec-2008 Axel Dörfler <axeld@pinc-software.de>

* The net_server now accepts messages from the outside that want to configure
an interface (I don't remember why I didn't want this earlier, but well).
* ifconfig now has an auto-config option that will trigger DHCP.
* Also, it will now remove the IFF_AUTO_CONFIGURED and IFF_CONFIGURING flags
if an address is specified (any on-going auto-configuration should check for
these and abort if they aren't there anymore).


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


# 293ed4fe5b1e467f2008fa2c0df5c339c989c00d 27-Dec-2008 Axel Dörfler <axeld@pinc-software.de>

* Pulled an AutoconfigClient class out of DHCPClient - all clients are supposed
to inherit from that one (there is still just a single client, though, this
just simplifies having a generic mechanism to register and use auto-config
clients).
* AutoconfigLooper now listens to link changes, and will reconfigure the
interface if a new link is there - this even seems to work in emulation, will
test on real hardware next.


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


# 36bde12db20c9852b6283ccfa0d49e61ffd52da7 12-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* DHCP now actually uses the new SO_BINDTODEVICE socket option to make sure
the request is sent only on the device it should.


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


# a9ab9cf19a2348f315644b5d6b63ef69bbf12c84 28-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

Setting a default netmask/broadcast address is no longer needed in ifconfig
and the net_server; the network stack now does this internally since r24170;
it worked for IPv4 only, anyway.


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


# ce78b3653af12b185723a72598fdc9b2df4b6efa 25-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

Now only removes a default route for a domain in case a new one is specified;
this fixes bug #1423, the loop interface removed the default route for the
other interface (didn't happen previously, as routes were bound to devices).


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


# 43d946d6d66e9127ebf044a395da82dfd41e868d 04-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

* Now uses BPathMonitor instead of the node monitor; this fixes several issues with
changes to settings files that were ignored (for example, watching "services" did
only work if "interfaces" existed).
* On services update, Services::_Update() accidently compared the pointers of the
service objects, instead of the objects themselves.
* Implemented comparison of address changes in service objects; IOW when you change
the addresses a service should bind itself to, but leave the rest of the service
unchanged, this will now be detected as well.


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


# f01106c3cfc01f5706583d75c6d75d3b7cd98b77 11-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Moved the network status replicant into its own application, similar to what
ProcessController and PowerStatus are doing.
* Currently polls for info only - later, the stack should support listeners for
interface related changes.
* Also works under BONE (although it doesn't make much sense to use it there).


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


# d7e473d3101f43c187273eae5736f32ac51d4081 02-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

The network status icons are now correctly read from the resources (I even
forgot to add them to the server before :-)).


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


# 3eb30a22b2608d76f1981cde80a3884eecaa6ce7 03-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Implemented loading icons from resources - doesn't seem to work yet, though.
* Fixed leaking menu items in StatusReplicant::_PrepareMenu().
* Renamed private methods to have an underscore prefix.
* Some minor style cleanup.


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


# a3e4e4f7623605c63be65046ca082746b45b186b 02-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

also update configured devices' status, but ignore the loopback interface.


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


# 90d110b64c28339d35e1b423e16cbeca75f1a616 02-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

tiny cleanups


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


# 37c50abfaf936ab1b604a6566b04901a2789ad33 02-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

net_server: initial replicant version.

* Still picture-less and thus ugly.
* It provides updated information on what the net_server is doing in terms of interface configuration.
* It is also able to show simplistic address information for configured interfaces.


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


# bbaa26a490750e1bf5261ce1ae1e0a28ce78db5d 15-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

The net_server is now a BServer instead of a BApplication, IOW it doesn't rely on the
app_server being started anymore.


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


# 625f8abdb0727a48a790acd226b3a6becece6022 08-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

* The networking stack now removes all invalid interfaces during startup (those
where there is either no address or MAC address [ethernet only]).
* _ConfigureInterfaces() now notices if a network device that has a configuration
is gone and memorizes this configuration.
* If a new device pops up, and there is an existing configuration for a device
no longer available, that configuration will be used for the new device, allowing
you to easily move your Haiku image to a new system without losing its network
settings - it does not yet test if the IP address is already in use in the local
network, though (in which case a configuration using DHCP would be preferrable).


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


# c42ca72638425e7b8745426654a7f6d0de054464 28-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

Work-in-progress on the "services" implementation: it now reads the configuration
message, parses it, and stops/starts the services as needed - it doesn't launch
any actual servers yet, though.


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


# fc398fa2ab1532b0fdc002f8ef8d99a9b723da69 22-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

* Added "services" to the network settings, and refactored the settings class a bit
to be easier extendable with more classes.
* Fixed a bug in the settings that caused updated settings to be appended to the
existing ones (missing BMessage::MakeEmpty()).
* Started services system, doesn't do anything useful yet (inetd replacement).
* Fixed the bug that caused the loopback default netmask to be incorrectly chosen;
removed the temporary fix Bruno introduced before. The same bug has been in
ifconfig where I copied the code from (but wrote it there, too) :-).


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


# eaeb7fd4f5687ee902f72d26859d4b1b3b585735 22-Dec-2006 Bruno G. Albuquerque <bga@bug-br.org.br>

The loopbacl interface has a fixed netmask.



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


# ef8ff79cdb21ff4e05d6f0a69d04f0418990984d 11-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

* A copy and paste bug prevented the gateway to be added (worked before the
previous commit).
* Removed the acceptance of a missing DHCP acknowledge message.


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


# 0ce7725e1ce38e95260696fd94feb958b0e8abd4 11-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

* An interface can now also be configured to be "auto config" (which means DHCP for now).
* Some minor cleanup in the DHCP client.


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


# f9af65667d67cd6f0a9a0cae09f7071268dbde16 11-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

* Work-in-progress of DHCP - the interface should now be correctly configured.
* Lease times are currently ignored, though.


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


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

The beginnings of automatic configuration of network devices using DHCP; this is
currently only triggered when there is no configuration file - it can't be configured
this way yet.
All DHCP currently does is to send a UDP broadcast DHCP discover message. More to come.


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


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

* Implemented node monitoring: if you change the interfaces settings file, the
networking stack is reconfigured automatically.
* The previous default route is now removed before installing a new one.
* "gateway" was missing in the driver settings to BMessage conversion template,
and thus, it was only set to a default value in case there was no settings
file.


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


# 535df2cff3ee65102a9763b9535ab59293932002 18-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

Now also supports setting a gateway through the configuration.


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


# 53d1802e028bc789d2b03cf39d970ecdab20597b 18-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

Now checks if a valid configuration was found, and if that's not the case, it
will automatically configure the stack - without DHCP for now.


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


# 1a2ad4cb2cdf3ea7ed6333b0e103e3d8dd1dcf3c 19-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

* Moved settings stuff into its own file.
* Minor cleanup.


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


# 919c897b98adada52d490797eb9e682d10b68e75 19-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

Started writing the new networking server. Right now, it'll configure the
networking stack according to some settings file. Doesn't do anything beyond
that yet, though.


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


# 6e17c55accde11a41b08136b72d92db8593d23b3 11-Oct-2005 Waldemar Kornewald <wkornew@nowhere.fake>

Bye, bye, poor net_server. :)


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


# abdb7d1abbf1686ecb8f7132e576d332f6cc01ed 10-Oct-2005 Waldemar Kornewald <wkornew@nowhere.fake>

- updated email-address
- removed profiles, ppp_up, and some TODOs
- simplified KPPPReportManager and reports API, KPPPInterface::Up()+Down(), and PPPInterfaceListener (also removed some features from the last one)
- KPPPInterface now sends the last PPP_CONNECTION_REPORT message to every newly registered report receiver
- added net_server to the build, but removed old net_server testing-stuff

all changes are completely untested


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


# dceee0de1e3402937e50cc546d6ddbde68568714 20-Nov-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Changed license headers. Consider net_server as dead.


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


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

Nothing special. Just bringing the cvs version up-to-date with my private version.


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


# 60abfca04843c5fd8a9a07cafcd5d44a1a8661c4 01-Apr-2004 Waldemar Kornewald <wkornew@nowhere.fake>

Initial checkin of skeleton net_server.


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