Commit Graph

14110 Commits

Author SHA1 Message Date
Jiří Klimeš
1a48e5d918 libnm: fix indenting in libnm/nm-device-ip-tunnel.c
Fixes: e2da055f90
2015-12-09 13:29:02 +01:00
Thomas Haller
b9a35b6913 device/trivial: rename variable 2015-12-09 12:49:29 +01:00
Thomas Haller
e967cbd0bf device: during activating device transit to DISCONNECTED state
When activating a device, we must progress the device state to
disconnected state.

This matters when activating a device without carrier. In this
case we would have skipped DISCONNECTED state. Skipping the
device state then leads to other issues like a slave device
never noticing that the master got ready.
2015-12-09 12:42:50 +01:00
Thomas Haller
2d1d187493 device: add NM_DEVICE_CHECK_DEV_AVAILABLE_FOR_USER_REQUEST flag
This generalizes _NM_DEVICE_CHECK_DEV_AVAILABLE_IGNORE_CARRIER.
2015-12-09 12:08:40 +01:00
Thomas Haller
7eeadc2caf device: fix enum value NM_DEVICE_CHECK_CON_AVAILABLE_ALL
ALL had wrongly the value 0x05 instead of 0x03.
2015-12-09 12:04:36 +01:00
Beniamino Galvani
158c63eb2c device: move initialization of ifindex to constructor()
Device subclasses (for example NMDeviceWifi) can use the ifindex in
their constructor(), but the value now is set later in
parent class constructed(). This causes the following:

  nm_platform_wifi_get_capabilities: assertion 'ifindex > 0' failed

Fix this by initializing ifindex earlier in NMDevice's
constructor(). While at it, remove the

  nm_assert (pllink->type != NM_LINK_TYPE_NONE);

assertion, since pllink can be NULL there.

Fixes: 6db04dc206
2015-12-09 11:09:48 +01:00
Jiří Klimeš
3e5fea9820 cli: TAB-complete yes/no for boolean properties in the editor 2015-12-09 09:31:36 +01:00
Lubomir Rintel
e68619df06 merge: branch 'lr/device-link-type'
Avoids a mismatch of incompatible devices of the same class. Consider two
devices of tap class, one of tun mode and one of tap mode.
2015-12-08 18:14:53 +01:00
Lubomir Rintel
1762d58a8c manager: improve the add_device() error handling a bit
Let it indicate that it didn't succeed adding a device to the global list and
bail out.
2015-12-08 18:11:53 +01:00
Lubomir Rintel
f72d0f6efb device: set link type from all factories
This is, in particular, important for devices that support multiple link types
which can not be changed once the platform device exists.
2015-12-08 18:11:53 +01:00
Lubomir Rintel
7dbf821cb2 device: precisely match the link type to the platform device
The unrealized device's factory could be using one particular link type, don't
allow matching the device to a non-matching one.
2015-12-08 18:11:53 +01:00
Lubomir Rintel
6db04dc206 device: add link_type property
This is to make it possible for the device factories to indicate the desired
link type and make it possible to avoid matching the unrealized device to a
platform device of different link type.
2015-12-08 18:11:52 +01:00
Thomas Haller
5201c3d8f9 trival: fix whitespace 2015-12-08 11:52:37 +01:00
Thomas Haller
3a3b32a9f6 config: add defines for key names for keyfile 2015-12-08 11:47:56 +01:00
Thomas Haller
7685961261 active-connection: improve logging in NMActiveConnection
- cleanup _NMLOG()
- implement state_to_string() based on NM_UTILS_STRING_LOOKUP_TABLE(),
  which prints unknown values as numeric
- add logging when setting device and state
- cleanup logging in check-master-ready to consistently
  print relevant information
- update logging in set_master() to match simpler logging
  format like set_device() and set_state().
2015-12-07 21:47:01 +01:00
Thomas Haller
cc99ab81f3 macros: add nm_sprintf_bufa() 2015-12-07 21:36:16 +01:00
Thomas Haller
1104110865 device: fix crash in master_ready() logging unset priv->master
Fixes: f45f702a5e
2015-12-07 21:36:16 +01:00
Thomas Haller
03f8ba490a core: use define for NMManager's "state-changed" signal name 2015-12-07 19:54:12 +01:00
Thomas Haller
3755209039 core: use define for NMPPPManager's "state-changed" signal name 2015-12-07 19:54:11 +01:00
Thomas Haller
e1738c7c61 core: use define for NMDnsMasqManager's "state-changed" signal name 2015-12-07 19:53:14 +01:00
Thomas Haller
ee4ec4e600 core: use define for NMDevice's "state-changed" signal name 2015-12-07 19:53:14 +01:00
Thomas Haller
04c70c76bc device: cache pointer to private-data in NMDevice structure
We often lookup the private data and retrieve it via NM_DEVICE_GET_PRIVATE(),
which in turn calls G_TYPE_INSTANCE_GET_PRIVATE().

