1. 17 Aug, 2016 31 commits
    • Thomas Haller's avatar
      all: cleanup includes in header files · 0bdcab10
      Thomas Haller authored
      - don't include "nm-default.h" in header files. Every source file must
        include as first header "nm-default.h", thus our headers get the
        default include already implicitly.
      
      - we don't support compiling NetworkManager itself with a C++ compiler. Remove
        G_BEGIN_DECLS/G_END_DECLS from internal headers. We do however support
        users of libnm to use C++, thus they stay in public headers.
      
      (cherry picked from commit f19aff89)
      0bdcab10
    • Lubomir Rintel's avatar
      release: bump version to 1.3.91 (1.4-rc1) · 40d5749e
      Lubomir Rintel authored
      40d5749e
    • Lubomir Rintel's avatar
      cb6f1f57
    • Thomas Haller's avatar
      all: merge branch 'th/device-statistics' · 844345ed
      Thomas Haller authored
      Add support to expose tx/rx statistics per device
      
      https://mail.gnome.org/archives/networkmanager-list/2016-August/msg00045.html
      844345ed
    • Thomas Haller's avatar
      device: always expose device statistics information · fbbebc21
      Thomas Haller authored
      Instead of updating the device-statistic counters only periodically as
      we refresh the link, update them on every link-changed event from
      platform.
      
      That means, also for devices that have RefreshRateMs at zero, the values
      will be updated at random times when the link information changes.
      The difference is, that previously the counters would be zero unless
      RefreshRateMs was set. Now, they have some (probably stale) values
      which however are not guaranteed to be kept up-to-date.
      
      Also, now we refresh more often then promised by RefreshRateMs. But the API
      technically doesn't specify that, so if we find there is a problem with
      this, we may revert it later.
      fbbebc21
    • Thomas Haller's avatar
      device: drop nm-device-statistics.c and refactor tracking device statistics · c16e14c7
      Thomas Haller authored
      Originally, "nm-device-statistics.c" contained code to fetch the device
      counters via netlink. As now the netlink part is handled by NMPlatform,
      the code can be simplified by merging it back to NMDevice.
      c16e14c7
    • Thomas Haller's avatar
    • Thomas Haller's avatar
      device: namespace fields related to statistics in NMDevicePrivate · 02a448e4
      Thomas Haller authored
      ... by grouping them together in a struct.
      02a448e4
    • Thomas Haller's avatar
      device: don't initalize fields in nm_device_init() to NULL · d9509a2d
      Thomas Haller authored
      They are already guaranteed to be 0/NULL.
      d9509a2d
    • Thomas Haller's avatar
      manager: add explicit cast for g_object_set() · 14a7b2a4
      Thomas Haller authored
      Technically, this is not needed because glib requires that
      int is at least 32 bits. Thus, uint32 will be safely promoted
      to uint.
      
      Just do the cast to be explict about the expected type.
      14a7b2a4
    • Thomas Haller's avatar
      36f8ffad
    • Thomas Haller's avatar
      device: reset device-stats in update_stats() on missing link · fc2f1d9c
      Thomas Haller authored
      First of all, we don't expect missing NMPlatformLink instances.
      If that actually happens, just reset the counters to zero.
      fc2f1d9c
    • Thomas Haller's avatar
      platform: drop nm_platform_link_get_stats() · 9c5405eb
      Thomas Haller authored
      No need to add accessors for fields of NMPlatformLink. Just access
      them directly.
      9c5405eb
    • Thomas Haller's avatar
    • Thomas Haller's avatar
      platform: fix sorting order for nm_platform_link_cmp() · b3c376cd
      Thomas Haller authored
      nm_platform_link_cmp() shall first compare the ifindex, otherwise
      the sort-order first considers rather unimportant fields instead
      of the primary key: the ifindex.
      
      Fixes: a3185f22e55484b819859cb4cef8f54385dac1a9
      b3c376cd
    • Alfonso Sanchez-Beato's avatar
      ce93bd2d
    • Alfonso Sanchez-Beato's avatar
      6fb0de0a
    • Thomas Haller's avatar
      2cb18efa
    • Alfonso Sanchez-Beato's avatar
      device: add statistics interface · 24b193ab
      Alfonso Sanchez-Beato authored
      Add statistics interface to all device instances. When active, the
      properties of this interface are refreshed whenever there is network
      activity for the device.
      
      Activation is performed by changing RefreshRateMs property. If set to
      zero, the interface is deactivated. If set to other value, the rest of
      the interface properties are refreshed whenever the related network
      metric changes, being RefreshRateMs the minimum time between property
      changes, in milliseconds.
      24b193ab
    • Thomas Haller's avatar
      platform/tests: relax condition in platform test · 85834a66
      Thomas Haller authored
      With device-statistics counters in NMPlatformLink we may get an additional
      link-changed event. Relax the assertion in the test.
      85834a66
    • Alfonso Sanchez-Beato's avatar
      platform: add network statistics · 6ed939e8
      Alfonso Sanchez-Beato authored
      Make network traffic statistics data available through the platform.
      6ed939e8
    • Alfonso Sanchez-Beato's avatar
      exported-object: allow exporting multiple ifaces · 3bc5c7db
      Alfonso Sanchez-Beato authored
      Allow exporting more than one interface per object class.
      3bc5c7db
    • Thomas Haller's avatar
      device: copy the plink instance before realize_start_setup() · f04baa63
      Thomas Haller authored
      To make sure, we don't end up with a dangling pointer due
      to an intermediate platform access which may invalidate the
      pointer.
      f04baa63
    • Lubomir Rintel's avatar
      act-request: queue failing the slave when master fails · d070d7f4
      Lubomir Rintel authored
      We might be already handling a state change:
      
      Aug 17 05:26:34 dacan.local NetworkManager[618]: (devices/nm-device.c:10982):
      _set_state_full: runtime check failed: (priv->in_state_changed == FALSE)
      
        (gdb) bt
        #0  0x00007fc218dad643 in g_logv (log_domain=0x7fc21c0db3c3 "NetworkManager", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=args@entry=0x7ffe6f0b30d0) at gmessages.c:1086
        #1  0x00007fc218dad7bf in g_log (log_domain=log_domain@entry=0x7fc21c0db3c3 "NetworkManager", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0x7fc218e1b70f "%s") at gmessages.c:1119
        #2  0x00007fc218dadb16 in g_warn_message (domain=domain@entry=0x7fc21c0db3c3 "NetworkManager", file=file@entry=0x7fc21c0d6597 "devices/nm-device.c", line=line@entry=10982, func=func@entry=0x7fc21c0dabf0 <__FUNCTION__.42233> "_set_state_full", warnexpr=warnexpr@entry=0x7fc21c0d95a0 "priv->in_state_changed == FALSE") at gmessages.c:1152
        #3  0x00007fc21bf79bd6 in _set_state_full (self=0x7fc21ccd88b0 [NMDeviceEthernet], state=NM_DEVICE_STATE_FAILED, reason=NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED, quitting=0) at devices/nm-device.c:10982
        #7  0x00007fc2190bdd9f in <emit signal notify:master on instance 0x7fc21ccd88b0 [NMDeviceEthernet]> (instance=instance@entry=0x7fc21ccd88b0, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3439
            #4  0x00007fc2190a3908 in g_closure_invoke (closure=0x7fc21cd009e0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7ffe6f0b34b0, invocation_hint=invocation_hint@entry=0x7ffe6f0b3450) at gclosure.c:801
            #5  0x00007fc2190b5a1d in signal_emit_unlocked_R (node=node@entry=0x7fc21cb66500, detail=detail@entry=588, instance=instance@entry=0x7fc21ccd88b0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffe6f0b34b0)
            at gsignal.c:3627
            #6  0x00007fc2190bdab1 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffe6f0b3640) at gsignal.c:3383
        #8  0x00007fc2190a7fd4 in g_object_dispatch_properties_changed (object=0x7fc21ccd88b0 [NMDeviceEthernet], n_pspecs=<optimized out>, pspecs=<optimized out>) at gobject.c:1061
        #9  0x00007fc2190aa619 in g_object_notify_by_pspec (pspec=<optimized out>, object=0x7fc21ccd88b0 [NMDeviceEthernet]) at gobject.c:1155
        #10 0x00007fc2190aa619 in g_object_notify_by_pspec (object=object@entry=0x7fc21ccd88b0 [NMDeviceEthernet], pspec=<optimized out>) at gobject.c:1264
        #11 0x00007fc21bf7de3f in nm_device_master_enslave_slave (prop=PROP_MASTER, obj=0x7fc21ccd88b0 [NMDeviceEthernet]) at devices/nm-device.c:103
        #12 0x00007fc21bf7de3f in nm_device_master_enslave_slave (success=1, self=0x7fc21ccd88b0 [NMDeviceEthernet]) at devices/nm-device.c:2757
        #13 0x00007fc21bf7de3f in nm_device_master_enslave_slave (self=0x7fc21cd42810 [NMDeviceBond], slave=0x7fc21ccd88b0 [NMDeviceEthernet], connection=<optimized out>) at devices/nm-device.c:1300
        #14 0x00007fc2167c8dcc in ffi_call_unix64 () at ../src/x86/unix64.S:76
        #15 0x00007fc2167c86f5 in ffi_call (cif=cif@entry=0x7ffe6f0b3a10, fn=<optimized out>, rvalue=0x7ffe6f0b3980, avalue=avalue@entry=0x7ffe6f0b3900) at ../src/x86/ffi64.c:522
        #20 0x00007fc2190be2e8 in <emit signal 0x7fc21c0ea3d5 "state-changed" on instance 0x7fc21ccd88b0 [NMDeviceEthernet]> (instance=instance@entry=0x7fc21ccd88b0, detailed_signal=detailed_signal@entry=0x7fc21c0ea3d5 "state-changed") at gsignal.c:3479
            #16 0x00007fc2190a4148 in g_cclosure_marshal_generic (closure=0x7fc21cc84de0, return_gvalue=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=0x0) at gclosure.c:1487
            #17 0x00007fc2190a3908 in g_closure_invoke (closure=0x7fc21cc84de0, return_value=return_value@entry=0x0, n_param_values=4, param_values=param_values@entry=0x7ffe6f0b3c10, invocation_hint=invocation_hint@entry=0x7ffe6f0b3bb0) at gclosure.c:801
            #18 0x00007fc2190b5a1d in signal_emit_unlocked_R (node=node@entry=0x7fc21cbeef20, detail=detail@entry=0, instance=instance@entry=0x7fc21ccd88b0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffe6f0b3c10) at gsignal.c:3627
            #19 0x00007fc2190bdab1 in g_signal_emit_valist (instance=instance@entry=0x7fc21ccd88b0, signal_id=signal_id@entry=112, detail=detail@entry=0, var_args=var_args@entry=0x7ffe6f0b3e48) at gsignal.c:3383
        #21 0x00007fc21bf79e3d in _set_state_full (self=self@entry=0x7fc21ccd88b0 [NMDeviceEthernet], state=state@entry=NM_DEVICE_STATE_IP_CONFIG, reason=reason@entry=NM_DEVICE_STATE_REASON_NONE, quitting=quitting@entry=0) at devices/nm-device.c:11123
        #22 0x00007fc21bf7a707 in nm_device_state_changed (self=self@entry=0x7fc21ccd88b0 [NMDeviceEthernet], state=state@entry=NM_DEVICE_STATE_IP_CONFIG, reason=reason@entry=NM_DEVICE_STATE_REASON_NONE) at devices/nm-device.c:11308
        #23 0x00007fc21bf7e92f in activate_stage3_ip_config_start (self=0x7fc21ccd88b0 [NMDeviceEthernet]) at devices/nm-device.c:6759
        #24 0x00007fc21bf68dac in activation_source_handle_cb (self=0x7fc21ccd88b0 [NMDeviceEthernet], family=family@entry=2) at devices/nm-device.c:3627
        #25 0x00007fc21bf68e6e in activation_source_handle_cb4 (user_data=<optimized out>) at devices/nm-device.c:3564
        #26 0x00007fc218da6d7a in g_main_context_dispatch (context=0x7fc21cb6e000) at gmain.c:3152
        #27 0x00007fc218da6d7a in g_main_context_dispatch (context=context@entry=0x7fc21cb6e000) at gmain.c:3767
        #28 0x00007fc218da70b8 in g_main_context_iterate (context=0x7fc21cb6e000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3838
        #29 0x00007fc218da738a in g_main_loop_run (loop=0x7fc21cb6c8c0) at gmain.c:4032
        #30 0x00007fc21bf4a23e in main (argc=1, argv=0x7ffe6f0b43e8) at main.c:411
        (gdb)
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1367702
      d070d7f4
    • Jiří Klimeš's avatar
      cli: show pre-filled readline input if it is not a real password (rh #1351272) · c9f63099
      Jiří Klimeš authored
      Example:
      $ nmcli -a con up test-conn
      Passwords or encryption keys are required to access the wireless network 'kkk'.
      Username (802-1x.identity): cimrman
      Password (802-1x.password):
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1351272
      c9f63099
    • Beniamino Galvani's avatar
      merge: branch 'bg/checkpoint-bgo757858-v2' · 6308c90b
      Beniamino Galvani authored
      Introduce D-Bus API to create, rollback and destroy checkpoints of
      some devices' status.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=757858
      6308c90b
    • Beniamino Galvani's avatar
      checkpoint: add python D-Bus example · 048801ad
      Beniamino Galvani authored
      048801ad
    • Beniamino Galvani's avatar
      checkpoint: add audit support · a82e5148
      Beniamino Galvani authored
      a82e5148
    • Beniamino Galvani's avatar
      a52d4654
    • Beniamino Galvani's avatar
    • Beniamino Galvani's avatar
      core: fix builds without polkit support · b9e89c91
      Beniamino Galvani authored
      Fix the following build error:
      
       nm-auth-utils.c: In function ‘nm_auth_chain_add_call’:
       nm-auth-utils.c:402:46: error: ‘DBUS_GERROR’ undeclared (first use in this function)
           call->chain->error = g_error_new_literal (DBUS_GERROR,
      
      Fixes: 1cf35cb2
      b9e89c91
  2. 15 Aug, 2016 3 commits
  3. 12 Aug, 2016 6 commits