History log of /haiku-fatelf/src/servers/net/Settings.cpp
Revision Date Author Comments
# 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


# 4890c4a2 07-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* Add functions for constructing a settings file from messages and settings
templates.
* Prepare saving of such generated config files. Actually writing them out isn't
yet done however.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42805 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


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

* Moved the network definitions into their own file "wireless_networks".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39841 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


# be816234 11-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37094 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


# 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


# 5e2ef462 23-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* Got rid of the duality of FS_WRITE_STAT_* vs. B_STAT_* flags (removed
the former ones).
* Removed extraneous white space.
* net_server settings are now also updated when the size of the
file changed.


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


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

Accidently left in some debug output.


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


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

Optionally allows a different settings format; now you can write:
interface /dev/net/... { ... }
instead of:
interface {
device /dev/net/...
...
}

This will also work with service::name, and address::family.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21556 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


# 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


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

Forgot to add the "auto config" settings parameter to the BMessage template conversion.


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


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

Fixed the bug noticed by Philippe - we might not only be able to open the
"interfaces" file in the future :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19088 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


# 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


# 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


# 4890c4a26513bba4c3d24276c8b048e9bc43a30a 07-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* Add functions for constructing a settings file from messages and settings
templates.
* Prepare saving of such generated config files. Actually writing them out isn't
yet done however.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42805 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


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

* Moved the network definitions into their own file "wireless_networks".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39841 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


# be816234e89be7d2f93291bbb39d5a8e0489f54b 11-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37094 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


# 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


# 5e2ef462ec217bde96ca3facd40711db324b1126 23-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* Got rid of the duality of FS_WRITE_STAT_* vs. B_STAT_* flags (removed
the former ones).
* Removed extraneous white space.
* net_server settings are now also updated when the size of the
file changed.


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


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

Accidently left in some debug output.


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


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

Optionally allows a different settings format; now you can write:
interface /dev/net/... { ... }
instead of:
interface {
device /dev/net/...
...
}

This will also work with service::name, and address::family.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21556 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


# 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


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

Forgot to add the "auto config" settings parameter to the BMessage template conversion.


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


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

Fixed the bug noticed by Philippe - we might not only be able to open the
"interfaces" file in the future :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19088 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


# 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