Commit graph

16023 commits

Author SHA1 Message Date
Thomas Haller 6b904a51ee shared: re-define _G_BOOLEAN_EXPR() to allow nesting g_assert()
g_assert() uses G_LIKELY(), which in turn uses _G_BOOLEAN_EXPR().
As glib's version of _G_BOOLEAN_EXPR() uses a local variable
_g_boolean_var_, we cannot nest a G_LIKELY() inside a G_LIKELY(),
or inside a g_assert(), or a g_assert() inside a g_assert().

Workaround that, by redefining the macro.

I already encountered this problem before, when having a nm_assert()
inside a ({...}) block, inside a g_assert(). Then I just avoided that
combination, but this situation is quite easy to encounter.
2016-10-11 13:14:43 +02:00
Thomas Haller 97d3b07753 ifcfg-rh/build: fix build error due to line-break in Makefile.am
Fixes: dd4ce10c92
2016-10-11 12:12:25 +02:00
Thomas Haller 6ee7f429aa device: merge branch 'th/device-factory-bgo772579'
https://bugzilla.gnome.org/show_bug.cgi?id=772579
2016-10-11 12:00:05 +02:00
Thomas Haller 2c26e3e7f9 device: make registration of internal device-factories more explicit
Internal device types are a static thing. Let's not do a
constructor function to register the device factory.

This gets rid of all attribute((constructor)) functions inside
NetworkManager core. That is desired, because we don't want to
run code before main(). For example, at that point logging is
not yet initialized, but with code that runs before main() it
is hard to ensure that we don't log anything yet.
2016-10-11 11:57:43 +02:00
Thomas Haller 92b7cb2161 device: rename internal device factories
Instead of NMBondFactory, call it NMBondDeviceFactory.
2016-10-11 11:46:30 +02:00
Thomas Haller 18660604aa device: make NMDeviceFactory a class instead of an interface
An interface would make sense to allow the actual device-factory to inherit
from another type.

However, glib interfaces make code much harder to follow and less
efficient. The device factory shall be a very simple type with meta data
about supported device types and the ability to create device instances.
There is no need to make this an interface implementation, instead just
let the factories inherit from NM_TYPE_DEVICE_FACTORY directly.
2016-10-11 11:45:14 +02:00
Thomas Haller 05e6d155ba device: minor cleanup of nm-device-factory.c 2016-10-11 11:43:16 +02:00
Thomas Haller 85fe39e549 settings: merge branch 'th/settings-plugins-cleanup-bgo772561'
https://bugzilla.gnome.org/show_bug.cgi?id=772561
2016-10-11 11:37:53 +02:00
Thomas Haller 051bcd9f1c ifcfg-rh: hide shvarFile struct 2016-10-11 11:37:46 +02:00
Thomas Haller 29f7688da5 ifcfg-rh: avoid copying and unescaping current line when unsetting value 2016-10-11 11:37:46 +02:00
Thomas Haller b00ee52ab3 ifcfg-rh/trivial: move code in shvar.c 2016-10-11 11:37:46 +02:00
Thomas Haller 96846352de ifcfg-rh: minor cleanups in writer 2016-10-11 11:37:46 +02:00
Thomas Haller 0ed009f236 ifcfg-rh: use svUnsetValue()
sed 's/^\(\t\+\)svSetValue (\([a-z]\+\), \("[^"]*"\|[*a-z_0-9A-Z]\+\(\(->\|.\)[a-z0-9A-Z_]\+\)\), NULL, \(FALSE\|TRUE\));$/\1svUnsetValue (\2, \3);/g' src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c -i
2016-10-11 11:37:46 +02:00
Thomas Haller 491b6027ba ifcfg-rh: add svUnsetValue() 2016-10-11 11:37:46 +02:00
Thomas Haller b3b0cb0b17 ifupdown: rename files to "nms-ifupdown-*" 2016-10-11 11:37:46 +02:00
Thomas Haller 1eac4f3e60 ifnet: rename files to "nms-ifnet-*" 2016-10-11 11:37:46 +02:00
Thomas Haller dd4ce10c92 settings/build: build and use libnms-*-core.la library
Don't have the test recompile parts of the settings plugin.
Instead, build one core library that is used both by the test
and the settings plugin.

