- Main command loop was moved to run in a separate thread (using GThread).
Otherwise glib main loop would be blocked in processing D-Bus and other
events.
- Handle creating new vs. updating already saved connection.
'change' command puts current value on edit line, so that user can change
it and confirm with <Enter>.
Notes:
* it works for libreadline
* libedit has to be checked
* doesn't work without any edit-line library - how to do that??
property_edit_submenu() is the main function. It is entered from main menu by
'goto'
command.
Commands of this menu:
set - set new value to the property
add - add a value to the property (for non-container properties it is
the same as set)
change - allow editing the current property value
remove - remove the property value(s)
describe - show the property description and/or usage
print - show the property value
back - return to the setting level (main menu)
help - show help (command descriptions)
quit - quit nmcli
So the syntax is now:
nmcli con edit [id | uuid | path ] <ID>
- for editing an existing connection
nmcli con edit [type <new connection type>] [con-name <new connection name>]
- for adding a new connection
Supported libraries are:
GNU Readline (libreadline) http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
NetBSD Editline (libedit) http://www.thrysoee.dk/editline/
We load these symbols:
readline() - main function allowing getting user input and aditing that
add_history() - stores strings to history
rl_insert_text() - insert text into the line at the current cursor position
rl_startup_hook - hook to call just before readline prints the first prompt
nmcli connection edit [type <type>] [con-name <name>]
Examples:
nmcli c e
nmcli c e type ethernet
nmcli c e type wifi con-name "My home Wi-Fi"
nmcli c e type bond
...
Abstract class, fake implementation and a manual testing tool for
NetworkManager's internal IPv6 router discovery module. When a real
implementation is ready, it will replace nm-ip6-manager and will be used
by nm-device.
Callers of these functions now only care whether two IP configs are
different and not what specific property changed, so we can simplify
this code down to a simple comparison for equality, based on the hashing
that's already done for the DNS manager.