Commit graph

2636 commits

Author SHA1 Message Date
Dan Williams
3d898d1b66 wimax: fix connect-during-scan after d4ff43bc1e
Oops; mark prepare_done during stage1 not stage2 since stage1 is Prepare
and stage2 isn't.
2011-09-07 17:20:42 -05:00
Dan Williams
d4ff43bc1e wimax: fix Active NSP notification issue
A race condition meant that sometimes, if the wimax device finished
scanning while stage1 (Prepare) was scheduled but hadn't executed yet:

NetworkManager[8700]: <info> (wmx0): device state change: disconnected -> prepare (reason 'none') [30 40 0]
NetworkManager[8700]: <info> Activation (wmx0) Stage 1 of 5 (Device Prepare) scheduled...
NetworkManager[8700]: <info> (wmx0): wimax state change scanning -> ready (reason 0)

the code would schedule stage2 which meant that stage1 was completely
skipped.  But that's where the active-nsp property was set, which
meant clients would not be notified of the new active NSP.  This
caused nm-applet to show a zero-signal-strength icon for WiMAX
because libnm-glib didn't know there was an active NSP, even though
NM was connected.
2011-09-07 14:20:30 -05:00
Dan Williams
420fbb599f sharing: fix handling of rule negation (debian #638995)
! after the option is deprecated at least as far back as iptables
1.4.12 on 2.6.32.  ! should be before the option instead.

Reported-by: Ralf Jung <ralfjung-e@gmx.de>
2011-09-06 18:31:40 -05:00
Jiří Klimeš
4bb50e4380 ifnet: add testcase for incorrect config
Missing config_<name> line (containing method, i.e. dhcp, ...) should
fail with error 'Unknown config for <name>'.
2011-09-01 11:29:32 +02:00
Jiří Klimeš
9f026283c6 ifnet: fix tests 2011-08-31 19:05:21 +02:00
Jiří Klimeš
379d9044fb ifnet: fix GError handling in ifnet_update_connection_from_config_block() 2011-08-31 17:27:27 +02:00
Michael Stapelberg
de38843828 dnsmasq: use '@interface' for link-local DNS servers in the dnsmasq config
inet_ntop() either returns 'address%interface' or just 'address'. In the first
case, we replace '%' with '@' since dnsmasq supports '%' only since version
2.58. In the second case, we append '@interface' to make it work.

(small fixes by dcbw)
2011-08-25 15:49:41 -05:00
Dan Williams
b3ca1e56c1 Merge remote-tracking branch 'origin/agent-secrets' 2011-08-23 09:34:55 -05:00
Dan Williams
0fe8c80fae Merge branch 'libnl3' 2011-08-23 09:30:50 -05:00
Evan Broder
0b8097a26a supplicant: incorporate subject_match and altsubject_matches into supplicant config (bgo #341323) 2011-08-19 18:20:49 -05:00
Evan Broder
ca968105da supplicant: add new separator option to ADD_STRING_LIST_VAL macro 2011-08-19 18:20:49 -05:00
Dan Williams
770548ac04 dbus: ensure NM can talk to newly installed VPN plugins (fdo #39463)
When new services are installed and the daemon reloads bus policy
(like when installing new VPN plugins with rpm or dpkg) it appears
the rules don't get loaded into NetworkManager's policy space.
Thus any D-Bus message NM sends to the newly installed VPN plugin
gets denied until a restart of NM or the machine.  Work around
this dbus bug by letting NM talk to all known VPN services in the
NM policy file which will always exist when NM is around.
2011-08-19 16:55:16 -05:00
Dan Williams
66281b4ec3 Merge remote-tracking branch 'origin/master' into agent-secrets 2011-08-16 18:00:32 -05:00
Alfredo Matos
07cc83fbdb libnl: Move to common route add function interface 2011-08-16 17:16:02 -05:00
Alfredo Matos
a73039c0ec libnl: Create a common netlink route add function 2011-08-16 17:11:52 -05:00
Alfredo Matos
83b1b1660f libnl: route delete can return ERANGE in libnl-1 2011-08-16 17:10:30 -05:00
Alfredo Matos
638d3beb01 libnl: Use compat return for nl_route_add() 2011-08-16 17:08:57 -05:00
Alfredo Matos
2e32003fd2 libnl3: Fix ESRCH return types
ESRCH becomes NLE_OBJ_NOTFOUND. Includes workaround for libnl
  aliased return value where ESRCH is being converted to a generic
  unspecified error by libnl [1].

  [1] http://git.kernel.org/?p=libs/netlink/libnl.git;a=commit;h=7e9d5f
2011-08-16 16:58:19 -05:00
Alfredo Matos
790c16c9f2 libnl3: Add ESRCH to compat error translation 2011-08-16 16:48:30 -05:00
Dan Williams
7addf3009a Merge remote-tracking branch 'origin/master' into libnl3 2011-08-16 16:45:41 -05:00
Daniel Gnoutcheff
f14d8b18ee modem: fix race with nm_modem_set_mm_enabled
Once we've sent a method call over DBus requesting that the modem be
disabled, we should assume that the modem is disabled unless we hear
otherwise.  Otherwise, code that checks the modem state immediately
after it gets disabled might think that it's enabled when it almost
certainly is not.
2011-08-16 16:37:01 -05:00
Daniel Gnoutcheff
ac27e33f0c policy: don't autoconnect disabled modems
Normally, a device disabled via nm_device_interface_set_enabled() will
shift into the UNAVAILABLE state.  Modems, however, don't do that.
Rather, they pretend that they are in the DISCONNECTED state, presumably
to make it easier to re-enable them.  To avoid accidentally re-enabling
and autoconnecting a disabled modem, we need to explicitly make
nm_device_interface_get_enabled() == true a prerequisite for
autoconnecting.
2011-08-16 16:34:21 -05:00
Dan Williams
2b2404bbef settings: preserve agent secrets the right way
What we want to do here is keep separate caches of system and
agent secrets.  For system secrets, we cache them because NM
periodically clears secrets using nm_connection_clear_secrets() to
ensure they don't stay around in memory, and that transient secrets
get requested again when they are needed.  For agent secrets, we
only want them during activation, but a connection read from disk
will not include agent secrets becuase by definition they aren't
stored in system settings along with the connection.  Thus we need
to keep the agent/transient secrets somewhere for the duration of
the activation to ensure they don't get deleted.

This removes the copy-back hack in update_auth_cb() which copied
agent/transient secrets back into the connection over top of the
transient secrets that had been copied back in
nm_settings_connection_replace_settings().  No reason to copy
them twice if we keep an agent/transient secrets hash and do
the right thing with it.
2011-08-16 16:19:23 -05:00
Dan Williams
e2d88f59e6 settings: preserve agent secrets over Update operation
The core problem was that the Update would trigger a write to
disk to save the connection's new settings, which called
nm_settings_connection_replace_settings().  Which saved existing
transient (agent/unsaved) secrets, replaced settings with the
new ones from Update(), then copied back the old transient
secrets.  This was to ensure that changes triggered from getting
agent secrets during activation (which might write the connection
out to disk if new system secrets were provided, which triggered
an inotify read-back of the connection, which blew away the
transient secrets just returned from the agent) didn't blow away
transient secrets.  Unfortunately that fix was too general.

As a quick hack for now, copy the new secrets and re-apply them
after nm_connection_replace_settings() has run.  We'll do the
actual fix later, but it's more involved and needs more testing
so we don't want to apply it this close to release.
2011-08-16 15:48:38 -05:00
Jiří Klimeš
adc7ec170d ifcfg-rh: make NM_CONTROLLED changes function properly (rh #727501)
Changing NM_CONTROLED from "no" to "yes" worked just the first time.
Fix that by storing unmanaged spec when interface becomes unmanaged
and adjust condition identifying "no-change" updates to the ifcfg
file.
2011-08-02 12:18:52 +02:00
Jiří Klimeš
312c7c952c ifcfg-rh: emit "updated" signal when connection file is changed (rh #727501)
Chain up to parent's commit_changes() even if in-memory and on-disk data are the
same; they are the same when another process changes the on-disk file. Just make
sure not to write out the data needlessly when same.

This fixes a regression caused by 9cba854fa0.
It exhibits e.g. by not auto-activating connection when ONBOOT is changed from
"no" to "yes". Connection "updated" signal was not emitted and listeners like
NMPolicy was not prodded.
2011-08-02 12:18:43 +02:00
Dan Williams
76ecc09989 core: don't warn if loopback address already exists 2011-07-30 16:53:42 -05:00
Dan Williams
7c06436822 Merge remote-tracking branch 'origin/master' into libnl3 2011-07-30 16:48:46 -05:00
Dan Williams
b562839df8 core: misc style fixes to libnl compat code 2011-07-30 15:47:39 -05:00
Alfredo Matos
daeb181fa2 core: add libnl-3 API compatibility 2011-07-30 15:47:33 -05:00
Alfredo Matos
a6c6556831 core: add libnl-2 support with libnl-1 compatibility 2011-07-30 15:47:26 -05:00
Daniel Gnoutcheff
1a98391dc4 supplicant: fix DBus signal signatures
The DBus signatures registered (via dbus_g_proxy_add_signal) for the
fi.w1.wpa_supplicant.Interface.{BSSAdded,ScanDone} signals were
incorrect.  That prevented us from receiving wifi ap scan results, at
least in the case where wpa_supplicant has DBus introspection disabled.
2011-07-29 16:34:03 -05:00
Dan Williams
f742b06304 wifi: handle a few more possible D-Bus activation errors
There's two possibilities for errors from D-Bus when trying to
activate the supplicant; either we ignore the error and wait
for the supplicant to restart or be started, or it's a hard
error and we can't continue without risking worse behavior (ie
out of memory, supplicant spawns but exits immediately, etc).
This adds a few more harmless errors to the first category
which can happen if the supplicant's .service file exists
but the supplicant does not, in which case we just wait for
it to magically show up later.
2011-07-28 09:54:06 -05:00
Dan Williams
73ddc1e307 core: move route creation to nm-netlink-utils.c 2011-07-22 18:10:28 -05:00
Dan Williams
11c2824ef1 core: remove dead libnl code 2011-07-22 18:09:37 -05:00
Dan Williams
abb89a7d2a core: move route iteration to nm-netlink-utils.c 2011-07-22 18:09:32 -05:00
Dan Williams
7461e33ce1 core: move route logging to nm-netlink-utils.c 2011-07-22 16:17:10 -05:00
Dan Williams
8b075fcdf2 core: move route deletion to nm-netlink-utils.c 2011-07-22 16:12:44 -05:00
Dan Williams
3a86b5ae34 core: move address checking functionality into separate file
Start to consolidate netlink stuff so we can eventually keep all
the API changes for libnl1 vs. libnl3 in fewer places.
2011-07-22 15:28:35 -05:00
Dan Williams
2fabdbff15 core: finish conversion of nm-system functions to ifindex not iface name 2011-07-22 14:24:18 -05:00
Dan Williams
efb5735ad1 core: more conversion to ifindex instead of iface 2011-07-22 14:09:16 -05:00
Dan Williams
c742cc83fd core: convert up/down check to netlink and use interface index not iface 2011-07-22 13:49:49 -05:00
Dan Williams
d2d1f2e9e0 core: use interface indexes more 2011-07-22 13:37:29 -05:00
Dan Williams
88cd34feef core: remove unused includes 2011-07-22 12:50:54 -05:00
Dan Williams
9cdc5021ab keyfile: fix integer list SSID parsing after 30c41a4b80
The regex was capturing integers larger than 3 digits, which aren't
valid SSID integer list items because each byte of the SSID cannot be
larger than 255.  Add an explicit testcase for intlist SSIDs too.
The previous regex was causing a testcase failure with an SSID of
'1337' which it was interpreting as a single element intlist, but
should have been interpreted as a string since it's clear > 255.
2011-07-20 17:44:14 -05:00
Dan Williams
ba390d2430 ifcfg-rh: add testcase for PEAP anonymous identity (rh #708436) 2011-07-18 22:40:45 -05:00
Jiří Klimeš
3c0bf572c4 ifcfg-rh: read IEEE_8021X_ANON_IDENTITY for PEAP too (rh #708436) 2011-07-15 11:28:27 +02:00
Jiří Klimeš
c3893b5325 dns: append %interface to link-local IPv6 addresses in resolv.conf (rh #720001) 2011-07-12 16:09:01 +02:00
Jiří Klimeš
6272052f9d policy: fix setting hostname from DHCP options (rh #719100) 2011-07-12 14:47:33 +02:00
Jiří Klimeš
30c41a4b80 keyfile: distinguish better between string x int list formats (bgo #649422)
This commit enhances get_uchar_array() to better differentiate between string
ad integer list formats. This allows using ';' character in SSIDs.
2011-07-07 15:25:11 +02:00