Commit Graph

15047 Commits

Author SHA1 Message Date
Dan Williams
9f5f141100 supplicant: convert NMSupplicantManager to GDBus 2015-03-03 14:56:24 -06:00
Dan Williams
742b28fb1f supplicant: clean up NMSupplicantManager::dispose() 2015-03-03 14:56:23 -06:00
Thomas Haller
0681b625fb dhcp: revert "remove local modifications initializing cleanup variables"
rpmbuild buils NM with -fexceptions, which causes -Wmaybe-uninitialized
warnings for auto variables that have a cleanup function.

Maybe we should not build RPM packages with -fexceptions,
but anyway, for now just fix the build.

This reverts partly commit 4a58425dbf
and adds more fixes of uninitialized variables.
2015-03-03 14:09:32 +01:00
Thomas Haller
4e07f61173 dhcp: merge branch 'th/systemd-dhcp-integration' (bgo #742719)
Update internal dhcp library with new code from upstream systemd.

  HEAD=117cb022b13cedf4035e2a778b8d61528075a8b4
  MERGE=$(git rev-list --merges -n1 $HEAD)

  # how did we modify the systemd code?
  git diffs $MERGE^1 $HEAD -- :/src/dhcp-manager/systemd-dhcp/

  # what changed in systemd since last merge:
  git diffs $MERGE^2 $HEAD -- :/src/dhcp-manager/systemd-dhcp/src/libsystemd-network/

https://bugzilla.gnome.org/show_bug.cgi?id=742719
2015-03-03 12:37:17 +01:00
Thomas Haller
117cb022b1 dhcp: add prefix to logging lines from systemd library 2015-03-03 11:19:22 +01:00
Thomas Haller
1391bdfa61 dhcp: avoid compilation error in macro.h due to undefined __STDC_VERSION__ variable for -std=gnu99
systemd compiles with -std=gnu99, while we compile our sources with
-std=gnu89. Hence __STDC_VERSION__ is not defined.

As we define -std=gnu98 as CFLAGS with --enable-more-warnings, we cannot
overwrite it via libsystemd_dhcp_la_CFLAGS because the (user provided)
CFLAGS takes precedence.
2015-03-03 11:19:22 +01:00
Thomas Haller
2dcb097e99 dhcp: include sys/resource.h in nm-sd-adapt.h
As we don't provide "missing.h" header from systemd,
we lack some includes. Include <sys/resource.h> in nm-sd-adapt.h
for struct rlimit.
2015-03-03 11:19:22 +01:00
Thomas Haller
fd31714121 dhcp: include net/if_arp.h in nm-sd-adapt.h
sd-dhcp6-client.c uses ARPHRD_ETHER and more from net/if_arp.h.
In upstream systemd code, that header is included indirectly via
udev.h. As we don't include udev.h, include net/if_arp.h
directly in the adapter.
2015-03-03 11:19:22 +01:00
Thomas Haller
974546d9c9 dhcp: remove sd_dhcp6_client_set_ifname() function
This function was added to inject the ifname to the dhcp6 client.
As dhcp_identifier_set_iaid() now looks up the name itself by calling
if_indextoname(), this is no longer needed.
2015-03-03 11:19:22 +01:00
Thomas Haller
9f2f751349 dhcp: add systemd's dhcp-identifier.c for dhcp_identifier_set_duid_en()
Also patch dhcp_identifier_set_iaid() to get the ifname via
if_indextoname(), instead of udev.

This also makes our local modification sd_dhcp6_client_set_ifname()
obsolete, which will be removed next.
2015-03-03 11:18:12 +01:00
Thomas Haller
c140f4599d dhcp: add systemd's sd-id128.c for sd_id128_get_machine() 2015-03-03 11:13:51 +01:00
Thomas Haller
887a1ab397 dhcp: add systemd's path-util.c for path_kill_slashes()
tempfn_xxxxxx() now uses path_kill_slashes(). Add path-util.c
from systemd source to provide it.
2015-03-03 11:13:51 +01:00
Thomas Haller
7d440b7006 dhcp: add systemd's 'log.h' to provide logging macros
The 'log.h' header from systemd implements most logging commands based on a
few fundamental logging commands. Reuse 'log.h' for most parts and let the
adapter only redefine the necessary commands.
2015-03-03 11:13:51 +01:00
Thomas Haller
2d860b3f05 dhcp: comment-out unused systemd utility functions 2015-03-03 11:13:51 +01:00
Thomas Haller
22afaab1c5 dhcp: comment-in now needed string_table_lookup() function in util.c 2015-03-03 11:13:51 +01:00
Thomas Haller
cdd71569b0 dhcp: comment-in now needed filename_is_valid() function in util.c 2015-03-03 11:13:51 +01:00
Thomas Haller
4a58425dbf dhcp: remove local modifications initializing cleanup variables
I cannot reproduce any compiler warnings with these changes.
I think it is desirable, that our version of the code is
as similar as possible to the upstream systemd code.
Undo these local modifications.
2015-03-03 11:13:51 +01:00
Thomas Haller
746d0f544c dhcp/trivial: remove unused fixes to our copy of the systemd code
Make our copy more similar to what systemd has by removing
local changes that are unnecessary.

These changes don't affect the build, because the code is excluded
with #if 0.
2015-03-03 11:13:50 +01:00
Thomas Haller
d568e539a6 dhcp/trivial: remove code comment
dcbw added a comment line and submitted the patch to systemd.
The patch was merged without the comment. Remove it also from our
version, to make the file more similar to what systemd has.
2015-03-03 11:13:50 +01:00
Thomas Haller
7afb63ca34 dhcp: merge branch 'master' into th/systemd-dhcp-integration
Only basic merging. The result does not yet compile.

https://bugzilla.gnome.org/show_bug.cgi?id=742719

Conflicts:
	src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp-packet.c
	src/dhcp-manager/systemd-dhcp/src/libsystemd-network/network-internal.c
	src/dhcp-manager/systemd-dhcp/src/libsystemd-network/network-internal.h
	src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp-lease.c
	src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp6-client.c
	src/dhcp-manager/systemd-dhcp/src/shared/macro.h
	src/dhcp-manager/systemd-dhcp/src/shared/strv.c
	src/dhcp-manager/systemd-dhcp/src/shared/util.c
	src/dhcp-manager/systemd-dhcp/src/shared/util.h
	src/dhcp-manager/systemd-dhcp/src/systemd/sd-dhcp6-client.h
2015-03-03 11:13:41 +01:00
Thomas Haller
5599a82d0d wwan: refactor nm_modem_ip_type_to_string() and fix return type
The statement
    g_return_val_if_reached (NM_MODEM_IP_TYPE_UNKNOWN);
was wrong, because the return type is 'const char *'.

But just refactor nm_modem_ip_type_to_string() to get rid of
the static table and make it a switch statement.

Fixes: 85d9132464
2015-03-03 11:07:01 +01:00
Dan Williams
e93309e81d wwan: don't warn on disconnect if ModemManager isn't running
If ModemManager quit or was terminated, and that caused the disconnect,
don't bother printing out a warning if MM couldn't be started.
2015-03-02 13:56:40 -06:00
Thomas Haller
39f8b7b542 dhcp: update systemd DHCP code
This is a direct dump from systemd git on 2015-03-02, git commit
4d1d2f0858bb2fa6c.  Only relevant files were included.

    SYSTEMD_DIR=../systemd
    COMMIT=4d1d2f0858bb2fa6c45f0a7b3d427e657c0d4f67

    mkdir -p ./src/dhcp-manager/systemd-dhcp/src/libsystemd/sd-id128/

    (
       cd "$SYSTEMD_DIR"
       git checkout "$COMMIT"
       git reset --hard
       git clean -fdx
    )
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd/sd-id128/sd-id128.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd/sd-id128/sd-id128.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp-identifier.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp-identifier.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp-identifier.h ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp-identifier.h
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp-internal.h ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp-internal.h
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp-lease-internal.h ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp-lease-internal.h
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp-network.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp-network.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp-option.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp-option.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp-packet.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp-packet.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp-protocol.h ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp-protocol.h
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp6-internal.h ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp6-internal.h
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp6-lease-internal.h ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp6-lease-internal.h
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp6-network.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp6-network.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp6-option.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp6-option.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/dhcp6-protocol.h ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/dhcp6-protocol.h
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/network-internal.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/network-internal.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/network-internal.h ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/network-internal.h
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/sd-dhcp-client.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp-client.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/sd-dhcp-lease.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp-lease.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/sd-dhcp6-client.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp6-client.c
    /bin/cp "$SYSTEMD_DIR"/src/libsystemd-network/sd-dhcp6-lease.c ./src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp6-lease.c
    /bin/cp "$SYSTEMD_DIR"/src/shared/async.h ./src/dhcp-manager/systemd-dhcp/src/shared/async.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/fileio.c ./src/dhcp-manager/systemd-dhcp/src/shared/fileio.c
    /bin/cp "$SYSTEMD_DIR"/src/shared/fileio.h ./src/dhcp-manager/systemd-dhcp/src/shared/fileio.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/list.h ./src/dhcp-manager/systemd-dhcp/src/shared/list.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/log.h ./src/dhcp-manager/systemd-dhcp/src/shared/log.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/macro.h ./src/dhcp-manager/systemd-dhcp/src/shared/macro.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/path-util.c ./src/dhcp-manager/systemd-dhcp/src/shared/path-util.c
    /bin/cp "$SYSTEMD_DIR"/src/shared/path-util.h ./src/dhcp-manager/systemd-dhcp/src/shared/path-util.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/refcnt.h ./src/dhcp-manager/systemd-dhcp/src/shared/refcnt.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/siphash24.c ./src/dhcp-manager/systemd-dhcp/src/shared/siphash24.c
    /bin/cp "$SYSTEMD_DIR"/src/shared/siphash24.h ./src/dhcp-manager/systemd-dhcp/src/shared/siphash24.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/socket-util.h ./src/dhcp-manager/systemd-dhcp/src/shared/socket-util.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/sparse-endian.h ./src/dhcp-manager/systemd-dhcp/src/shared/sparse-endian.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/strv.c ./src/dhcp-manager/systemd-dhcp/src/shared/strv.c
    /bin/cp "$SYSTEMD_DIR"/src/shared/strv.h ./src/dhcp-manager/systemd-dhcp/src/shared/strv.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/time-util.c ./src/dhcp-manager/systemd-dhcp/src/shared/time-util.c
    /bin/cp "$SYSTEMD_DIR"/src/shared/time-util.h ./src/dhcp-manager/systemd-dhcp/src/shared/time-util.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/utf8.c ./src/dhcp-manager/systemd-dhcp/src/shared/utf8.c
    /bin/cp "$SYSTEMD_DIR"/src/shared/utf8.h ./src/dhcp-manager/systemd-dhcp/src/shared/utf8.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/util.c ./src/dhcp-manager/systemd-dhcp/src/shared/util.c
    /bin/cp "$SYSTEMD_DIR"/src/shared/util.h ./src/dhcp-manager/systemd-dhcp/src/shared/util.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/unaligned.h ./src/dhcp-manager/systemd-dhcp/src/shared/unaligned.h
    /bin/cp "$SYSTEMD_DIR"/src/shared/in-addr-util.c ./src/dhcp-manager/systemd-dhcp/src/shared/in-addr-util.c
    /bin/cp "$SYSTEMD_DIR"/src/shared/in-addr-util.h ./src/dhcp-manager/systemd-dhcp/src/shared/in-addr-util.h
    /bin/cp "$SYSTEMD_DIR"/src/systemd/_sd-common.h ./src/dhcp-manager/systemd-dhcp/src/systemd/_sd-common.h
    /bin/cp "$SYSTEMD_DIR"/src/systemd/sd-dhcp-client.h ./src/dhcp-manager/systemd-dhcp/src/systemd/sd-dhcp-client.h
    /bin/cp "$SYSTEMD_DIR"/src/systemd/sd-dhcp-lease.h ./src/dhcp-manager/systemd-dhcp/src/systemd/sd-dhcp-lease.h
    /bin/cp "$SYSTEMD_DIR"/src/systemd/sd-dhcp6-client.h ./src/dhcp-manager/systemd-dhcp/src/systemd/sd-dhcp6-client.h
    /bin/cp "$SYSTEMD_DIR"/src/systemd/sd-dhcp6-lease.h ./src/dhcp-manager/systemd-dhcp/src/systemd/sd-dhcp6-lease.h
    /bin/cp "$SYSTEMD_DIR"/src/systemd/sd-event.h ./src/dhcp-manager/systemd-dhcp/src/systemd/sd-event.h
    /bin/cp "$SYSTEMD_DIR"/src/systemd/sd-id128.h ./src/dhcp-manager/systemd-dhcp/src/systemd/sd-id128.h
2015-03-02 20:25:18 +01:00
Lubomir Rintel
ad2b17bfb4 trivial: don't run wifi tests if the tests are disabled 2015-03-02 19:22:10 +01:00
Thomas Haller
def82cddea dhcp: cleanup internal systemd dhcp library
Merge first part of patches that prepare for updating
the dhcp library to new systemd upstream.

https://bugzilla.gnome.org/show_bug.cgi?id=742719
2015-03-02 14:26:02 +01:00
Thomas Haller
42b39b9482 dhcp: ensure every systemd dhcp file includes 'nm-sd-adapt.h' first 2015-03-02 14:22:09 +01:00
Thomas Haller
15bebd7c51 dhcp: don't include config.h in systemd source
systemd sources should all include 'nm-sd-adapt.h' as first header,
which in turn already includes our 'config.h'.
2015-03-02 14:22:09 +01:00
Thomas Haller
5162426d41 logging: add error argument to _nm_log() to support "%m" format specifier
A gnu extension to printf adds the format specifier "%m"
to print @errno. To preserve the error number until the
point where the logging statement is constructed, pass
it as an additional argument to _nm_log().

This is not (yet) used from NM internal code. But systemd is adding
similar functionality to its logging functions. Add the same also to
nm-logging, to support systemd's usage of "%m".
2015-03-02 14:22:09 +01:00
Thomas Haller
94b9c79cf6 dhcp/trivial: add '/* NM_IGNORED */' comment to #endif added by NetworkManager 2015-03-02 14:22:08 +01:00
Thomas Haller
a05b04c0fd dhcp/trivial: remove shaddowed '#if 0 /* NM_IGNORED */' block
Remove '#if 0' inside another '#if 0' block.
2015-03-02 14:22:08 +01:00
Thomas Haller
81c420dc62 cli/completion: add completion for --order option
This does not yet work, because the --order option
contains colons which bash completion considers as
separaters.

For now, implement it and ignore that problem. It
works correctly until you specify more then one
order-columns separated by colon.

https://bugzilla.gnome.org/show_bug.cgi?id=738613

Fixes: 40e98f5d68
2015-03-02 14:02:58 +01:00
Jiří Klimeš
a94081b70f tui: fix the previous commit
Fixes cdc8bd1.
2015-03-02 09:54:48 +01:00
Jiří Klimeš
cdc8bd178b tui: add "Enable IGMP snooping" to bridge editor (bgo #744853)
https://bugzilla.gnome.org/show_bug.cgi?id=744853
2015-03-02 09:26:30 +01:00
Thomas Haller
2c96ac73be build: remove bashism from configure.ac constructing session_tracking value
(ln -snf /bin/dash ./sh; export PATH=".:$PATH"; export CONFIG_SHELL=/bin/dash; ./configure)

https://bugzilla.gnome.org/show_bug.cgi?id=743480
2015-03-02 09:01:23 +01:00
Jiří Klimeš
5aa204edec tui: fix a crash when connection list for activation is empty (rh #1119663)
When there are no connections for a device, do not add the header.

https://bugzilla.redhat.com/show_bug.cgi?id=1119663
2015-02-27 22:52:10 +01:00
Stas Solovey
f610ae7265 po: updated Russian (ru) translation (bgo #745262)
https://bugzilla.gnome.org/show_bug.cgi?id=745262
2015-02-27 22:48:36 +01:00
Thomas Haller
f3ad60b434 route-manager: define singelton using NM_DEFINE_SINGLETON_GETTER()
Fixes: 874e4a7595
2015-02-27 21:40:44 +01:00
Thomas Haller
ea0d0b3086 route-manager/build: fix out-of-tree builds for route-manager tests
Fixes: 0659a67c8f
2015-02-27 19:36:43 +01:00
Dan Williams
79aac22148 build: order ADSL plugin build after core files
Build it right before the other plugins.
2015-02-27 10:36:23 -06:00
Dan Williams
677cee0f23 dhclient: use fqdn.fqdn for server DDNS updates
dhclient only supports fqdn.fqdn for server DDNS updates with
DHCPv6.  And even though the underlying DHCP options that fqdn.fqdn
controls allow non-qualified hostnames on the wire, dhclient does
not.  So we must require a fully-qualified name for DHCPv6.

Second, while no-client-updates seems like it should be "off", doing
that apparently makes dhclient set the "O" flag to 1 which appears to
be a bug, and results in the server not doing the DDNS update.  So
we must stop setting that option too.

Found by: Alexander Groß
2015-02-27 10:05:56 -06:00
Lubomir Rintel
8d29b3a631 route-manager: merge branch 'lr/route-manager-rh740064'
Remeber routes for connections, avoid conflicts and restore proper routes when
the conflicting connection vanishes.

https://bugzilla.gnome.org/show_bug.cgi?id=740064
2015-02-27 16:54:23 +01:00
Lubomir Rintel
f981407a02 core: pass ifindex as parameter to nm_ip6_config_new() 2015-02-27 16:50:09 +01:00
Dan Williams
84f54f0a5f core: pass ifindex as parameter to nm_ip4_config_new() 2015-02-27 16:50:09 +01:00
Lubomir Rintel
0659a67c8f route-manager: add test 2015-02-27 16:48:28 +01:00
Lubomir Rintel
4c3ba29b40 route-manager: remember routes that should be active
Kernel likes to remove a route in case an equivalent route is added to another
interface. Avoid this situation and only apply the new routes in case the ones
that would cause a conflict are removed.

https://bugzilla.redhat.com/show_bug.cgi?id=1164441
https://bugzilla.gnome.org/show_bug.cgi?id=740064
2015-02-27 16:48:28 +01:00
Lubomir Rintel
7c52d094ed route-manager: normalize ipv6 route metrics during comparison
IPv6 metric of zero is equal to 1024.
2015-02-27 16:48:28 +01:00
Lubomir Rintel
72cefd5162 fake-platform: normalize ipv6 route metric before deletion 2015-02-27 16:48:28 +01:00
Lubomir Rintel
4d097829f0 fake-platform: reject adding routes without the gateway on the same interface
This mimics Linux behavior.
2015-02-27 16:48:28 +01:00
Lubomir Rintel
f6c9b4ff83 fake-platform: override routes that clash
This is done to more closely mimic what Linux does.
2015-02-27 16:48:28 +01:00
Lubomir Rintel
1ee03eeb5a fake-platform: move route deletion above addition
No change in behavior.

We'll need it when we'll remove routes that clash upon addition.
2015-02-27 16:48:27 +01:00