build: renable -Wstrict-prototypes compiler warning

The warning -Wstrict-prototypes was disabled by commit
db9b1df0e47996ff8aaea468a11e1e97f64ee126 .

Enable it again, but avoid warnings for WiMax SDK by explicitly disabling the
compiler warning where needed.

Apparently clang does not produce a warning for -Wstrict-prototypes,
hence we don't need a clang specific #pragma.

Signed-off-by: Thomas Haller <thaller@redhat.com>
rdisc: properly handle RDNSS/DNSSL forced expiration

If the router sends an RA with an RDNSS or DNSSL lifetime of "0", that
means to immediately stop using the corresponding server/domain name.
NMLNDPRDisc knew this, but messed up its handling of it, and so if
this happened, it might end up sending out an RS to get new data every
0 seconds...

(Noticed while investigating bgo 735325, though it turned out to be
irrelevant there.)
platform: deal with default route being passed to route_sync() (bgo 735325)

NMIP4Configs and NMIP6Configs are never supposed to contain a default
route, and thus nm_platform_ip6_route_sync() should never have to deal
with one. Unfortunately, if it *does* get passed a default route, it
will add it even if it was already there. This will result in an
RTM_NEWROUTE notification, which will cause NMPlatform to emit
ip6-route-changed, which will result in NMDevice doing some work and
then calling nm_ip6_config_commit(), which will result in NMIP6Config
passing the same list of routes to nm_platform_ip6_route_sync() again,
including the default route, which will cause NMPlatform to add the
route again...

(Something eventually causes this cycle to get broken, but it starts
up again the next time NM receives an RA.)

Fix this by having the route_sync() functions never add/modify the
default route (They were already not deleting it.)
utils: fix printf format for pid_t in nm_utils_get_start_time_for_pid()

Signed-off-by: Thomas Haller <thaller@redhat.com>
man: add description for ibft settings plugin to NetworkManager.conf

Signed-off-by: Thomas Haller <thaller@redhat.com>
build: add configure option for ibft plugin

Signed-off-by: Thomas Haller <thaller@redhat.com>
config: set a compile time default for the main.plugins configuration option

In case of a missing NetworkManager.conf (or a missing configuration option
main.plugins), allow to determine the fallback at compile time

https://bugzilla.gnome.org/show_bug.cgi?id=738611

Signed-off-by: Thomas Haller <thaller@redhat.com>
settings: accept missing settings plugins

Signed-off-by: Thomas Haller <thaller@redhat.com>
settings: check file permissions when loading settings plugins

Signed-off-by: Thomas Haller <thaller@redhat.com>
settings: merge branch 'th/bgo738611_load_setting_plugins' (bgo #738611)

buil://bugzilla.gnome.org/show_bug.cgi?id=738611

Signed-off-by: Thomas Haller <thaller@redhat.com>
libnm-core, libnm: introspection annotation fixes

A parenthesized comment in nm-dbus-interface.h was being misparsed as
an annotation.

The annotations on NMDhcp4Config:options and NMDhcp6Config:options
were incorrect.
trivial: fix a typo in comments
cli: check IP configuration when setting connection.master in editor

If IPv4 and/or IPv6 are present on setting connection.master, offer their
removal.
cli: add 'verify fix' command for nmcli connection editor

Some connection verification errors are normalizable by NetworkManager. So we
can allow users to normalize the connection using one command.
merge: allow connection normalization in nmcli editor (rh #1157164)

- introduce 'verify fix' command in the editor for normalizing the connection
- check IP settings when connection.master property is changed and offer their
  removal (slaves are not allowed to have IP configuration)
cli: add '--show-secrets' option for 'nmcli connection show'

It can be used to display connection secrets (passwords).  When used, it will
get secrets for the connection profile and merge it into the connection's
settings before displaying it.

Example:
nmcli con show -s hotel-wifi
cli/bash-completion: update bash completion for '--show-secrets' option
cli: display '<hidden>' string for secret properties

unless the user explicitly say to show them.
cli: allow showing secrets in the editor
merge: show connection secrets in nmcli when required (bgo #737415)

Secrets will be displayed when '--show-secrets' is used for 'nmcli con show',
or nmcli> nmcli show-secrets yes in the editor.