1. 23 Sep, 2014 1 commit
    • Jiří Klimeš's avatar
      tui: additional fix for 'primary' option · 37f12088
      Jiří Klimeš authored
      The entry can't be empty. Otherwise removing the value and saving connection
      would result in the primary option containing only the first character of the
      original value.
  2. 22 Sep, 2014 13 commits
  3. 19 Sep, 2014 15 commits
    • Jiří Klimeš's avatar
      cli: fix crash by getting addresses and routes · 8ee53b79
      Jiří Klimeš authored
      Broken by commit 6793a32a that changed
      return values from GSlist to GPtrArray.
    • Jiří Klimeš's avatar
      ifcfg-rh: fix typo in function name and enhance testcase · 7966b6c0
      Jiří Klimeš authored
      The testcase now includes an invalid value too.
      Added by commit  8657b422.
    • Dan Williams's avatar
      core: fix stray 'break' in switch · 24ab5688
      Dan Williams authored
      From 82222d38 "core: move carrier handling to NMDevice"
    • Dan Williams's avatar
      core: fix 'tun' device owner/group property getters · e4f21887
      Dan Williams authored
      The properties are int64, but get_property() was was using
    • Dan Winship's avatar
      libnm: simplify private D-Bus connection tracking · f6f79aa4
      Dan Winship authored
      dcbw points out that g_dbus_connection_get_unique_name() can be used
      to distinguish private from bus connections without us needing to keep
      track ourselves.
    • Dan Winship's avatar
      libnm: fix private bus async codepaths · 8f7b1e87
      Dan Winship authored
      _nm_dbus_new_connection_async() wasn't marking the connection as
      private when it was private, causing
      _nm_dbus_new_proxy_for_connection*() to pass the wrong args. Fix that.
    • Dan Winship's avatar
      tui: fix an earlier bugfix · c6f4c354
      Dan Winship authored
      Fix to f69842aa; the arguments weren't swapped, one of them was just
      completely superfluous.
    • Dan Winship's avatar
      tui: fix a double free · 2e197706
      Dan Winship authored
      The dictionary passed to the NMSecretAgent get_secrets callback will
      get sunk if it's floating, so we shouldn't be unreffing it.
    • Dan Winship's avatar
    • Dan Winship's avatar
    • Jiří Klimeš's avatar
    • Dan Winship's avatar
      libnm: fix nm_access_point_get_ssid() return value · 8f6d056b
      Dan Winship authored
      nm_access_point_get_ssid() used to return NULL if the AP didn't have a
      visible SSID. This got broken in the NM_TYPE_SSID -> G_TYPE_BYTES
      change. Fix that. (Fixes a crash in nmtui and nmcli with SSID-less
    • Lubomir Rintel's avatar
      contrib/rpm: libnm-vpn is no more · b769c059
      Lubomir Rintel authored and Dan Winship's avatar Dan Winship committed
      Removed in: [280b1e50] libnm: merge libnm-vpn into libnm
    • Lubomir Rintel's avatar
      libnm: avoid init_async NULL dereference on cancellable=0x0 · 5f54ed3a
      Lubomir Rintel authored and Dan Winship's avatar Dan Winship committed
        (gdb) run c add type bond
        Starting program: /usr/bin/nmcli c add type bond
        Got object file from memory but can't read symbols: File truncated.
        [Thread debugging using libthread_db enabled]
        Using host libthread_db library "/lib64/libthread_db.so.1".
        [New Thread 0x7ffff39b2700 (LWP 13042)]
        [New Thread 0x7fffec4bc700 (LWP 13043)]
        (process:13038): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
        Program received signal SIGTRAP, Trace/breakpoint trap.
        g_logv (log_domain=0x7ffff5cda224 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffd290) at gmessages.c:1046
        1046              g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
        (gdb) bt
        #0  0x00007ffff59b6c70 in g_logv (log_domain=0x7ffff5cda224 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffd290) at gmessages.c:1046
        #1  0x00007ffff59b6eaf in g_log (log_domain=log_domain@entry=0x7ffff5cda224 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff5a25a9d "%s: assertion '%s' failed")
            at gmessages.c:1079
        #2  0x00007ffff59b6ee9 in g_return_if_fail_warning (log_domain=log_domain@entry=0x7ffff5cda224 "GLib-GObject", pretty_function=pretty_function@entry=0x7ffff5cdd6b3 <__FUNCTION__.13314> "g_object_ref", expression=expression@entry=0x7ffff5cdc388 "G_IS_OBJECT (object)") at gmessages.c:1088
        #3  0x00007ffff5cb39aa in g_object_ref (_object=_object@entry=0x0) at gobject.c:3041
        #4  0x00007ffff7ad5418 in _nm_dbus_new_connection_async (cancellable=0x0, callback=<optimized out>, user_data=<optimized out>) at nm-dbus-helpers.c:131
        #5  0x00007ffff7ae58f1 in handle_property_changed (synchronously=0, pi=0x5555558a9610, value=0x7fffe40138a0, property_name=<optimized out>, self=0x555555831980 [NMRemoteSettings]) at nm-object.c:1115
        #6  0x00007ffff7ae58f1 in handle_property_changed (self=self@entry=0x555555831980 [NMRemoteSettings], dbus_name=<optimized out>, value=<optimized out>, synchronously=synchronously@entry=0) at nm-object.c:1186
        #7  0x00007ffff7ae59cb in process_properties_changed (self=0x555555831980 [NMRemoteSettings], properties=<optimized out>, synchronously=0) at nm-object.c:1218
        #8  0x00007ffff7ae5a7a in property_proxy_signal (proxy=<optimized out>, sender_name=<optimized out>, signal_name=<optimized out>, parameters=<optimized out>, user_data=0x555555831980) at nm-object.c:1234
        #9  0x00007ffff4d34d60 in ffi_call_unix64 () at ../src/x86/unix64.S:76
        #10 0x00007ffff4d347d1 in ffi_call (cif=cif@entry=0x7fffffffd7e0, fn=<optimized out>, rvalue=0x7fffffffd740, avalue=avalue@entry=0x7fffffffd6c0) at ../src/x86/ffi64.c:525
        #15 0x00007ffff5cca2ef in <emit signal ??? on instance 0x555555881c10 [NMDBusSettingsProxy]> (instance=instance@entry=0x555555881c10, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3365
            #11 0x00007ffff5caf6f4 in g_cclosure_marshal_generic (closure=0x5555558aa400, return_gvalue=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=0x0) at gclosure.c:1448
            #12 0x00007ffff5caeed5 in g_closure_invoke (closure=0x5555558aa400, return_value=return_value@entry=0x0, n_param_values=4, param_values=param_values@entry=0x7fffffffda10, invocation_hint=invocation_hint@entry=0x7fffffffd9b0) at gclosure.c:768
            #13 0x00007ffff5cc1202 in signal_emit_unlocked_R (node=node@entry=0x555555819270, detail=detail@entry=0, instance=instance@entry=0x555555881c10, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffda10) at gsignal.c:3553
            #14 0x00007ffff5cca0c1 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffdbd0) at gsignal.c:3309
        #16 0x00007ffff63d8bcc in on_signal_received (connection=<optimized out>, sender_name=0x0, object_path=<optimized out>, interface_name=<optimized out>, signal_name=0x7fffe40195b0 "PropertiesChanged", parameters=0x7fffe4031000, user_data=0x5555558a3f30) at gdbusproxy.c:917
        #17 0x00007ffff63c83b4 in emit_signal_instance_in_idle_cb (data=0x7fffe403a6d0) at gdbusconnection.c:3753
        #18 0x00007ffff59afb6b in g_main_context_dispatch (context=0x5555557eb530) at gmain.c:3064
        #19 0x00007ffff59afb6b in g_main_context_dispatch (context=context@entry=0x5555557eb530) at gmain.c:3663
        #20 0x00007ffff59aff08 in g_main_context_iterate (context=0x5555557eb530, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3734
        #21 0x00007ffff59b0232 in g_main_loop_run (loop=0x5555557e3440) at gmain.c:3928
        #22 0x000055555556fd57 in main (argc=<optimized out>, argv=<optimized out>) at nmcli.c:587
    • Jiří Klimeš's avatar
      libnm-core: don't return with a value in function returning void · 1b229c4d
      Jiří Klimeš authored
  4. 18 Sep, 2014 11 commits
    • Dan Winship's avatar
    • Dan Winship's avatar
      libnm: port to GDBus · 6793a32a
      Dan Winship authored
      Port libnm-core/libnm to GDBus.
      The NetworkManager daemon continues to use dbus-glib; the
      previously-added connection hash/variant conversion methods are now
      moved to NetworkManagerUtils (along with a few other utilities that
      are now only needed by the daemon code).
    • Dan Winship's avatar
      libnm-core: update tests to be fully variant-based · 16871ebc
      Dan Winship authored
      Use nmtst_variant_editor() to rewrite the libnm-core tests to work
      entirely in connection dictionaries, not connection hash tables.
    • Dan Winship's avatar
      nmtst: add NMTST_VARIANT_EDITOR() · 58f278fb
      Dan Winship authored
      Several test programs create connection hashes and then modify them in
      various ways. This becomes much more complicated with GVariants, since
      they are immutable. Add NMTST_VARIANT_EDITOR() to simplify the process
      of iterating the old variant and building a new, slightly-modified one.
    • Dan Winship's avatar
      libnm-core: change connection hash tables to variants in API · acf86f68
      Dan Winship authored
      In preparation for porting to GDBus, make nm_connection_to_dbus(),
      etc, represent connections as GVariants of type 'a{sa{sv}}' rather
      than as GHashTables-of-GHashTables-of-GValues.
      This means we're constantly converting back and forth internally, but
      this is just a stepping stone on the way to the full GDBus port, and
      all of that code will go away again later.
    • Dan Winship's avatar
      libnm: rename nm-dbus-helpers-private.h to nm-dbus-helpers.h · 47505595
      Dan Winship authored
      The .h file should have the same name as the .c file.
    • Dan Winship's avatar
      libnm: split nm-dbus-helpers utils into sync/async versions · acf4b5a5
      Dan Winship authored
      dbus-glib's functions to get a DBusGConnection or a DBusGProxy return
      right away, but gdbus's corresponding functions do some initial setup
      and communication as part of initialization, and so either block or
      run async. So split _nm_dbus_new_connection() and
      _nm_dbus_new_proxy_for_connection() into sync and async versions now,
      and update NMObject to use the correct one depending on whether it is
      working synchronously or asynchronously.
    • Dan Winship's avatar
      libnm: move most of the subclass-type-deciding code into NMObject · b3c4917b
      Dan Winship authored
      NMObject has a system that lets devices and active connections get
      created as the correct subtypes (NMDeviceFoo / NMActiveConnection vs
      NMVpnConnection). But it was much more generic than it needed to be,
      because NMDevice and NMActiveConnection both did the same thing (fetch
      a D-Bus property and then look at its value). So move the
      property-fetching part into NMObject, and only use the callback for
      converting the property value to a GType.
    • Dan Winship's avatar
      libnm: let NMObject create all D-Bus proxies · b728d1fb
      Dan Winship authored
      Add _nm_object_class_add_interface(), for declaring that a class
      implements a particular interface, and then have NMObject create the
      corresponding proxies itself. (The subclass can get a copy with
      _nm_object_get_proxy() if it needs it for something).
      (In GDBus, creating a proxy is a heavier operation than in dbus-glib,
      so we'll need to create the proxies asynchronously. Moving the
      creation to NMObject makes that easier since we can do it as part
      of the existing init/init_async.)
    • Dan Winship's avatar
      libnm: don't hardcode things like "org.freedesktop.DBus.Properties" · aa18b88a
      Dan Winship authored
      Use the #defines provided by libdbus instead.
    • Dan Winship's avatar
      libnm: merge libnm-vpn into libnm · 280b1e50
      Dan Winship authored
      There's not much point in keeping them separate: all existing
      libnm-glib-vpn users also link against libnm-glib, and the amount of
      extra code added to libnm by merging in libnm-vpn is negligible.
      Additionally, nm-vpn-plugin will later need access to some
      libnm-internal APIs.
      So, merge them together.