Advantage: might save some compilation time, but more importantly: the
test use the same object code then NetworkManager itself, avoiding
different behavior due to compilation flags.
2016-10-11 11:37:46 +02:00
Thomas Haller eab8b06d8b ifcfg-rh/tests: merge test-ifcfg-rh-utils into test-ifcfg-rh
We don't need need separate unit tests for basic tests that can
just run in the same test-run. If you really need to run only
a particular set of tests, try
  ./src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh -p /settings/plugins/ifcfg-rh/utils

Results in less compilation (time), and less binaries to test during
`make check`.
2016-10-11 11:37:46 +02:00
Thomas Haller 254f892c9c ifcfg-rh: rename files 2016-10-11 11:37:46 +02:00
Thomas Haller d18e71f35a ibft/build: cleanup Makefile.am to build one core library from ibft plugin
Instead of having the tests re-compile "nms-ibft-reader.c".
2016-10-11 11:37:46 +02:00
Thomas Haller 68f33a846e ibft: rename function names for ibft plugin 2016-10-11 11:37:46 +02:00
Thomas Haller 912526f543 ibft: rename files to "nms-ibft-*" 2016-10-11 11:37:46 +02:00
Thomas Haller 33d05f5295 keyfile/build: set LDFLAGS for buiding keyfile tests 2016-10-11 11:37:46 +02:00
Thomas Haller 9ff1fa4ae1 shared: add NM_DECIMAL_STR_MAX() macro 2016-10-11 11:37:46 +02:00
Thomas Haller c5f4e36fd9 shared: assert against buffer length in nm_sprintf_buf() 2016-10-11 11:37:46 +02:00
Thomas Haller ed93c168cf logging,config: merge branch 'th/logging-alloc-bgo772516'
https://bugzilla.gnome.org/show_bug.cgi?id=772516
2016-10-11 11:29:58 +02:00
Thomas Haller 78d34d7c2e config: fix printing default values for missing sections
Previously, the default values were only printed if the corresponding
section was already present. Fix that.

Also, we call nm_config_data_log() also to dump the configuration
into the logfile. In that case (!stream), exclude the default values.
2016-10-11 11:29:52 +02:00
Thomas Haller 8bca7704c9 config: print default value for logging.audit 2016-10-11 11:29:52 +02:00
Thomas Haller 64e02a0ac7 logging: protect VPN_PLUGIN logging domain
VPN_PLUGIN is special. With
  # nmcli general logging level TRACE domains ALL
the logging verbosity of VPN_PLUGIN domain should not be set higher then
info. The user has to explicitly set it via:
  # nmcli general logging level TRACE domains ALL,VPN_PLUGIN:TRACE

This was not the case for
  # nmcli general logging level TRACE

Fix that.
2016-10-11 11:29:52 +02:00
Thomas Haller 64951f07fb logging: remove LOGD_HW alias for LOGD_PLATFORM
Since commit 1495853e01, LOGD_HW is renamed to
LOGD_PLATFORM. Remove the internal usage of the deprecated name.
2016-10-11 11:29:52 +02:00
Thomas Haller f43b21b71d logging: avoid some heap allocations constructing journal logging data 2016-10-11 11:29:52 +02:00
Thomas Haller 7f478f86ca logging: avoid copy of logging message fo syslog and glib logging backend
As both syslog() and g_log() accept a format string, we should not
create fullmsg ahead. This saves an additional clone of the message.
2016-10-11 11:29:52 +02:00
Lubomir Rintel 1c0e9ae7d6 logging: fix a warning when built without journald
nm-logging.c:213:1: error: ‘syslog_identifier_full’ defined but not used [-Werror=unused-function]
 syslog_identifier_full (const struct Global *gl)
 ^

