Skip to content
  • Thomas Haller's avatar
    core,libnm: add AddConnection2() D-Bus API to block autoconnect from the start · 22c8721f
    Thomas Haller authored
    It should be possible to add a profile with autoconnect blocked form the
    start. Update2() has a %NM_SETTINGS_UPDATE2_FLAG_BLOCK_AUTOCONNECT flag to
    block autoconnect, and so we need something similar when adding a connection.
    
    As the existing AddConnection() and AddConnectionUnsaved() API is not
    extensible, add AddConnection2() that has flags and room for additional
    arguments.
    
    Then add and implement the new flag %NM_SETTINGS_ADD_CONNECTION2_FLAG_BLOCK_AUTOCONNECT
    for AddConnection2().
    
    Note that libnm's nm_client_add_connection2() API can completely replace
    the existing nm_client_add_connection_async() call. In particular, it
    will automatically prefer to call the D-Bus methods AddConnection() and
    AddConnectionUnsaved(), in order to work with server versions older than
    1.20. The purpose of this is that when upgrading the package, the
    running NetworkManager might still be older than the installed libnm.
    Anyway, so since nm_client_add_connection2_finish() also has a result
    output, the caller needs to decide whether he cares about that result.
    Hence it has an argument ignore_out_result, which allows to fallback to
    the old API. One might argue that a caller who doesn't care about the
    output results while still wanting to be backward compatible, should
    itself choose to call nm_client_add_connection_async() or
    nm_client_add_connection2(). But instead, it's more convenient if the
    new function can fully replace the old one, so that the caller does not
    need to switch which start/finish method to call.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1677068
    22c8721f