summaryrefslogtreecommitdiff
path: root/clients/cli/common.h
Commit message (Collapse)AuthorAgeFilesLines
* cli: add nmc_complete_strv() which takes a string array for completion that ↵Thomas Haller2019-03-071-1/+3
| | | | | | | | | may contain NULL This will allow for a convenient calling pattern when some elements should be printed optionally. (cherry picked from commit 62b939de4e2288d0a9d305706db4cf47c34122d5)
* cli: drop gettext() wrappers for no_l10n to-string functionsThomas Haller2018-12-111-1/+0
| | | | | | | | | | In most cases, we don't want the translated string (only marked for translation, and then programatically the caller deciedes whether to translate or not). The few places that always call gettext() can do it explicitly. Now, that our functions are all "no_l10n" by default, rename them.
* cli: don't use global nm_cli in nmc_readline_*()Thomas Haller2018-10-101-2/+7
| | | | | | | | | | | | | | | Globals are bad. Don't let nmc_readline_helper() access nm_cli. Instead, pass nmc_config along. nmc_config albeit being a complex struct, is much more begning: - the configuration nmc_config is initialized early on and afterwards immutable. - it only contains simple fields, which affect the behavior. - it's not a global. While passing around the complex configuration struct, it is clear that all callpaths don't access additional global information.
* cli: print per-device & per-AF connectivity statusLubomir Rintel2018-09-241-0/+3
|
* cli: merge IPv4 and IPv6 versions of ip/dhcp config printThomas Haller2018-07-091-3/+10
|
* cli: drop duplicate IPv6 property metadataThomas Haller2018-07-091-1/+1
|
* cli: rework printing of dhcp optionsThomas Haller2018-07-091-1/+1
|
* cli: rework connection handling for multiple resultsThomas Haller2018-05-141-2/+2
| | | | | | | | | | | | | | Functions like nmc_find_connection() and nmc_find_active_connection() can easily find multiple matching results. For example, the "connection.id" in NetworkManager is not enforced to be unique, so if the user adds multiple connections with the same name, they should be all selected. The previous API had a @pos argument, that allowed to iterate over the results. Change that, to return all matches in a GPtrArray. Also, extend connection-show and other places, to anticipate that a connection might be active multiple times in any moment.
* cli: move find_active_connection() to common.cThomas Haller2018-05-141-0/+6
| | | | | | Beside nmc_find_connection(), which is very similar. Also, drop unused argument @cons.
* cli: merge IPv4 and IPv6 variants of print_dhcp_config()Thomas Haller2018-04-231-4/+2
|
* build: move nm-client-utils.c to libnmc-base.aBeniamino Galvani2017-10-161-4/+0
| | | | | | | | | In a later commit we'll add a new generic client function used by nmcli and nmtui. nm-client-utils.c seems the right place for it, so move the file to the base library that is used by both clients. While at it, also put in that file some functions that will be needed by nmtui.
* cli: move completion for connection type to meta dataThomas Haller2017-04-121-0/+1
|
* cli: use nmc_print() to output device's IP4 infoThomas Haller2017-04-121-2/+2
| | | | | The IP4 info adds a new type: to expose strv arguments for addresses, etc.
* cli: split tracking of meta data out of NmcOutputFieldThomas Haller2017-04-051-4/+4
| | | | | | | | | | | | | | | | | | | | | | When generating output data, nmcli iterates over a list of property-descriptors (nmc_fields_ip4_config), creates an intermediate array (output_data) and finally prints it. However, previously both the meta data (nmc_fields_ip4_config) and the intermediate format use the same type NmcOutputField. This means, certain fields are relevant to describe a property, and other fields are output/formatting fields. Split this up. Now, the meta data is tracked in form of an NMMetaAbstractInfo lists. This separates the information about properties from intermediate steps during creation of the output. Note that currently functions like print_ip4_config() still have all the knowledge about how to generate the output. That is wrong, instead, the meta data (NMMetaAbstractInfo) should describe how to create the output and then all those functions could be replaced. This means, later we want to add more knowledge to the NMMetaAbstractInfo, so it is important to keep them separate from NmcOutputField.
* cli: don't track output data in global NmCli structureThomas Haller2017-03-301-4/+4
| | | | | | | | | | | | | We should not violate the global data to track the output data while it is constructed and printed. Most of the time, we actually clear the output data anyway -- either before constructing it, or after printing it. In some cases we didn't, but I think that is a bug. It's really hard to keep track of this. The output data should belong to a certain scope and get destroyed afterwards. Passing it around is very confusing. Don't do that.
* cli: move utils function from common.h to nm-meta-setting-desc.cThomas Haller2017-03-301-12/+0
| | | | | | These functions are only used by nm-meta-setting-desc.c. Make them internal. Unfortunately, they are part of "common.h" which cannot be used without the rest of nmcli. Still todo.
* cli: add values_func() to NmcPropertyInfo and use for "connection" settingThomas Haller2017-03-301-1/+1
|
* cli: support route optionsBeniamino Galvani2017-03-061-1/+1
|
* cli: make it possible to call sub-commands with client obtained asynchronouslyLubomir Rintel2016-11-111-1/+3
|
* proxy: change semantics of pac-scriptAtul Anand2016-10-041-0/+1
| | | | | | | | libnm-core: pac-script property in NMSettingProxy now represents the script itself not the location. It ensures that the connection is self contained. nmcli: Supports loading of PAC Script via file path or written explicitly.
* cli: (trivial) move gen_func_ifnames() from devices.c to common.cJiří Klimeš2016-09-191-0/+1
| | | | and rename it to nmc_rl_gen_func()
* cli: return sane error message for D-Bus policy permission errorsBeniamino Galvani2016-08-201-0/+2
| | | | | | | | | | | | | | | | | | | | | The error returned to users when a load_connection(s)/set_logging call fails due to D-Bus policy denial is a bit obscure: $ nmcli general logging level debug Error: failed to set logging: Rejected send message, 4 matched rules; type="method_call", sender=":1.233" (uid=1001 pid=27225 comm="nmcli general logging level debug ") interface="org.freedesktop.NetworkManager" member="SetLogging" error name="(unset)" requested_reply="0" destination=":1.207" (uid=0 pid=25793 comm="/usr/sbin/NetworkManager --no-daemon ") Convert it to a more comprehensible: $ nmcli general logging level debug Error: failed to set logging: access denied https://bugzilla.redhat.com/show_bug.cgi?id=1362542 (cherry picked from commit 805925f9efbc910975104bebe1050f0c663b61f7)
* cli: add -f argument completionlr/completion-2Lubomir Rintel2016-08-011-0/+5
|
* cli/connections: do connection completion in get_connection()Lubomir Rintel2016-08-011-1/+2
| | | | Start completing by the id if the filter type is not specified
* cli: add boolean value completion helperLubomir Rintel2016-06-291-0/+2
|
* cli: add arbitrary string list completion helperLubomir Rintel2016-06-291-0/+2
|
* cli: split out do_cmd()Lubomir Rintel2016-06-291-0/+8
|
* cli: do not echo passwords on terminal when asking for themJiří Klimeš2015-12-071-0/+1
| | | | adds nmc_readline_echo() function that can disable displaying characters.
* cli: add command for displaying LLDP neighborsBeniamino Galvani2015-11-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | The list of LLDP neighbors is available through the D-Bus interface and libnm already provides functions to retrieve it; make the list available through nmcli as well. Sample output: $ nmcli device lldp NEIGHBOR[0].DEVICE: eth0 NEIGHBOR[0].CHASSIS-ID: 00:13:21:58:CA:42 NEIGHBOR[0].PORT-ID: 1 NEIGHBOR[0].PORT-DESCRIPTION: 1 NEIGHBOR[0].SYSTEM-NAME: ProCurve Switch 2600-8-PWR NEIGHBOR[0].SYSTEM-DESCRIPTION: ProCurve J8762A Switch 2600-8-PWR, revision H.08.89 NEIGHBOR[0].SYSTEM-CAPABILITIES: 20 (mac-bridge,router) NEIGHBOR[1].DEVICE: eth2 NEIGHBOR[1].CHASSIS-ID: 00:01:30:F8:AD:A2 NEIGHBOR[1].PORT-ID: 1/1 NEIGHBOR[1].PORT-DESCRIPTION: Summit300-48-Port 1001 NEIGHBOR[1].SYSTEM-NAME: Summit300-48 NEIGHBOR[1].SYSTEM-DESCRIPTION: Summit300-48 - Version 7.4e.1 (Build 5) NEIGHBOR[1].SYSTEM-CAPABILITIES: 20 (mac-bridge,router) https://bugzilla.gnome.org/show_bug.cgi?id=757307
* cli: move unique_connection_name() to common.c as nmc_unique_connection_name()Jiří Klimeš2015-11-091-0/+3
|
* cli: add 'metered' property to deviceBeniamino Galvani2015-06-091-0/+1
|
* cli: add support for secret agent to 'nmcli dev connect' toojk/nmcli-dev-connect-secretsJiří Klimeš2014-11-201-1/+13
| | | | And move secrets getting code to common.c (without changes).
* libnm: create NMDhcpConfig as parent of NMDhcp4Config and NMDhcp6ConfigDan Winship2014-11-071-2/+2
| | | | | As with NMIP4Config and NMIP6Config, merge the two DHCP config classes into one in the public API.
* libnm: create NMIPConfig as parent of NMIP4Config and NMIP6ConfigDan Winship2014-11-071-2/+2
| | | | | | | Create NMIPConfig as the parent of NMIP4Config and NMIP6Config, and remove the two subclasses from the public API; while it's convenient to still have both internally, they are now identical to the outside world.
* libnm-core: add NMSettingIPConfig:gateway, drop NMIPAddress:gatewayDan Winship2014-11-071-1/+1
| | | | | | | | | | | | | | The gateway is a global property of the IPv4/IPv6 configuration, not an attribute of any particular address. So represent it as such in the API; remove the gateway from NMIPAddress, and add it to NMSettingIPConfig. Behind the scenes, the gateway is still serialized along with the first address in NMSettingIPConfig:addresses, and is deserialized from that if the settings dictionary doesn't contain a 'gateway' key. Adjust nmcli's interactive mode to prompt for IP addresses and gateway separately. (Patch partly from Jirka Klimeš.)
* libnm-core, all: merge IPv4 and IPv6 address/route typesDan Winship2014-11-071-5/+2
| | | | | | Merge NMIP4Address and NMIP6Address into NMIPAddress, and NMIP4Route and NMIP6Route into NMIPRoute. The new types represent IP addresses as strings, rather than in binary, and so are address-family agnostic.
* libnm: change GSList to GPtrArray in libnm methodsDan Winship2014-10-281-2/+2
| | | | | | | libnm mostly used GPtrArrays in its APIs, except that arrays of connections were usually GSLists. Fix this and make them GPtrArrays too (and rename nm_client_list_connections() to nm_client_get_connections() to match everything else).
* libnm: add NetworkManager.h, disallow including individual headersDan Winship2014-08-011-8/+0
| | | | | | | | | | Add NetworkManager.h, which includes all of the other NM header, and require all external users of libnm to use that rather than the individual headers. (An exception is made for nm-dbus-interface.h, nm-vpn-dbus-interface.h, and nm-version.h, which can be included separately.)
* libnm, core, cli, tui: fix the capitalization of various typesDan Winship2014-08-011-2/+2
| | | | | | | | | | | | GLib/Gtk have mostly settled on the convention that two-letter acronyms in type names remain all-caps (eg, "IO"), but longer acronyms become initial-caps-only (eg, "Tcp"). NM was inconsistent, with most long acronyms using initial caps only (Adsl, Cdma, Dcb, Gsm, Olpc, Vlan), but others using all caps (DHCP, PPP, PPPOE, VPN). Fix libnm and src/ to use initial-caps only for all three-or-more-letter-long acronyms (and update nmcli and nmtui for the libnm changes).
* clients: reorganize source tree, put all the installed clients togetherDan Winship2014-07-301-0/+68
Create a new clients/ subdirectory at the top level, and move cli/ and tui/ into it, as well as nm-online.c (which was previously in test/, which made no sense). cli/ was split into two subdirectories, src/ and completion/. While this does simplify things (given that the completion file and the binary both need to be named "nmcli"), it bloats the source tree, and we can work around it by just renaming the completion file at install time. Then we can combine the two directories into one and just have it all under clients/cli/.