Instead cache the pointer to the private data.

There are up- and downsides:

 - requries additional sizeof(gpointer) bytes for each NMDevice.
 + retrieving the private pointer will be slightly faster.
 + easier debugging in gdb as it is currently often a pain to
   retrieve the private data.

But most importantly, the allows to change our common pattern
to first cache the private data in a variable @priv. That is
often cumbersome to write, especially for short functions.
This change gives us a choice to use self->priv directly.

Such a change should not be aimed for every class. Instead it makes
mostly sense for NMDevice, where it pays off better due to the
class' size and ubiquitous use.

https://mail.gnome.org/archives/networkmanager-list/2015-December/msg00017.html
2015-12-07 19:30:11 +01:00
Lubomir Rintel
2077dee582 device: fix a typo in assertion
It is well understood that world would implode if the device was its own master.

Fixes: f45f702a5e
2015-12-07 19:02:54 +01:00
Jiří Klimeš
e29b844f42 cli: produce new line after readline when echoing was off
The new line was missing.
Adding termios_new.c_lflag |= (ECHONL | ICANON); did not help. Why?

Fixes: a14306c2ce
2015-12-07 17:33:03 +01:00
Thomas Haller
229ea4547c device: don't pass void* pointer to NM_DEVICE_GET_PRIVATE() 2015-12-07 16:34:48 +01:00
Thomas Haller
14bb9419a0 examples: add README for python-networkmanager NetworkManager library 2015-12-07 16:06:46 +01:00
Thomas Haller
5b732c3b9f examples: add README for examples/python/gi 2015-12-07 15:59:20 +01:00
Thomas Haller
9b2a34c978 route-manager: always flush IPv6 routes during nm_route_manager_route_flush() 2015-12-07 15:23:27 +01:00
Thomas Haller
0a6cca9450 device: use NM_UTILS_STRING_LOOKUP_TABLE() for reason_to_string()
Showcase for the new macros NM_UTILS_STRING_LOOKUP_TABLE() and
NM_UTILS_STRING_LOOKUP_TABLE_DEFINE_STATIC().

It changes behavior in case of looking up an invalid/unknown
state reason. Previously it would just have returned "unknown"
-- which was indistinguishable from a regular "unknown" value.

Now it returns the numeric id as a string. The string is allocated
with alloca(), which is desired but one should be aware of the pitfalls:

- prevents the caller from being inlined
- bad idea to do in a loop.
2015-12-07 14:41:32 +01:00
Thomas Haller
a291ecc29c utils: add NM_UTILS_STRING_LOOKUP_TABLE() macro 2015-12-07 14:34:59 +01:00
Thomas Haller
01ea90b57a utils: minor refactoring of NM_UTILS_FLAGS2STR_DEFINE() macro 2015-12-07 14:34:59 +01:00
Jiří Klimeš
c52b2044cd merge: nmcli: don't show password by default, add --show-secrets (rh #759116)
https://bugzilla.gnome.org/show_bug.cgi?id=759116
2015-12-07 14:25:37 +01:00
Jiří Klimeš
629de4e689 cli: add global --show-secrets option
- it controls echoing passwords input on terminal
- it replaces --show-secrets in 'nmcli connection show', which is deprecated now
- it replaces --show-password in 'nmcli device wifi hotspot', which is deprecated now
2015-12-07 14:14:58 +01:00
Jiří Klimeš
23aff47826 cli: use nmc_readline_echo() for asking password in 'nmcli con add' 2015-12-07 14:14:58 +01:00
Jiří Klimeš
1056408fd4 cli: use nmc_readline_echo() for asking password in 'nmcli dev wifi connect' 2015-12-07 14:14:58 +01:00
Jiří Klimeš
02388060c1 cli: use new nmc_readline_echo() in polkit agent 2015-12-07 14:14:58 +01:00
Jiří Klimeš
a14306c2ce cli: do not echo passwords on terminal when asking for them
adds nmc_readline_echo() function that can disable displaying characters.
2015-12-07 14:14:58 +01:00
Thomas Haller
d5a8401686 initscript: remove all distribution initscripts
These initscripts weren't modified for a long time. Are they just
unused or flawless? It seems they are no longer best-practice
(e.g. NetworkManager supports reloading configuration via SIGHUP,
which none of these scripts implement).

Nowadays some distributions moved to systemd and quite possible
nobody uses these scripts. Also, any potential downstream user
probably has an adjusted copy of them in their repositories.

Just remove them.

