Thomas Haller
04df4edf48
libnm: add keyfile support to libnm-core
...
https://bugzilla.gnome.org/show_bug.cgi?id=744699
2015-03-12 18:12:26 +01:00
Thomas Haller
1fc9bc401e
keyfile: copy read/writer files to libnm-core
...
This is the first step to move keyfile to libnm. For now, only
copy the files to make later changes nicer in git-history.
/bin/cp src/settings/plugins/keyfile/reader.c libnm-core/nm-keyfile-reader.c
/bin/cp src/settings/plugins/keyfile/reader.h libnm-core/nm-keyfile-reader.h
/bin/cp src/settings/plugins/keyfile/utils.c libnm-core/nm-keyfile-utils.c
/bin/cp src/settings/plugins/keyfile/utils.h libnm-core/nm-keyfile-utils.h
/bin/cp src/settings/plugins/keyfile/writer.c libnm-core/nm-keyfile-writer.c
/bin/cp src/settings/plugins/keyfile/writer.h libnm-core/nm-keyfile-writer.h
2015-03-12 18:12:26 +01:00
Thomas Haller
e82293ebf6
libnm: move _nm_utils_uuid_generate_from_strings() from src/ to libnm-core/
2015-03-12 18:12:26 +01:00
Thomas Haller
67510e323a
trivial: rename nm_utils_uuid_generate_from_strings() to _nm_utils_uuid_generate_from_strings()
2015-03-12 18:12:26 +01:00
Thomas Haller
c5d23737fd
libnm: move _nm_utils_ascii_str_to_int64() from src/ to libnm-core/
2015-03-12 18:12:26 +01:00
Thomas Haller
093f6d477b
trivial: rename nm_utils_ascii_str_to_int64() to _nm_utils_ascii_str_to_int64()
2015-03-12 18:12:26 +01:00
Thomas Haller
b66deb67fa
keyfile: remove unused struct member ObjectType.privkey_pw_prop in writer.c
2015-03-12 18:12:26 +01:00
Thomas Haller
f430774ca0
keyfile: handle invalid integer list in keyfile reader get_bytes()
...
nm_keyfile_plugin_kf_get_integer_list() should always set
@length to zero when returning no integer list. So, this
is probably correct. Still, just to be explicit, anticipate
and handle a missing @tmp_list.
2015-03-12 18:12:26 +01:00
Thomas Haller
7b6759b764
keyfile: make reader more strict in handle_as_path()
...
When interpreting a blob as filename, ensure that it contains
no NUL character (except the last char).
2015-03-12 18:12:26 +01:00
Thomas Haller
15926e9eb3
libnm: add function nm_setting_802_1x_check_cert_scheme()
...
When setting the certificate glib properties directly,
we raise a g_warning() when the binary data is invalid.
But since the caller has no access to the validation function,
he cannot easily check whether his action will result
in a warning. Add nm_setting_802_1x_check_cert_scheme() for
that.
2015-03-12 18:12:26 +01:00
Thomas Haller
0f1fe69422
trivial: add FIXME code comment about potential race
2015-03-12 18:12:26 +01:00
Thomas Haller
11371b5470
libnm: only call strlen() once in NMSetting8021x:path_to_scheme_value()
...
Also assert that path is not empty.
2015-03-12 18:12:25 +01:00
Thomas Haller
88a79625a6
libnm: fix clearing memory in file_to_secure_bytes()
...
If we go through the lengths of clearing the allocated
memory, we must not forget @contents.
2015-03-12 18:12:25 +01:00
Thomas Haller
cda7b158e2
libnm: ensure valid blob for nm_setting_802_1x_set_*_cert()
...
A valid blob cannot start with "file://", otherwise it would
break the implementation of the certificate properties in
NMSetting8021x. Simply reject every blob in nm_setting_802_1x_set_ca_cert()
et al. that is not valid according to get_cert_scheme().
2015-03-12 18:12:25 +01:00
Thomas Haller
e59e68c528
libnm: combine get_cert_scheme() and verify_cert() and ensure valid paths for NMSetting8021x
...
get_cert_scheme() would return PATH scheme for binary data that
later will be rejected by verify_cert(). Even worse, get_cert_scheme()
would not check whether the path is NUL terminated, hence the following
can crash for an invalid connection:
if (nm_setting_802_1x_get_ca_cert_scheme (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH)
g_print ("path: %s", nm_setting_802_1x_get_ca_cert_path (s_8021x))
Combine the two functions so that already get_cert_scheme() does
the same validation as verify_cert().
Also change behavior and be more strict about invalid paths:
- Now, the value is considered a PATH candidate if it starts with "file://",
(sans NUL character).
A change is that before, the "file://" (without NUL) would have
been treated as BLOB, now it is an invalid PATH (UNKNOWN).
- If the binary starts with "file://" it is considered as PATH but it
is only valid, if all the fllowing is true:
(a) the last character must be NUL.
(b) there is no other intermediate NUL character.
Before, an intermediate NUL character would have been accepted
and the remainder would be ignored.
(c) there is at least one non-NUL character after "file://".
(d) the string must be fully valid utf8.
The conditions (b) and (c) are new and some invalid(?) paths
might no longer validate.
Checking (d) moved from verify_cert() to get_cert_scheme().
As set_cert_prop_helper() already called verify_cert(), this
causes no additional change beyond (b).
2015-03-12 18:12:25 +01:00
Thomas Haller
1e4612e476
keyfile: add code comment to cert_writer() and downgrade assertion to g_critical()
2015-03-12 18:12:25 +01:00
Thomas Haller
cbfa00219e
test: add nmtst_assert_resolve_relative_path_equals() function
2015-03-12 18:12:25 +01:00
Thomas Haller
ad4e6f7fad
build/trivial: cleanup Makefile.am by sorting EXTRA_DIST entries
2015-03-12 18:12:25 +01:00
Thomas Haller
0429ed85ad
libgsystem: update copy of gsystem-local-alloc.h
...
Taken from libgsystem:src/gsystem-local-alloc.c
(commit ad3a28c5f2520d0688730aa83eaee815fb9a5762).
2015-03-12 18:09:29 +01:00
Jiří Klimeš
ae3f452994
cli: fix memory leaks when asking for arguments
2015-03-12 15:32:40 +01:00
Jiří Klimeš
f8366c8b1c
cli: fix TAB completion for multiple connections in 'nmcli con down/delete'
2015-03-12 15:32:40 +01:00
Jiří Klimeš
661ef3cd46
cli: don't return empty strings in nmc_string_to_arg_array()
...
and unquote strings in the array if required.
2015-03-12 15:32:39 +01:00
Thomas Haller
65729cb740
route-manager: fix memleaks in nm_route_manager_ip4_route_sync()
...
Fixes: 4c3ba29b40
2015-03-12 13:51:06 +01:00
Srdjan Grubor
0e1fe1fe4e
examples: update Python NM example to print detailed connection state
...
Current Python NM example has a very crude connection state output
and the global NM connectivity is not used in them either.
https://bugzilla.gnome.org/show_bug.cgi?id=746045
2015-03-12 10:39:00 +01:00
Dan Williams
a5891299b9
core: quit if manager startup completed before starting the mainloop
2015-03-11 09:17:01 -05:00
Dan Williams
cb17be1e12
man: note that dhcp=internal is required for configure-and-quit=true
2015-03-10 15:30:02 -05:00
Dan Williams
fce2fa57a5
wifi: fix recognition of AP RSN capabilities
...
Stupid C&P error made everything look like WPA1.
Fixes: 59c8192b22
2015-03-10 13:47:36 -05:00
Dan Williams
e5e0fa566b
supplicant: disconnect properties handler on dispose
...
The supplicant interface's proxy may outlive the interface object
itself, so we must ensure that all signal handlers are disconnected.
Fixes a crash on suspend/resume.
Fixes: 59c8192b22
2015-03-10 08:37:40 -05:00
Petr Vorel
4213c17b44
examples: python: print into stderr
...
https://mail.gnome.org/archives/networkmanager-list/2015-March/msg00024.html
Signed-off-by: Petr Vorel <petr.vorel@gmail.com >
2015-03-10 12:17:59 +01:00
Thomas Haller
2171084378
examples/trvial: replace tabs by whitespace in python example
2015-03-10 12:17:23 +01:00
Lubomir Rintel
d5fc88e573
nm-device: merge branch 'lr/ipv6-mtu-rh1194007'
...
Don't allow setting MTU to invalid values.
2015-03-09 18:21:21 +01:00
Lubomir Rintel
7ba2a058f2
nm-device: avoid improper IPv6 MTU configuration
...
Ensure it's always (before address configuration starts and on updates) >= 1280
and not higher than the device MTU.
2015-03-09 18:21:01 +01:00
Lubomir Rintel
1bc202af02
nm-device: move device MTU setting from IP4Config to NMDevice
...
Just a refactoring, no functional change. This will make it easier to
coordinate the device MTU with IPv6 MTU.
2015-03-09 18:21:01 +01:00
Lubomir Rintel
4d6bf4eef3
nm-device: set ipv6 mtu at config commit time
...
Just a refactoring, doesn't make any actual difference. It is consistent with
IPv4 and will make it easier to implement a policy to recover from incorrect
MTUs settings.
2015-03-09 18:21:01 +01:00
Lubomir Rintel
6c5d93b847
route-manager: refactor: a readability improvement
2015-03-09 14:13:02 +01:00
Jiří Klimeš
6b5de0ab5f
examples: add a Python example deactivating connections by type (bgo #732826 )
...
https://bugzilla.gnome.org/show_bug.cgi?id=732826
2015-03-05 15:59:52 +01:00
Jiří Klimeš
489f80e3c0
examples: add a Lua example deactivating connections by type (bgo #732826 )
...
https://bugzilla.gnome.org/show_bug.cgi?id=732826
2015-03-05 15:59:32 +01:00
Thomas Haller
e45054ec9e
build: fix typo in configure script failing detection of libsystemd
...
Also revert 068e9210ec
.
Fixes: ce6d5580f5
2015-03-04 16:50:17 +01:00
Thomas Haller
02130cc157
supplicant: remove unused variable
2015-03-04 16:42:45 +01:00
Pavel Šimerda
068e9210ec
session: check for libsystemd-logind and fallback to libsystemd
...
The previous change turned out to be wrong despite it was nothing more
than a reversion of the respective lines.
Acked-By: Thomas Haller <thaller@redhat.com >
2015-03-04 15:56:27 +01:00
Pavel Šimerda
ce6d5580f5
session: check for libsystemd and fallback to libsystemd-login
...
Acked-By: Michael Biebl <biebl@debian.org >
Acked-By: Lubomir Rintel <lkundrak@v3.sk >
2015-03-04 15:35:47 +01:00
Thomas Haller
2e788fac45
dhcp: sd-dhcp6-client: delay setting the DUID and don't fail constructor
...
reimport systemd dhcp code to bring patch cc22955cfefb4bd6e7a135f1ec95fb5a07ba9ce3.
sd-dhcp6-client: delay setting the DUID and don't fail constructor
sd_dhcp6_client_new() tried to set the DUID based on the machine id.
If the host has no /etc/machine-id, the constructor would fail
making it impossible to create an sd_dhcp6_client instance.
Relax this and create a DUID only later as needed. This way a caller
caller can workaround a missing machine-id file and set a DUID of his
choosing via sd_dhcp6_client_set_duid().
Conflicts:
src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp6-client.c
2015-03-04 11:52:26 +01:00
Thomas Haller
bd3dc1f7f3
dhcp: update systemd DHCP code
...
This is a direct dump from systemd git on 2015-03-04, git commit
cc22955cfefb4bd6e7a. Only relevant files were included.
SYSTEMD_DIR=../systemd
COMMIT=cc22955cfefb4bd6e7a135f1ec95fb5a07ba9ce3
(
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-04 11:45:01 +01:00
Dan Williams
231b0390a5
vpn: convert NMVpnConnection <-> VPN service communication to GDBus (bgo #745307 )
...
Of special note is the new D-Bus rule to allow root to talk to
org.freedesktop.NetworkManager.VPN.Plugin, without which NetworkManager
would not hear signals from the VPN plugins. Oddly, this worked
fine with dbus-glib...
https://bugzilla.gnome.org/show_bug.cgi?id=745307
2015-03-03 15:04:46 -06:00
Dan Williams
19c0de8b88
merge: replace usage of dbus-glib in supplicant code with GDBus (bgo #744598 )
2015-03-03 15:00:14 -06:00
Dan Williams
9adbc05e1b
supplicant: remove unused nm-call-store.c/.h
2015-03-03 14:56:26 -06:00
Dan Williams
59c8192b22
supplicant: convert interface/config to GDBus
2015-03-03 14:56:25 -06:00
Dan Williams
47fe1b3196
supplicant: clean up some whitespace
2015-03-03 14:56:24 -06:00
Dan Williams
7ed2d7a809
supplicant: make NMSupplicantInterface independent of NMSupplicantManager
...
The Interface held a reference to the manager to listen for the 'available'
signal. Instead of that, let's make the child unaware of the master to
keep the inheritance cleaner.
2015-03-03 14:56:24 -06:00
Dan Williams
0e8f5b2e57
supplicant: clean up NMSupplicantInterface::dispose()
2015-03-03 14:56:24 -06:00