Patch by Vinay R <rvinay@novell.com> and Robert Love <rml@novell.com>,
to add support for per-route MSS and improve support for per-interface
MTU:
* src/NetworkManagerSystem.c: Modify nm_system_device_set_ip4_route to
optionally take an MSS parameter and set it for the given route.
Remove nm_system_device_set_ip4_route_with_iface. Pass in the
NMIP4Config's stored MSS, if any.
* src/nm-ip4-config.c: Add 'mtu' and 'mss' to NMIP4Config, representing
the interface's MTU and the route's MSS, respectively. Add functions
nm_ip4_config_get_mtu, nm_ip4_config_set_mtu, nm_ip4_config_get_mss,
and nm_ip4_config_set_mss for retrieving and setting the MTU and the
MSS.
* src/nm-ip4-config.h: Add prototypes for nm_ip4_config_get_mtu,
nm_ip4_config_set_mtu, nm_ip4_config_get_mss, and
nm_ip4_config_set_mss.
* src/vpn-manager/nm-vpn-service.c: Modify to receive the MSS from the
VPN daemon.
* src/backends/NetworkManager{Arch,Debian,Gentoo,RedHat,Slackware,SUSE}.c:
Change the retval of nm_system_get_mtu to guint32.
* src/dhcp-manager/nm-dhcp-manager.c: Set the MTU on the new DHCP-given
NMIP4Config to the MTU provided by the system, if any. TODO: If DHCP
servers can specify MTU's, we should set it here if the MTU was not
provided.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1660 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c: Create NM_DHCP_TIMEOUT
preprocessor define and use it instead of open-coded the DHCP
timeout, which is currently 25 seconds, everywhere.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1629 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c: Do not start dhcdbd, but rely on
the system init scripts (or some other mechanism) starting it (or a
compatible DBUS service) before NetworkManager runs. This means that
distributions might need to update their init scripts. This fixes
possible races and is quite a bit cleaner.
* initscript/SUSE/networkmanager.in: Update to start dhcdbd before
starting the NetworkManager daemon.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1607 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c: Use preprocessor defines and not
open-coded integer constants. Add state_to_string() to map a given
state to a textual description, and provide that when notifying of
state change.
* src/dhcp-manager/nm-dhcp-manager.h: Provide defines for the dhcdbd
states, copied and cleaned up from dhcdbd.d. Ideally, we would use
this header directly, but it is currently not installed on most
systems.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1559 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c
- Loose a commit race with Robert; make sure size check
uses size of DHCP_SERVICE_LEN, not hardcoded 15
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1448 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch by Christoph Brill <chrisbrill@gmx.net>
* src/dhcp-manager/nm-dhcp-manager.c: Replace two open coded defines
with DHCP_SERVICE_NAME.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1447 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* dhcp-manager/nm-dhcp-manager.c, nm-device.c, nm-ip4-config.c,
nm-ip4-config.h, NetworkManagerSystem.h: Save the hostname reported
by DHCP and pass it to the backends, allowing distribution-specific
behavior with respect to the DHCP-supplied hostname (if nothing else,
some distributions might not want to set the hostname).
* backends/NetworkManagerSuSE.c: Set the hostname if the variable
DHCLIENT_SET_HOSTNAME is set to "yes" in /etc/sysconfig/network/dhcp.
Also update our NIS behavior.
* backends/NetworkManagerDebian.c, backends/NetworkManagerGentoo.c,
backends/NetworkManagerRedHat.c, backends/NetworkManagerSlackware.c:
Add stub functions.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1382 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/dhcp-manager/nm-dhcp-manager.c
- Recognize activation cancellation when waiting for DHCP
configuration from dhcdbd
- Ignore non-dhcdbd messages
* src/nm-device.c
- (real_act_stage3_ip_config_start): return to correct behavior
of letting the dhcp-manager notify us of failure or
success rather than incorrectly doing that ourselves
- (nm_device_activate_stage4_ip_config_get): deal with
activation cancellation a bit earlier
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1253 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-activation-request.c
- Change dhcp_state member of the NMActRequest structure
from guint8 to guint32
* src/dhcp-manager/nm-dhcp-manager.[ch]
- (nm_dhcp_manager_get_state_for_device): return guint32 rather
than guint8 to match the dbus argument. Turns out we were
overwriting memory since we were passing in only a guint8
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1245 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* refactor NMDevice into a GObject-based framework with separate
objects for wired and wireless. The following files are no
longer used but should stick around for a bit so we don't
loose code through the cracks:
NetworkManagerDevice.c
NetworkManagerDevice.h
NetworkManagerWireless.c
NetworkManagerWireless.h
The intent here is to allow each device type to manage its own
connection & activation life-cycle, ie to allow wireless devices
to interface with wpa_supplicant, etc. There's a fair bit of
encapsulation breakage right now that should gradually get pulled
back into each device, along with things like periodic property
updates and link probing.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1244 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch by Stefan Scheler <sscheler@suse.de>:
* src/nm-ip4-config.h, src/nm-ip4-config.c,
src/dhcp-manager/nm-dhcp-manager.c: Add support for setting up NIS
via DHCP. Still need the backends to commit the NIS domain name and
and servers to yp.conf as needed.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1179 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Move NetworkManager.h -> include/NetworkManager.h
* Split out VPN stuff to include/NetworkManagerVPN.h
* Fix up makefiles to include new location
* Fix up sources to include NetworkManagerVPN.h
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1130 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Shorten time taken to sleep by fastpathing bits of device deactivation
necessary for sleep.
* Fix issue where deactivating a device might deactivate the active
VPN connection, even if the VPN was not using the device.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@985 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch by Bill Moss <bmoss@clemson.edu>
* src/dhcp-manager/nm-dhcp-manager.c
- (nm_dhcp_manager_cancel_transaction): Give dhcdbd/dhclient
some time to send out a RELEASE if they like
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@899 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-dhcp-manager.c
- (nm_dhcp_manager_get_ip4_config): if for some reason we don't get
an gateway returned from DHCP, try to use the address of the DHCP
server as the gateway instead. Found by Ralf Ertzinger.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@834 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* configure.in
- Check for dhcdbd and error if its not found
* src/dhcp-manager/Makefile.am
src/dhcp-manager/nm-dhcp-manager.c
- Use path to dhcdbd that configure found
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@630 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Expose activation stages to NetworkManager clients, like the applet
* Add Diana's progress icons to the applet, cued off NM activation stage
* Use more descriptive tooltips, cued off NM activation stage
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@611 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Remove NM_STATE_SCANNING from NetworkManager.h and applet code
* Fix some holes in device activation and retaining the currently connected
access point
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@602 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Kill dhcpcd. We now use "dhcdbd", a dbus daemon that controls dhclient.
This means that NetworkManager shouldn't have DHCP issues anymore. It also
means you need dhcdbd, which you can get here (get the latest one):
http://people.redhat.com/jvdias/dhcdbd/
Technically NetworkManager can use any DHCP daemon that uses the same DBUS
interface as dhcdbd.
* Rewrite device activation to facilitate the new DHCP infrastructure and
future improvements. Its now "activation request" based, ie there is a single
activation request composed of the device, access point, and other info which
follows the entire activation process. There are 5 stages of the activation
process which correspond to:
1) Device preparation
2) Device configuration (bring it up, set ESSID/Key/etc)
3) IP Config Start (fire off DHCP if we're using it)
4) IP Config Get (grab config from DHCP or static config files)
5) IP Config Commit (set device's IP address, DNS, etc)
Note that there is no longer a "scanning" step, since the access point must
be known _before_ activation starts. If the access point drops out or does
not exist for some reason, the entire activation process fails and must be
restarted for a different access point or device.
Patch from Bill Moss:
* gnome/applet/applet.c
- Fix type of vpn_failure dialog -> vpn_banner dialog
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@597 4912f4e0-d625-0410-9fb7-b9a5a253dbdc