Fixes: fd12aa1b20
2016-10-11 10:42:22 +02:00
Lubomir Rintel 5d155987dc dispatcher: add the proxy parameters
Fixes: 86d4573baa
2016-10-11 10:36:15 +02:00
Lubomir Rintel bcb685c4cb config: allow fallback to fake permanent address for default wired connections
The default wired connection is already generated allowing the use of a fake
address, but for the state file and the device matching specs only non-fake
addresses are used. Let's allow fake addresses consistently, so that default
wired connections work properly in containers (where the veth address is
considered fake) as well.

Also, it would really be a better idea to use ifnames everywhere instead, but
that would change the format of the state file.
2016-10-11 10:36:15 +02:00
Lubomir Rintel afe123c3a1 ethernet: don't assert there's the udev device for an ethernet device
We could be running in a container.
2016-10-11 10:36:15 +02:00
Lubomir Rintel 15a26d6192 platform/tests: skip root tests when we can't mount /sys/devices 2016-10-11 10:36:15 +02:00
Lubomir Rintel 790e23df67 build: fix required packages list 2016-10-10 18:51:23 +02:00
Dan Williams b39869750c wifi: clean up clearing a pending scan
All callers of request_wireless_scan() cleared the periodic scan
source immediately before calling the function, so just move that
into request_wireless_scan().  The only one that doesn't clear
it is request_wireless_scan_periodic() but that sets the source
id to 0 already, so the clear has no effect.

https://mail.gnome.org/archives/networkmanager-list/2016-October/msg00012.html
2016-10-08 10:23:22 +02:00
Thomas Haller 8b1d569e91 gitignore: ignore test-wifi-ap-utils
Although the test "test-wifi-ap-utils" got already renamed to "test-general",
keep ignoring the old binary when switching between branches.
2016-10-08 10:19:10 +02:00
Dan Williams 6126c32e6b wwan/ppp: send explicit port speed to pppd when port speed is zero (rh #1281731)
Some TTY drivers or devices appear to ignore port speed and always
report zero.  Technically this means the port is hung up and control
lines should be disconnected, but with USB devices many of the serial
port attributes are meaningless and ignored by some devices.

pppd requires the port's speed to be greater than zero, and will
exit immediately when that is not the case, even though these
modems will work fine.  Passing an explicit speed to pppd in this
case works around the issue, as pppd attempts to set that speed
on the port and doesn't actually care if that operation fails.

https://bugzilla.redhat.com/show_bug.cgi?id=1281731
2016-10-07 14:54:27 -05:00
Thomas Haller 3ceaef90fe core: remove unnecessary includes to netlink/route library
We no longer use libnl-route-3 library in NetworkManager. Remove the
unnecessary includes.
2016-10-07 21:37:17 +02:00
Thomas Haller 1213a47faf po: fix POTFILES.in after renaming "nm-wifi-ap-utils.c"
Fixes: 44b2044faa
2016-10-06 21:01:53 +02:00
Thomas Haller 1232b09536 keyfile: merge branch 'th/keyfile-rename-bgo772463'
https://bugzilla.gnome.org/show_bug.cgi?id=772463
2016-10-06 20:41:38 +02:00
Thomas Haller 1bea5d5048 keyfile: add logging macros to keyfile plugin 2016-10-06 20:41:20 +02:00
Thomas Haller 34f65e6ef8 keyfile: fix calling parent implementation in NMSKeyfilePlugin:constructed() 2016-10-06 20:41:20 +02:00
Thomas Haller 4d194c3833 keyfile/build: don't build keyfile settings plugin as library
We directly include keyfile sources in NetworkManager by compiling
them into "libNetworkManager.la".

Drop unused libraries from the Makefile.
2016-10-06 20:41:20 +02:00
Thomas Haller 8b1411712a keyfile: refactor GObject type creation 2016-10-06 20:41:20 +02:00
Thomas Haller 5d80a8a78b keyfile: rename public keyfile functions and names 2016-10-06 20:41:20 +02:00
Thomas Haller 93c8381965 keyfile: rename files
Setting plugins should have their own name prefix (nms) and
keyfile should have as prefix "nms-kf". As a first step, rename
the files.
2016-10-06 20:41:20 +02:00