https://mail.gnome.org/archives/networkmanager-list/2015-December/msg00003.html
2015-12-07 13:37:30 +01:00
Jiří Klimeš
9f2326dff0 man: rephrase a sentence in nmcli man page
for 'nmcli connection clone'
2015-12-07 12:22:45 +01:00
Jiří Klimeš
acaf7cf641 nm-import-openvpn: import 'route' option
https://bugzilla.gnome.org/show_bug.cgi?id=753578
https://git.gnome.org/browse/network-manager-openvpn/commit/?id=4eb5f3ad43cdc62c6d4d254731e24c90b87ba91a
2015-12-07 12:22:45 +01:00
Thomas Haller
72c36bd6db device/tun: fix reloading tun properties
Before the device is setup, we call nm_platform_tun_get_properties() without
a valid ifindex. That triggered an assertion [1].

Thereby, change nm_platform_tun_get_properties() to effectively clear
the tun properties when we are unable to fetch them. Also, never modify
the tun-mode of NMDeviceTun.

[1]
    #0  0x00007f0a4173e81b in g_logv (breakpoint=1) at gmessages.c:324
    #1  0x00007f0a4173e81b in g_logv (log_domain=0x561e9264ccf6 "NetworkManager", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7ffd71a0d4d0) at gmessages.c:1081
    #2  0x00007f0a4173e98f in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at gmessages.c:1119
    #3  0x0000561e9241ecec in nm_platform_tun_get_properties (self=0x561e9354ba70 [NMLinuxPlatform], ifindex=0, props=0x7ffd71a0d650) at platform/nm-platform.c:2081
    #4  0x0000561e923aad9c in reload_tun_properties (self=0x561e937fb080 [NMDeviceTun]) at devices/nm-device-tun.c:68
    #5  0x0000561e923aa795 in realize (device=0x561e937fb080 [NMDeviceTun], plink=0x7ffd71a0d818, error=0x7ffd71a0d798) at devices/nm-device-tun.c:225
    #6  0x0000561e923bdc06 in nm_device_realize (self=0x561e937fb080 [NMDeviceTun], plink=0x7ffd71a0d818, out_compatible=0x7ffd71a0d77c, error=0x7ffd71a0d798) at devices/nm-device.c:1713
    #7  0x0000561e924ad995 in platform_link_added (self=0x561e9356e230 [NMManager], ifindex=33, plink=0x7ffd71a0d818) at nm-manager.c:1947
    #8  0x0000561e924ad717 in _platform_link_cb_idle (data=0x561e937eb940) at nm-manager.c:2029
    #9  0x00007f0a41737e3a in g_main_context_dispatch (context=0x561e93547530) at gmain.c:3154
    #10 0x00007f0a41737e3a in g_main_context_dispatch (context=context@entry=0x561e93547530) at gmain.c:3769
    #11 0x00007f0a417381d0 in g_main_context_iterate (context=0x561e93547530, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3840
    #12 0x00007f0a417384f2 in g_main_loop_run (loop=0x561e935475f0) at gmain.c:4034
    #13 0x0000561e923ba3f3 in main (argc=1, argv=0x7ffd71a0dc68) at main.c:488

Fixes: 4dbaac4ba2
2015-12-07 11:32:12 +01:00
Lubomir Rintel
da528b5ccd cli: drop an extra newline 2015-12-07 11:23:39 +01:00
Lubomir Rintel
9dbf549c64 vpn-editor-plugin: improve the error handling a bit 2015-12-07 11:20:14 +01:00
Lubomir Rintel
b38a5f4cb4 cli: avoid using tmp template after it goes out of scope
Fixes: 3892b839af
2015-12-07 11:05:52 +01:00
Lubomir Rintel
4ffed27959 cli: improve the error reporting a bit 2015-12-07 10:51:49 +01:00
Lubomir Rintel
fccd48fce8 clients: add clients/common/nm-vpn-helpers.c to POTFILES.in
Fixes: b8d6bd1a98
2015-12-07 10:18:55 +01:00
Jiří Klimeš
4e9aa035c2 merge: implement nmcli con import/export for VPN connections (rh #1034105)
https://bugzilla.redhat.com/show_bug.cgi?id=1034105
2015-12-07 09:17:48 +01:00
Jiří Klimeš
3892b839af cli: add 'nmcli connection export' (rh #1034105)
Synopsis:
  nmcli connection export [ id | uuid | path] <ID> [<output file>]

for exporting VPN connections.

https://bugzilla.redhat.com/show_bug.cgi?id=1034105
2015-12-07 09:11:20 +01:00
Jiří Klimeš
9a0e4bae47 cli: add 'nmcli connection import' (rh #1034105)
Synopsis:
  nmcli connection import [--temporary] type <type> file <file to import>

Only VPN configurations can be imported at the moment.

https://bugzilla.redhat.com/show_bug.cgi?id=1034105
2015-12-07 09:11:06 +01:00
Jiří Klimeš
f28d311d13 clients: accept service without org.freedesktop.NetworkManager prefix
in nm_vpn_get_plugin_by_service()
2015-12-05 21:29:00 +01:00