summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fixup! wimax: drop WiMAX supportdanw/no-wimax-bgo747846Dan Winship2015-04-162-13/+13
| | | | change handling of WIMAX log domain
* fixup! wimax: drop WiMAX supportDan Winship2015-04-162-0/+3
| | | | | bring back NM_LINK_TYPE_WIMAX, so that WiMAX devices will show up as generic devices with :type-description "wimax" rather than "unknown".
* wimax: drop WiMAX supportDan Winship2015-04-1639-4295/+160
| | | | | | | | | | | | | | | | | | | | | | | Even Fedora is no longer shipping the WiMAX SDK, so it's likely we'll eventually accidentally break some of the code in src/devices/wimax/ (if we haven't already). Discussion on the list showed a consensus for dropping support for WiMAX. So, remove the SDK checks from configure.ac, remove the WiMAX device plugin and associated platform/manager support, and deprecate all the APIs. For compatibility reasons, it is still possible to create and save WiMAX connections, to toggle the software WiMAX rfkill state, and to change the "WIMAX" log level, although none of these have any effect, since no NMDeviceWimax will ever be created. nmcli was only compiling in support for most WiMAX operations when NM as a whole was built with WiMAX support, so that code has been removed now as well. (It is still possible to use nmcli to create and edit WiMAX connections, but those connections will never be activatable.) https://bugzilla.gnome.org/show_bug.cgi?id=747846
* platform/trivial: move ethtool codeThomas Haller2015-04-141-79/+81
|
* platform/trivial: move udev_detect_link_type_from_device()Thomas Haller2015-04-141-36/+35
|
* platform: split link_type_from_udev()Thomas Haller2015-04-141-9/+10
| | | | | Also change link_extract_type() to accept NULL as @platform argument.
* platform/trivial: move udev code closer to beginning of nm-linux-platform.cThomas Haller2015-04-141-42/+46
|
* platform/trivial: remove unused argument from udev_get_driver()Thomas Haller2015-04-141-2/+2
|
* cli: add PHYS_PORT_ID property to devicesJiří Klimeš2015-04-141-7/+10
| | | | | The physical-port-id property was added to libnm (libnm-glib) in commit 47cc8b25f2efe015defde7e76e49e67086603bb3.
* wifi: fix memleak in nm_ap_update_from_properties()Beniamino Galvani2015-04-131-1/+2
| | | | Fixes: 59c8192b22778ad4e025db7e60828ac8ccbcb070
* api: add missing device state reason for NewActivationDan Williams2015-04-131-0/+5
| | | | Fixes: 1ad193a01759f1dd8cbb16317b9b3490fa95193a
* device: merge branch 'lr/veth-no-external-up'Lubomir Rintel2015-04-133-6/+27
|\ | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=747465
| * device: turn off "unmanaged unless IFF_UP externally" for vethlr/veth-no-external-upLubomir Rintel2015-04-131-0/+12
| | | | | | | | | | | | | | | | We currently don't manage a veth inside a container despite we should because it's an externally configured software interface and thus waits for IFF_UP. Given veths are prevented from being managed outside of a container by an udev rule anyway it's safe to lift the external IFF_UP requirement for them.
| * device: move the decision whether to wait for IFF_UP a virtual functionLubomir Rintel2015-04-132-6/+15
|/ | | | We'd like to override it for veths.
* wifi: use the supplicant's CurrentBSS as the current AP (bgo #747424)Dan Williams2015-04-105-548/+368
|\ | | | | | | | | Instead of trying to do a bunch of fragile frequency/SSID/security matching, just use what the supplicant thinks the current AP is.
| * wifi: fall back to band matching when frequency matching failsdcbw/supplicant-current-ap-bgo747424Dan Williams2015-04-101-13/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some dual-band access points use the same BSSID in both the 5GHz and 2.4GHz bands, so obviously frequency must be taken into account when matching. But no AP should ever use the same SSID/BSSID pair concurrently in the same band on different frequencies. Some APs also dynamically channel hop when they detect interference, or when they restart, they do so on a different channel after finding the channel with the lowest interference. To assure that we don't end up with stale scan list entries when the AP has switched to another channel in the same band, fall back to band matching when merging new scan results.
| * wifi: remove unused AP 'broadcast' propertyDan Williams2015-04-103-32/+1
| | | | | | | | Nothing ever read the value.
| * wifi: always strict-match access points when mergingDan Williams2015-04-103-85/+15
| | | | | | | | | | | | | | | | | | The only reason to allow lazy matching was to update a fake current AP when its real scan result comes in. Now that NM tracks the current AP based on the the supplicant's current BSS, a fake current AP will be replaced when the real scan result arrives. So it's pointless to update the fake one when it'll just be removed soon.
| * wifi: trivial whitespace fixupDan Williams2015-04-101-1/+1
| |
| * wifi: update AP properties from supplicant signalsDan Williams2015-04-103-17/+37
| |
| * wifi: use supplicant's CurrentBSS as the current APDan Williams2015-04-101-251/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of keeping track of it internally, and attempting to fuzzy-match access points and stuff, just use the supplicant's information. If the supplicant doesn't know what AP it's talking to, then we've got more problems than just NM code. The theory here is that when starting activation, we'll use the given access point from the scan list that the supplicant already knows about. If there isn't one yet (adhoc, hidden, or AP mode) then we'll create a fake AP and add it to the scan list. Once the supplicant has associated to the AP, it'll notify about the current BSS which we then look up in the scan list, and set priv->current AP to that. If for some reason the given AP isn't yet in our scan list (which often happens for adhoc/AP) then we'll just live with the fake AP until we get the scan result, which should happen very soon. We don't need to do any fuzzy-matching to find the current AP because it will either always be one the supplicant knows about, or a fake one that the supplicant doesn't know about that will be replaced soon anyway.
| * wifi: use a hash table to track access pointsDan Williams2015-04-103-156/+154
| |
| * supplicant: ignore NotConnected errors when disconnectingDan Williams2015-04-101-2/+4
| |
| * supplicant: track and expose wpa_supplicant's CurrentBSS propertyDan Williams2015-04-102-6/+48
| |
* | make use of NM_MORE_ASSERTS, nm_assert() and NM_MORE_LOGGINGThomas Haller2015-04-102-9/+5
| |
* | build: add --enable-more-logging configure optionThomas Haller2015-04-101-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NM core uses nm-logging which is entirely configurable at runtime. Other components use glib-logging, which can also be partly configured via G_MESSAGES_DEBUG. It makes sense to have a compile time option to enable some logging statements that are only useful for heavy debugging. For glib-logging, this is a way to enable/disable extra logging. For nm-logging, we could alternatively configure a least log-level that is enabled at compile time (that way, we could configure to prune all LOGL_TRACE logging). While that might be useful (too), this gives an alternative way to disable/enable logging. Add a configure option --enable-more-logging and a NM_MORE_LOGGING define for that. If we don't find this useful after a while, we can simply remove it, because our logging statements are not part of a "stable" behavior.
* | build: add --enable-more-asserts configure option and nm_assert() macroThomas Haller2015-04-102-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NM already has two kinds of assertions: - g_assert*(), conditionally compiled via #ifndef G_DISABLE_ASSERT - g_return*(), conditionally compiled via #ifndef G_DISABLE_CHECKS In theory, one should be able to disable both asserts and NM should still work correctly (and possibly more efficient). In practice, hardly anybody is testing such a configuration and it might be broken. Especially, we don't disable asserts for production builds, both because of less test coverage and because it might reduce our ability to debug. Add a new configure option --enable-more-asserts, which defines NM_MORE_ASSERTS and nm_assert(). This is for expensive asserts, that -- contrary to the asserts above -- are disabled by default. This is useful for extended debugging.
* | test: print NMTST_SEED_RAND value with g_print()Thomas Haller2015-04-101-1/+1
|/ | | | | | | | | | | | For tests with assert-logging enabled, we already printed the message with g_print(), instead of g_message(). We always want to print this value, because it is important to reproduce a test failure. Hence, just (always) print directly to stdout. Also, add a leading newline, because the output was attached to the previous line.
* test: fix compiler warning in g_test_assert_expected_messages_internal()Thomas Haller2015-04-101-2/+7
| | | | | | -Wformat of gcc determines that the string arguments are NULL. Fixes: 373d09b0425c6dfb699ee4b6615ded0177d0e344
* platform/trivial: rename object_type_from_nl_object() to _nlo_get_object_type()Thomas Haller2015-04-091-13/+13
| | | | | | | The function names in linux-platform should get better prefixes indicating whether they are related to libnl or nm objects. Add a prefix _nlo_ for functions that operate on libnl objects.
* platform/trivial: move code around so that libnl related stuff is togetherThomas Haller2015-04-091-90/+91
| | | | | | Reorder some functions in nm-platform, so that we first have independent libnl wrappers/utils, then NMPlatform type definition, and then the rest.
* platform/trivial: add OBJECT_TYPE_MAX enum valueThomas Haller2015-04-091-1/+2
|
* test: make valgrind suppressions file configurableThomas Haller2015-04-091-2/+10
| | | | | Add a configure option --with-valgrind-suppressions=path to allow specifying a different suppressions file.
* test: log message at g_test_assert_expected_messages()Thomas Haller2015-04-091-2/+14
| | | | | | When disabling assert-logging with no-expect-message, print a line at every g_test_assert_expected_messages() invocation.
* test: add description of test behavior to nm-test-utils.hThomas Haller2015-04-091-0/+54
|
* route-manager: merge branch 'th/route-manager-bgo740064'Thomas Haller2015-04-0824-392/+1009
|\ | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=740064
| * route-manager/test: add variations to test codeThomas Haller2015-04-081-6/+10
| |
| * route-manager: refactor route-manager and route_sync()Thomas Haller2015-04-082-265/+546
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the implementation of nm_route_manager_ip4_route_sync() and nm_route_manager_ip6_route_sync(). - merge the implementations for IPv4 and IPv6. - pre-sort the routes and iterate them in a way that we don't need to lookup a route in other lists. Do this by iterating two sorted lists at a time in a merge-sort way. The runtime complexity of sync is now O(n*ln(n)). - previously, the algorithm would merge routes it found in platform to priv->ipx_routes. That was wrong, because then we loose the information which routes we wanted to configure internally and which are present externally. Instead, priv->ipx_routes now contains all the routes that were explicitly configured via sync(). Hence, it knows what should be configured (@ipx_routes) and can compare to what is configured (@plat_routes). https://bugzilla.gnome.org/show_bug.cgi?id=740064
| * util: add nm_utils_array_remove_at_indexes() functionThomas Haller2015-04-083-0/+175
| |
| * default-route-manager: cleanup logging macrosThomas Haller2015-04-081-4/+5
| |
| * default-route-manager: use NMPlatformVTableRouteThomas Haller2015-04-081-70/+38
| |
| * platform: add VTable to handle IPv4 and IPv6 routes genericallyThomas Haller2015-04-082-0/+108
| |
| * test: add option in nmtst_platform_ip4_routes_equal() to ignore orderingThomas Haller2015-04-083-12/+40
| | | | | | | | | | | | Same for nmtst_platform_ip6_routes_equal(). It's useful to check for equal routes ignoring the ordering.
| * route-manager/test: check for exact expected error messageThomas Haller2015-04-081-6/+6
| |
| * route-manager/test: fix usage of g_assert_expect_message()Thomas Haller2015-04-082-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tests that use g_assert_expect_message() must initialize with nmtst_init_assert_logging(). Otherwise, the caller can change the logging level via NMTST_DEBUG=log-level=DEBUG,log-domains=DEFAULT which breaks the assertions. nmtst_init_assert_logging() allows the caller to turn of checking of assertions via NMTST_DEBUG=log-level=DEBUG,log-domains=DEFAULT,no-expect-message Also, don't use g_message() in platform tests otherwise the test fail because nmtst now sets g_log_set_always_fatal().
| * platform/test: clear host part of routes in fake platformThomas Haller2015-04-081-2/+2
| | | | | | | | | | Adding a route with host part non zero is rejected by kernel. But NMLinuxPlatform works around it -- so must fake platform.
| * platform/test: fake platform must use nm-logging for reporting errorsThomas Haller2015-04-081-4/+4
| | | | | | | | Just like linux platform does.
| * platform/test: split initialization of platform tests outThomas Haller2015-04-087-1/+34
| | | | | | | | test-route-manager soon wants a different initialization
| * test: setup logging during nmtst_init_assert_logging()Thomas Haller2015-04-089-17/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before, when having a test with nmtst_init_assert_logging(), the caller was expected to setup logging separately according to the log level that the test asserts against. Since 5e74891b58688a19c43fb8e50880166d94a4e901, the logging level can be reset via NMTST_DEBUG also for tests that assert logging. In this case, it would be useful, if the test would not overwrite the logging level that is set externally via NMTST_DEBUG. Instead, let the test pass the logging configuration to nmtst_init_assert_logging(), and nmtst will setup logging -- either according to NMTST_DEBUG or as passed in. This way, setting the log level works also for no-expect-message tests: NMTST_DEBUG="debug,no-expect-message,log-level=TRACE" $TEST
| * platform: don't write debug message to stderrThomas Haller2015-04-081-5/+12
| | | | | | | | Use nm-logging instead.