History log of /system/connectivity/shill/mock_manager.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e569b214bad42ec2be75ac1db2ca9b15563fdc61 15-Jan-2016 Samuel Tan <samueltan@google.com> shill: wrap manager AP/Station mode methods in preprocessor conditionals

Wrap the definitions and all callsites of Manager methods
SetupApModeInterface(), SetupStationModeInterface(), and
OnApModeSetterVanished() with preprocessor conditionals\
so that these methods will only be present and used in
Brillo builds that do not disable WiFi.

BUG: None
Change-Id: I2a4bef5142bedd6fa70163ebb9ea6121e7cbff1e
TEST: shill compiles and unit tests pass.
/system/connectivity/shill/mock_manager.h
8a3f68edbcf7fe59380609588787baa54cbd9bdd 11-Jan-2016 Samuel Tan <samueltan@google.com> shill: make remote service monitoring RPC-mechanism-specific

Code that monitors remote RPC endpoints is RPC-mechanism-specific,
so it should live in RPC-mechanism-specific source files.

Move all code that creates D-Bus service watchers from Manager
into ChromeosManagerDBusAdaptor, and remove expectations for
service watcher creation/deletion from Manager unittests. Remove
CreateRPCServiceWatcher from ControlInterface, since we leave the
details of creating the RPC service watcher to the RPC adaptors.

Also, create a ChromeosManagerDBusAdaptor unittest, along with the
classess necessary to support these unittests (DBusServiceWatcherFactory,
MockDBusServiceWatcherFactory, MockDBusServiceWatcher), to test for the
creation/deletion of D-Bus service watchers that is now done in
this adaptor.

While there, remove an unnecssary comment from icmp_session_factory.cc.

BUG: 26489902
TEST: Unit tests pass when shill is built with SHILL_USE_BINDER=true
TEST: Unit tests pass when shill is built with SHILL_USE_BINDER=false
Change-Id: I31be9ead90e0e538247401042c5b5012a924c0dd
/system/connectivity/shill/mock_manager.h
91b7150819b785f36c2c094ae4aa102336bd6f71 09-Nov-2015 Peter Qiu <zqiu@google.com> Do not claim/release blacklisted devices

This prevents the device claimer from unintentionally removing
blacklisted devices (specified through command line) from the
blacklist.

Any attempt to claim/release blacklisted devices will results in
an error.

Bug: 25448373
TEST=Verify p2p0 interface is not managed by shill after device setup
on Brillo devices
TEST=Run newly added unit tests

Change-Id: I14323de2f125d92dc6207d2a4768b7dd4735b850
/system/connectivity/shill/mock_manager.h
bad1c10ffd2d4ac14f7bd9f4ef6a8982e711f566 19-Sep-2015 mukesh agrawal <quiche@google.com> shill: remove references to GLib

There are a number of references to GLib (the object),
even though no one uses GLib in a substantive way.
Remove these obsolete references.

Bug: 23386647
TEST=unit tests

Change-Id: I8d574980bc8e853c8b87ef64b581d64a71491201
/system/connectivity/shill/mock_manager.h
c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5 03-Sep-2015 Peter Qiu <zqiu@google.com> License shill to Apache2

This patch automatically replaced the license on all text files from
Chromium OS (BSD style) to AOSP (Apache2), keeping the original year as
a reference.

The license header was added to .gyp and .gypi, the NOTICE was added with a copy
of the Apache2 license and MODULE_LICENSE_* file was added.

BUG=23587594
TEST=grep 'Chromium OS Authors' doesn't find anything.

Change-Id: If41ede586c2465f5831fb7fee270ff41dbfdb596
/system/connectivity/shill/mock_manager.h
9b6f8b8cdeb0c9e925fad635cc52a467c82741d0 26-Aug-2015 Peter Qiu <zqiu@google.com> shill: emit "Devices" property change for non-primary connectivity devices

This allows the remote client to get notified whenever a non-primary
connectivity device (e.g. PPP device) gets added/deleted.

BUG=chromium:523416
TEST=USE="asan clang dhcpv6 pppoe" FEATURES=test emerge-$BOARD shill

Change-Id: Ife37ea536e7e73b81c3c7210fe12b8d109efb93d
Reviewed-on: https://chromium-review.googlesource.com/295680
Commit-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/mock_manager.h
1e006c610db980bca337121134d2ba54497b7a59 16-Jun-2015 Paul Stewart <pstew@chromium.org> shill: Top-level mocks: Switch pointer/ref spacing

Switch to Chrome style spacing.

BUG=chromium:501026
TEST=Unit tests

Change-Id: I730ed5115e62319c2745dd6cef642e228b0fb66e
Reviewed-on: https://chromium-review.googlesource.com/278036
Reviewed-by: Rebecca Silberstein <silberst@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
1ce231c71932200e4d02c71567f8e93788120781 13-Jun-2015 Paul Stewart <pstew@chromium.org> shill: Manager: Refactor command line setup

In anticipation of a new and different implementation of
shill::Daemon, this CL re-factors the interaction between
the main() function and shill::Daemon by passing a new
Daemon::Settings structure. This way the process of parsing
command line parameters is separated from the task of
delivering this configuration the Daemon object. While here,
the "default_technology_order" field of was unified with the
other parameters passed to the Manager from the Daemon.

However this change is somewhat dwarfed by the technical
debt that needed to be paid off in order to allow this new
change to be tested. The new Daemon::ApplySettings method
makes no new calls to the Manager object but none of these
methods were previously mocked in the MockManager object.
More troublingly the side-effects of these Manager methods
were depended on in MockManager, so a few tests (notably
DeviceTest) needed to be re-architected to deal with mock
functionality instead of assuming the Mock object did what
a real Manager would do.

Lastly, both the Device::PrependDNSServers and
Manager::FilterPrependDNSServersByFamily methods seemed
a bit hard to understand and difficult to test. Minor
changes to these APIs allowed the test changes above to
work a lot smoother, and also to separate the unit tests
to work on individually testing the functionality in each
object.

BUG=chromium:500991
TEST=Unit tests

Change-Id: I04c33c841024c102ff9658e5857236ab2e5bf32f
Reviewed-on: https://chromium-review.googlesource.com/278022
Reviewed-by: Garret Kelly <gdk@chromium.org>
Reviewed-by: Rebecca Silberstein <silberst@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
d48fa0c5531e2102d4f537e81b9f92afc2d60955 10-Jun-2015 Peter Qiu <zqiu@chromium.org> shill: command line support for DHCPv6

Add command line option "--dhcpv6-enabled-devices" to enable DHCPv6
for specific devices. The obtained DHCPv6 configuration is for
informational purpose only, will not be used to setup connection nor
update system configuration by shill.

Note: since shill does not use DHCPv6 configuration to setup any
connection, other IP configuration (DHCPv4 or IPv6 over RDNSS)
is required in order for the device to setup a connection for a
given network service.

BUG=chromium:492764
TEST=USE="dhcpv6 asan clang" emerge-$BOARD shill
TEST=USE="asan clang" emerge-$BOARD shill
TEST=Verify with new DHCPv6 client auotest
Manual Test:
1. Build/install IPv6 enabled dhcpcd and DHCPv6 enabled shill
2. Setup a virtual ethernet pair using:
"ip link add name veth_master type veth peer name slave"
2. Setup a DHCPv6 server on veth_master interface
"/usr/sbin/dhcpd -6 -cf /tmp/dhcp6.conf veth_master"
3. Start shill with DHCPv6 enabled for "slave" interface
4. Verify DHCPv6 configuration via
"/usr/local/lib/flimflam/test/list-ipconfigs slave"

Change-Id: Ic152400f61e5bb4cb02f237b97da971ed24da27f
Reviewed-on: https://chromium-review.googlesource.com/276713
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/mock_manager.h
208a97ed32c62bc11b0a20eaf01833482e8c0fbc 13-May-2015 Paul Stewart <pstew@chromium.org> shill: Device: Perform validation of accepted hostname

The hostname retrieved from the DHCP server may be too large.
Try to be smart about truncating the hostname so that one can
be successfully set.

BUG=chromium:475699
TEST=New unit tests + network_DhcpRequestHostname

Change-Id: Ic60c86919590f394de32a611296f9b9fbe454fb0
Reviewed-on: https://chromium-review.googlesource.com/270579
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
18213652e2ce4c6e4354951e5b665097b7a7aa6b 22-Apr-2015 Peter Qiu <zqiu@chromium.org> shill: remove dependency for ProfileDBusPropertyExporter

Currently, Profile.GetEntry uses ProfileDBusPropertyExporter to
retrieve entry settings for a service entry that's not registered to the
manager or loaded from a different profile. ProfileDBusPropertyExporter
duplicates logics from Service and its subclasses for loading settings
from the profile.

Instead, create a temporary service for profile to load entry settings
into for such service entry, and then retrieve the service settings
(properties) directly. When creating a temporary service, the profile entry
will be validated for fields required by the corresponding service type.

Also added couple test scripts for testing purpose.

BUG=chromium:208736
TEST=USE="asan clang wimax" FEATURES=test emerge-$BOARD shill
Manual Test:
1. Bootup a DUT (wolf) without logging in, connect to a wifi network
WiFi-A.
2. Logged in with an user account, connect to a different managed wifi
network WiFi-B.
3. Invoke command "/usr/local/lib/flimflam/test/list-profiles", verify
there is an entry in both default profile "/profile/default" and
user profile "/profile/chronos/shill".
3. Use the get-profile-entry command to retrieve entry from both default
and user profile, verify entries are retrieved successfully.
"/usr/local/lib/flimflam/test/get-profile-entry default <entry_name>"
"/usr/local/lib/flimflam/test/get-profile-entry shill <entry_name>"

Change-Id: If6c22fbca0e4e47dd42761b047d57fff14c2e658
Reviewed-on: https://chromium-review.googlesource.com/266751
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/mock_manager.h
1a72f5444e077ed21b8e085b17d7f9f1bc44fa5e 15-Apr-2015 Peter Qiu <zqiu@chromium.org> shill: compiler option support for wifi and wired 802.1x

This allows shill to be compiled without wifi and wired 802.1x independently.
The supplicant related code will not be compiled when both wifi and wired
802.1x compiler option are disabled.

BUG=chromium:475665
TEST=USE="asan clang -wifi" FEATURES=test emerge-$BOARD shill
USE="asan clang -wired_8021x" FEATURES=test emerge-$BOARD shill
USE="asan clang -wifi -wired_8021x" FEATURES=test emerge-$BOARD shill
USE="asan clang" FEATURES=test emerge-$BOARD shill
Default shill (including both wifi and wired 802.1x):
Passes wifi_matfunc test suite
shill without wifi
No wifi connectivity
Have ethernet connectivity
Passes network_8021xWiredAuthentication test
shill without wired 802.1x
Have wifi and ethernet connectivity
Fail network_8021xWiredAuthentication test
shill without both wifi and wired 802.1x
No wifi connectivity
Have ethernet connectivity
Fail network_8021xWiredAuthentication test
CQ-DEPEND=CL:265614

Change-Id: I6abaa150657f6ca0f6d5c37229fde9a2c0bb36aa
Reviewed-on: https://chromium-review.googlesource.com/265774
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/mock_manager.h
782cdcea789d76a7ad7802cf9410b14a2399c0a9 01-Apr-2015 Garret Kelly <gdk@chromium.org> shill: add minimum-mtu command-line parameter

Add the --minimum-mtu option to shill to allow clients to override small
MTU values set by DHCP servers. Any MTU value smaller than the provided
one is dropped.

BUG=chrome-os-partner:36886
TEST=FEATURES=test emerge-amd64-generic shill, ASAN profile

Change-Id: I8e79a18f335705887568e04050712d565d53c4f0
Reviewed-on: https://chromium-review.googlesource.com/263522
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Garret Kelly <gdk@chromium.org>
Tested-by: Garret Kelly <gdk@chromium.org>
/system/connectivity/shill/mock_manager.h
a900f4a4b94d852e2a52a59f59ede4261d48ad80 19-Mar-2015 Peter Qiu <zqiu@chromium.org> shill: configure preferred device for wifi services

When a system has multiple wifi devices, it is desirable to allow users to
be able to configure wifi services to use specific wifi device for connecting.
A new wifi service configuration parameter "WiFi.PreferredDevice" is added for
this purpose.

With multiple wifi devices, a wifi endpoint will be created/added for each
BSS detected on each wifi device. So when a wifi service tries to select an
endpoint to "use", it will select the endpoint with the best signal that's
associated with the preferred device if one exist, otherwise the endpoint with
the best signal overall. This endpoint selection is mainly for determining
the device to use to connect to that service (meaning the device on which
"ConnectTo()" is performed if the service is connected), and the estimate of
the signal strength when connected. wpa_supplicant is in charge for deciding
which endpoint to actually connect to.

There will be no side effect if the specified device is not an enabled
WiFi device.

BUG=chromium:467027
TEST=USE="asan clang" emerge-$BOARD shill
Manual Test:
1. Grab a ath9k device (wolf), and setup one additional wifi interface with:
"iw phy phy0 interface add wlan1 type managed"
2. Change the MAC address of wlan1 to be different from wlan0:
"ifconfig wlan1 hw ether [MAC]"
then bring up the interface using "ifconfig wlan1 up"
3. Verify shill is managing wlan1 with:
"/usr/local/lib/flimflam/test/list-devices
4. Configure the service with WiFi.PreferredDevice set using:
"/usr/local/lib/flimflam/test/configure-service [ssid] ..."
5. Connect to the service using:
"/usr/local/lib/flimflam/test/connect-service [ssid]"
6. Verify the device is connected to the service on the specified
wifi interface.
CQ-DEPEND=CL:261049

Change-Id: I55838515b6f154d069ab5d02ded46e2f6148840c
Reviewed-on: https://chromium-review.googlesource.com/261210
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/mock_manager.h
2d36a6e266deb96db1d3cf4b18dcc9d863795f28 19-Feb-2015 Samuel Tan <samueltan@chromium.org> shill: check if in dark resume before launching periodic scan

Check if we are in in a suspending/dark resume state (i.e.
PowerManager::suspending()) before launching a periodic scan in
WiFi::ScanTimerHandler. This ensures that we do not launch shill-initiated
scheduled scans while in dark resume.

Also add unit tests for WiFi::StartScanTimer.

BUG=chromium:459821, chromium:439193
TEST=Compile shill and run unit tests.

Change-Id: Ie727e068e1c48692e270b8c44662f10fb1299aaf
Reviewed-on: https://chromium-review.googlesource.com/252571
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/mock_manager.h
22ce765226cfdcf267b7dc80c22892e6b29065ea 16-Oct-2014 Paul Stewart <pstew@chromium.org> shill: Service: Move ManagerTest::SortServices to ServiceTest::Compare

We have long considered the SortServices test to be misplaced.
Finally move this to the Service unit tests, since after all,
this is testing the Service::Compare static method.

While here, mock EnableAndRetainAutoConnect() in MockService since
the move of SortServices was blocking this change.

BUG=chromium:206367
TEST=Unit tests

Change-Id: I4ec7d5a098edfb938d1ffd0ae78116f8004646c9
Reviewed-on: https://chromium-review.googlesource.com/223615
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
8e6b8ef22e185310480c13aa3a6e89184cce62d1 15-Jul-2014 Ben Chan <benchan@chromium.org> shill: Add 'NoAutoConnectTechnologies' manager DBus property.

This CL adds a 'NoAutoConnectTechnologies' property to the manager DBus
interface, which is a comma-separated list of technologies for which
auto-connect is disabled. This property will be used by cellular tests
to temporarily disable auto-connect for a cellular device under test.

BUG=chromium:403164
CQ-DEPEND=CL:217813
TEST=Tested the following:
1. `FEATURES=test emerge-$BOARD platform2`
2. Manually test the following on a DUT:
- Plug in a cellular modem over USB.
- Verify that shill auto-connects the cellular service.
- Unplug the modem.
- Disable auto-connect on cellular via:
dbus-send --system --dest=org.chromium.flimflam \
/org/chromium/flimflam \
org.chromium.flimflam.Manager.SetProperty \
string:'NoAutoConnectTechnologies' string:'cellular'
- Plug in the modem again.
- Verify that shill no longer auto-connects the cellular service.

Change-Id: Ib09e7593695b0436c72717bc9463ce0c714185ee
Reviewed-on: https://chromium-review.googlesource.com/217825
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/mock_manager.h
cc67c52a2c00f90e877971d552208dd99825d84e 03-Sep-2014 Ben Chan <benchan@chromium.org> shill: Include base/macros.h instead of base/basictypes.h

shill no longer uses the integer types from base/basictypes.h. It should
simply include base/macros.h for the DISALLOW_COPY_AND_ASSIGN macro
instead.

BUG=None
TEST=`USE='cellular wimax' FEATURES=test emerge-$BOARD platform2`

Change-Id: I9b350c1bd9eff88e2c87de2ef8d607e90049e102
Reviewed-on: https://chromium-review.googlesource.com/216055
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/mock_manager.h
5ea763b83299b5fad76a87183fb39a74c2d3c61d 13-Aug-2014 Ben Chan <benchan@chromium.org> shill: Add C++11 override specifier to destructors of derived classes.

BUG=None
TEST=`USE=wimax FEATURES=test emerge-$BOARD platform2`

Change-Id: I88d4e29165869b26924cccb94ac940dc8961c312
Reviewed-on: https://chromium-review.googlesource.com/212267
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/mock_manager.h
700de6400c18f8cba77821f8cd2a1935b96999a6 15-Jul-2014 Peter Qiu <zqiu@chromium.org> shill: Reporting of device's connection status

Report device's connection status to UMA stats periodically. Possible status
are offline (not connected to an AP), connected (connected to an AP), and
online (connected to an AP with internet connectivity). When the device is
in online state, it will report both connected and online to UMA stats.

This data will allow us to determine the percentage of time when the device
have internet connectivity, also the percentage of time when the device is
connected to an AP but without internet connectivity.

While at it, update the old IsOnline function in manager.cc to IsConnected
to be more semantically correct, since that function return true if there is a
service that's in connected or above state. And Add a new IsOnline function
which will return true only if there is a service that's in online state.

BUG=chromium:392990
TEST=unit tests, manual
Manual Test:
1. Boot up a chrome device without any network connectivity.
2. Wait for 3 minutes, and browse to "chrome://histograms", veriyf
there is a histogram for "Network.Shill.DeviceConnectionStatus"
with a hit for bucket 0 (offline).
3. Connect the chrome device to an AP without internet connectivity.
4. Wait for 3 minutes, and browse to "chrome://histograms", verify
there is a hit for bucket 1 (connected) for histogram
"Network.Shill.DeviceConnectionStatus".
5. Connect the chrome device to an AP with internet connectivity.
6. Wait for 3 minutes, and browse to "chrome://histograms", verify
there sia hit for bucket 1 (connected) and 2 (online) for
histogram "Network.Shill.DeviceConnectionStatus".

Change-Id: I1a949b17398214d745ca1d5a37e35202e087181a
Reviewed-on: https://chromium-review.googlesource.com/207960
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/mock_manager.h
8a5322984f2d81bcbfd8d44c59747a11bd9b904b 17-Jun-2014 Alex Vakulenko <avakulenko@chromium.org> shill: Fix most of warnings from cpplint

Fix most cpplinter's warnings. On a few occasisions, the warnings
produced were false-positives, so added explicit // NOLINT comment
overrides.

There were a few instances of disallowed non-const reference usage
(reported as runtime/reference error by cpplint) for
"DBus::Error &error" which should potentially be changed
to pointers to comply with C++ coding style but I will let Shill
owners do that since there is quite a few of those and the
change isn't brain-dead simple...

BUG=None
TEST=platform2 still compiles and all unit tests pass.

Change-Id: Ic2e31896aa13d20eeb1a85dee74f3db8cccfde2e
Reviewed-on: https://chromium-review.googlesource.com/204164
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
/system/connectivity/shill/mock_manager.h
d4f26486b237fae831d4b682481de785fc99c66e 26-Apr-2014 Paul Stewart <pstew@chromium.org> shill: Device: Report IPv6 address

Have the Device query DeviceInfo for the primary IPv6 address
every time DeviceInfo notifies it of a change. Use the output
of this to add another IPConfig object to the list reported if
this address exists.

While here, emit a property change event from the "IPConfigs"
property if either the IPv4 or IPv6 ipconfigs change.

BUG=chromium:365883
TEST=Unit tests, upcoming change to network_Ipv6SimpleNegotiation
(CL:197394). Manual: list-ipconfigs while connected to a network
that supplies IPv6 global prefixes.

Change-Id: I28771acd3e990a9bea7f5988cc382a5cd9e91f1f
Reviewed-on: https://chromium-review.googlesource.com/197304
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
7de7e02e14074989757a4f9f220de2310cc05236 28-Aug-2013 Paul Stewart <pstew@chromium.org> shill: Manager: Cache Geolocation Info

Instead of polling devices for their current scan information when
Manager::GetNetworksForGeolocation() is called, instead have devices
notify the Manager when they have new (and complete) geolocation
information to share. At this point in time the Manager caches this
information in a per-technology map which it will return to callers
asking for geolocation information. As a result, callers receive the
most complete information from the last scan.

The task of ensuring that this geolocation information is maintained
at a desired "freshness" is left as a separate exercise.

BUG=chromium:236418,chromium:217247
TEST=Unit tests; connect to AP and allow scan cache to expire
("list-services" only shows connected AP), call
manager.GetNetworksForGeolocation() and ensure the data from the
most recent scan is still available.

Change-Id: I67316656168173ad3ed6c19a3368c9f75b7322f3
Reviewed-on: https://chromium-review.googlesource.com/167310
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
ad0e598399c224cfed6fc90464d3022fa8c067ef 02-Jul-2013 Paul Stewart <pstew@chromium.org> shill: Service: Implement "SetProperties" DBus call

Configure multiple Service properties at once in a single call.
This method differs from Manager::ConfigureService in two important
ways: Firstly, since this is a service method, the service is
found via its RPC identifier as opposed to its GUID or other
properties. Secondly, only the service properties are set -- it
is not assigned a profile like ConfigureService -- in fact the
"Profile" property is silently ignored if provided to this call.

BUG=None
TEST=Unit tests

Change-Id: Ied4b75184bc4c27d88652dc14d14ef3f49b1574e
Reviewed-on: https://gerrit.chromium.org/gerrit/60775
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
35eff134fd95fdf1918803c4966f8b790914b3d4 12-Apr-2013 Paul Stewart <pstew@chromium.org> shill: Ethernet: Create shared credentials provider

Share a single service instance for all Ethernet devices to use
for EAP credentials. This service instance is only used for EAP
authentication, so other parameters such as Static IP paramters
are still retrieved from the per-device Ethernet service. Provide
a method for all Ethernet devices connected to an EAP
authenticator to be notified when the EAP credentials for this
shared service have been changed. Use both facilities in the
Ethernet device.

CQ-DEPEND=CL:48162
BUG=chromium:227433
TEST=New unit tests; revised version of network_8021xWiredAuthentication
(see co-dependent CL)

Change-Id: I5b19723dddfa2d793090128adb6429f31174b276
Reviewed-on: https://gerrit.chromium.org/gerrit/48138
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
60a3706bee5686ae2322a774b9e7d5e8e63fcaf7 02-Apr-2013 Wade Guthrie <wdg@chromium.org> shill: Keeps track of successful wifi connection frequencies.

Saves the connection frequencies (and counts therefor) in the default
profile. Sends number of frequencies on which successful connections
have been made to an UMA stat.

BUG=chromium:222081
TEST=unittests and manual (look for UMA stat
'Network.Shill.Wifi.FrequenciesConnectedEver', disconnect from
wifi, reconnect, verify that the UMA stat went up by 1).

Change-Id: I1e3c75b82ac387dd01066c4da4ebfce2c4b2ddc0
Reviewed-on: https://gerrit.chromium.org/gerrit/47154
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/mock_manager.h
68d4109ff0176f7e5a9b67b916478d638aac577a 02-Apr-2013 Wade Guthrie <wdg@chromium.org> shill: Adds UMA metric for scan time for certain scans.

Future code will perform a different type of scan (called "progressive
scan") for resume from disconnect, resume from suspend, and boot up.
This CL differentiates between those cases and the traditional, full,
scan in the code and adds a time-to-scan UMA metric for progressive
scan.

BUG=chromium:222096
TEST=unittest and manual (cycle power on the chromebook and notice on
chrome://histograms that Network.Shill.Wifi.TimeToScan got a new entry).

Change-Id: I450602c4b0a418c2b9322edeceec970c79de1330
Reviewed-on: https://gerrit.chromium.org/gerrit/47562
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/mock_manager.h
c3505a569e3f98ce56e4017300a3ce46bc714e4c 18-Mar-2013 Darin Petkov <petkov@chromium.org> shill: vpn: Conditionally build VPN support into shill.

VPN is disabled if SHILL_VPN=0 is passed to the Makefile.

BUG=chromium-os:39329
TEST=Together with I9e4d5741cbdcd99c9c109259167d87dbff04ee7a:
- FEATURES=test emerge-lumpy shill;
- After unmerging dependencies, FEATURES=test USE=-vpn emerge-lumpy shill
- Connected to OpenVPN successfully with default USE flags.
- Tested connectivity with shill with no VPN support.

Change-Id: I480a5911a4310ff9f80ca312db2a1bc3fe67bbd1
Reviewed-on: https://gerrit.chromium.org/gerrit/45740
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_manager.h
0e1cdeae24dd678a5fe27c840802582c0ca45ec0 28-Feb-2013 Albert Chaulk <achaulk@chromium.org> shill: Implement Service.Remove & delete DHCP leases

Implement the Service.Remove dbus API and modify the unload sequence to
remove the DHCP lease file. Add unit tests to DHCPProvider & WiFiService to
check lease file deletion. Currently only WiFi does the DHCP lease delete
from DBus - WiMax/Cell/VPN do their own things for IP configuration and
Ethernet can't be removed as per the API spec.

Also make sure FilePath is qualified as base::FilePath throughout the project.

BUG=chromium-os:32756
TEST=added unittests to test the call path on Unload() to delete the lease file

Change-Id: Ic6eee17b9d81cd0be8d09c683d85d6a4d19278c9
Reviewed-on: https://gerrit.chromium.org/gerrit/44339
Tested-by: Albert Chaulk <achaulk@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
/system/connectivity/shill/mock_manager.h
3c5040174273386868cc8dea8044d22c465885d8 18-Jan-2013 Paul Stewart <pstew@chromium.org> shill: WiFiProvider: Move Service vector to WiFiProvider

Remove the services_ vector from the WiFi Device and move it
to the WiFiProvider. Also remove the WiFi device initializer
from the WiFiService, so it doesn't have an early or permanent
binding to a particular device. This allows WiFi services to
be loaded immediately as a profile loads, so that operations
that operate on services (like Manager::ConfigureService
and Manager::FindMatchingService) do not need to use a separate
API to find and modify services that are not visible but have
stored configuration associated with them.

This also allows Chrome a somewhat more stabilized service
path to remembered services as they appear and disappear from
view. Another advantage is that this completely regularizes
the relationship between the presence of the service in the
provider's services_ list and its registration with the
manager.

In order to perform late-binding to a WiFi device, we provide
two methods for WiFi services to find a device to call
WiFi::ConnectTo on when the time comes: Firstly, visible
WiFi services (ones with endpoints) can select the device
associated with the most "promising" endpoint. In the case
where we try to connect to a hidden WiFi service before
endpoints appear for it, there is a new method for selecting
a WiFi device from the Manager. In both of these cases only
one WiFi device is selected for the connect request, so this
method is no worse than before in the unlikely case where
there are two WiFi devices, except for the fact that now
there won't be duplicate WiFi services registered in the
Manager.

CQ-DEPEND=Ic8af4999b25503c3b002504edd12405dc91cc824
BUG=chromium-os:38017
TEST=Unit tests; manual operation; manager unit tests, WiFiManager
autotests (profile tests failing due to crosbug.com/35374)

Change-Id: I904df8a983ba6e7e76e20159622c652675eb6a7d
Reviewed-on: https://gerrit.chromium.org/gerrit/41664
Commit-Queue: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
6c1e3bbca64d642cb30ed9952203626942bc1451 07-Feb-2013 Thieu Le <thieule@chromium.org> shill: cellular: Add Network.Shill.Cellular.DropsPerHour.

BUG=chromium-os:38557
TEST=Unit tests, manually lose LTE signal and check chrome://histograms

Change-Id: I82aa1edabd21c5dfde4834cd36a34a12b629ba8f
Reviewed-on: https://gerrit.chromium.org/gerrit/42813
Reviewed-by: Arman Uguray <armansito@chromium.org>
Commit-Queue: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/mock_manager.h
4cbff5b5897593f7a2e6de48a98abe72356075af 29-Jan-2013 Darin Petkov <petkov@chromium.org> shill: vpn: Auto-connect at most one service at a time, only when online.

This patch suppresses auto-connect for non-primary technologies (such
as VPN) while the system is offline. Also, don't auto-connect a VPN
service if there's already an active (connecting or connected) VPN
service.

Cleanup Manager's online/offline API a bit.

BUG=chromium-os:38229
TEST=unit tests

Change-Id: Iedd3879cf45c8b509a956415c7de5e5ba1af4652
Reviewed-on: https://gerrit.chromium.org/gerrit/42226
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_manager.h
85aea151c69ff40967becfa8751d821feebf3bb9 22-Jan-2013 Paul Stewart <pstew@chromium.org> shill: WiFiService: Fix-up old-style WiFi Service entries

Add a utility to upgrade WiFi service entries that don't contain
the "Type", "Mode" or "Security" properties, and only contain
this information in the fields of the storage identifier. Use
this utility whenever the WiFi device loads a new profile.
Follow-on CLs will clean up all remaining direct callers of
WiFiServce::ParseStorageIdentifier().

BUG=chromium-os:38048
TEST=Unit Tests, inspect chrome://histograms for new histogram
entries when profiles are updated.

Change-Id: I0f1d4e75abc1edfe6da1bbfe68183cab1b1c0021
Reviewed-on: https://gerrit.chromium.org/gerrit/41802
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
87a4ae88915e3dc22dbb1327002e1daf769ef23e 27-Oct-2012 Paul Stewart <pstew@chromium.org> shill: WiFi: Reload hidden services after restart

Hidden services in WiFi are loaded in two situations:

(1) When the WiFi Device is registered, WiFi::Load() is called
each profile.

(2) When a profile is pushed, WiFi::Load() is called with the
new profile.

When WiFi::Stop() is called, all services are removed, so some
mechanism needs to be used to reload these hidden services when
WiFi::Start() is called.

BUG=chromium-os:35703
TEST=Unit tests + manual: Disable / Re-Enable WiFi and make sure
remembered hidden networks are still visible.

Change-Id: Ie6b9351db940860cb20c39e0575c3d5dd8c921d0
Reviewed-on: https://gerrit.chromium.org/gerrit/36736
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
036dba0c6641acdbe02d52260c6fa6dca84b1af2 07-Aug-2012 Paul Stewart <pstew@chromium.org> shill: Device: Add LinkMonitor

Start link monitoring for technologies for which it is enabled.
Add facilities in the manager and default profile to determine
and persist a list of technologies for which link monitoring
is enabled. Provide a means for the Device to report the current
rolling average LinkMonitor response time.

BUG=chromium-os:32600
TEST=Unit tests

Change-Id: I39dcc8ce2332d7be3c95d9953b4ae7d7172d7df1
Reviewed-on: https://gerrit.chromium.org/gerrit/29731
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
a5e07ef0402aad0635a5e7a0932740b9dfbf46d1 09-Jul-2012 Darin Petkov <petkov@chromium.org> shill: openvpn: Hold connect/reconnect until a new service is online.

Use OpenVPN's management hold API to prevent the client from
connecting/reconnecting until an underlying connection becomes
available. The hold is released only when a new default service is
connected. This ensures, for example, that the openvpn client will not
use stale network configuration on reconnect. Also, add API to Manager
to register and deregister callbacks to monitor for default service
changes.

BUG=chromium-os:31572
TEST=unit tests, tested on device with inactivity restart/reconnect

Change-Id: I6d6d63a03ee92aaa18b7a2cca9462a8ea1e5a931
Reviewed-on: https://gerrit.chromium.org/gerrit/26920
Commit-Ready: Darin Petkov <petkov@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_manager.h
e7c6ad35cafed32a0fd1390487c74e66eae1961d 29-Jun-2012 Darin Petkov <petkov@chromium.org> shill: Add Profile and Manager UpdateDevice support.

UpdateDevice persists Devices into profiles. It's similar to UpdateService,
however, only the topmost DefaultProfile handles UpdateDevice. Use UpdateDevice
to persist Device's Enabled and Cellular's AllowRoaming properties. Remove now
unused Manager::SaveActiveProfile method to avoid confusion.

BUG=chrome-os-partner:10178,chromium-os:32230
TEST=unit tests

Change-Id: I1d293fa84e0bce3156943e8e9d313fc98facbde1
Reviewed-on: https://gerrit.chromium.org/gerrit/26405
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/mock_manager.h
e4b270274cba2a1976c7be6c733bd899e009c1d1 16-May-2012 Darin Petkov <petkov@chromium.org> shill: Complete interaction between DeviceInfo and WiMaxProvider.

WiMaxProvider now creates/registers and destroys/deregisters devices
based on DeviceInfo and RPC callbacks. Also, add missing DeviceInfo
WiMax unit tests, and implement WiMaxService's GetDeviceRpcIdentifier
and GetStorageIdentifier.

BUG=chrome-os-partner:9735
TEST=unit tests

Change-Id: I9dbf8f785ef824ca5628b96a2e22ec0ef6336b97
Reviewed-on: https://gerrit.chromium.org/gerrit/22807
Commit-Ready: Ben Chan <benchan@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_manager.h
8c116a90d3a3536430b808b15e73275060918434 03-May-2012 Paul Stewart <pstew@chromium.org> shill: device_info: Revamp address/route flushing

The route flushing for devices ended up floating around in the device
code with a number of changes and lodged itself in a place where it
might not even be called in some situations. The address flush code
was only being called on connection close, and only applied to
addresses that were active before the system started up.

Implemented the following fixes:

- Move FlushRoutes out of Device to the initialization code in
DeviceInfo.

- Add Address flushing code in the same place.

- Capture the list of IP addresses per-interface earlier at startup
so they can be flushed at device discovery. This involved re-ordering
the RTNL "Dump" path to dump addresses before links, and adding code
in DeviceInfo to capture these addresses in its Info structures before
the actual link was discovered. This way, when the link is discovered,
it's possible to flush the old addresses.

- Use the NLM_ECHO flag when creating and deleting IP addresses in RTNL,
so RTNL events are generated even for operations that originate from
shill, and the tables are better kept up to date, so when Connections
flush IP addresses on disconnect, this properly includes those that
were created locally.

- Break apart DeviceInfo::AddLinkMsgHandler so it can be tested.

BUG=chromium-os:30358
TEST=New unit tests + plug/unplug between different networks / kill/restart
shill.

Change-Id: Ie1a38e0e86ba3a52aaaaf9c3f0e0dfcb3c8fc276
Reviewed-on: https://gerrit.chromium.org/gerrit/21719
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
10ccbb3c6bc4f4246105743c8508fc9ce8759c17 27-Apr-2012 Paul Stewart <pstew@chromium.org> shill: wifi: Scan for non-ephemeral hidden networks

Before, shill used the "favorite()" property to tell whether it
should scan for a hidden SSID. Instead, use a more direct approach
of asking whether the service is part of a non-ephemeral profile.
This allows services configured via Manager::ConfigureService()
for which the "favorite" flag has not been set to be scanned for
and listed for the user to select.

BUG=chromium-os:26676
TEST=New unit tests, manual -- configure a hidden network via
configure-hidden-wifi, then propose a scan via "test-flimflam scan",
while running "iw event" to confirm whether the new SSID appears in
the scan list

Change-Id: I75364c83c94482c0c3d654e2076a4bed06a7fca2
Reviewed-on: https://gerrit.chromium.org/gerrit/21288
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
d215af6f72d012f43057c34f17a12506baa21e66 25-Apr-2012 Paul Stewart <pstew@chromium.org> shill: service: Do active checks on PortalCheck and ProxyConfig

Change both properties to be derived strings. Validate the various
values of the PortalCheck parameter. Force a restart of portal
detection if either parameter changes, so that we can switch from
Portal to Online or vice vesa if by changing this parameter we are
changing the behavior of portal check.

BUG=chromium-os:29745
TEST=New unit tests. Manual: Set Proxy configuration on a service
in portal state while on the login screen.

Change-Id: I86c386e61396a23103f99382c568372b4774f452
Reviewed-on: https://gerrit.chromium.org/gerrit/21027
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
f7ef50a6054414c446f891fa87401e6f0a00097f 16-Apr-2012 Darin Petkov <petkov@chromium.org> shill: vpn: Implement l2tp/ipsec external process option initialization.

BUG=chromium-os:26843
TEST=unit tests

Change-Id: Ie635ff143d8934e68f8193d3d5b727f1abd4d987
Reviewed-on: https://gerrit.chromium.org/gerrit/20321
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_manager.h
9a24553461df7036755060423f90804011612249 07-Mar-2012 Eric Shienbrood <ers@chromium.org> Make Enable/Disable work using new callbacks for async support.

Use new-style callbacks to implement the Manager EnableTechnology
and DisableTechnology operations asynchronously. This allows
devices to be enabled and disabled from the UI ,and for the UI
to display available networks once the device is enabled.

Removed the behavior whereby setting the Device.Powered property
had the side effect of enabling or disabling the device. To
replace this, I added new Device.Enable and Device.Disable calls
for enabling and disabling individual devices.

Also separated the in-memory value of the Powered property from
the persisted value. Whenever a client requests that a device
be enabled or disabled, the desired power state is immediately
saved in the profile, but the in-memory value isn't updated until
the operation completes. On startup, shill now automatically
starts any devices for which the persistent Powered property
is set, and does not start devices for which it is not set.

BUG=chromium-os:23319,chromium-os:27814
TEST=Manual testing on device + unit tests passing.

Change-Id: Id676be3fc662cfd5efb730c67687edfd16b2dc6b
Reviewed-on: https://gerrit.chromium.org/gerrit/18123
Commit-Ready: Eric Shienbrood <ers@chromium.org>
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Tested-by: Eric Shienbrood <ers@chromium.org>
/system/connectivity/shill/mock_manager.h
e2bad7c1edd7dbe837619e5350bd70814e6913be 14-Mar-2012 Paul Stewart <pstew@chromium.org> shill: Add Manager::GetDefaultService

Also fix SortServices to fix reporting of "DefaultService" to metrics.

BUG=chromium-os:27483
TEST=New unit tests

Change-Id: Ic456e51de366ac4181bcd32d49d6e4055622c1cc
Reviewed-on: https://gerrit.chromium.org/gerrit/18133
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
fb46caf4f23a41e73dfd87547121b5fb0230295a 08-Mar-2012 Thieu Le <thieule@chromium.org> shill: Delete existing routes when the device is started.

BUG=chromium-os:27358
TEST=Unit tests, network_WiFiManager, manually add foreign routes and
ensure they are deleted, also test to make sure default route remains
after DHCP renewal

Change-Id: Ic26b70d685491f31699ff4684ed289e76af8a9ca
Reviewed-on: https://gerrit.chromium.org/gerrit/17640
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/mock_manager.h
c681fa0742cabc686ccabaf0fdf6ce12dd7046b2 03-Mar-2012 Paul Stewart <pstew@chromium.org> shill: portal: Recheck portal state

Introduce a retry interval for automatically retrying portal
checks. Also provide a Manager API method for immediately
re-checking portal status.

BUG=chromium-os:27335
TEST=New unit tests, tested on real machine, including setting
PortaCheckInterval over DBus, and using Jason's addition to
test-flimflam for 'recheck-portal'.
Change-Id: Idc7def18c6f863859e94f4d4e9f266ab2670679c
Reviewed-on: https://gerrit.chromium.org/gerrit/17367
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
20088d860631a67c151a12783fbbee63c708792f 16-Feb-2012 Paul Stewart <pstew@chromium.org> shill: Perform Portal Detection in Device

When a connection completes, start a portal detection request, which
may change the state of the selected service. Bonus changes: removed
Service::kStateReady, since Service::kStateConnected maps directly
to flimflam::kStateReady. Also, move technology list parsing over
to technology.cc.

BUG=chromium-os:23318
TEST=New unit tests

Change-Id: I2fad724165af6914c8f83bc123f07db5af223a05
Reviewed-on: https://gerrit.chromium.org/gerrit/16117
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
7522551440b9a287bccf2d95a42357d04ab79814 27-Jan-2012 Paul Stewart <pstew@chromium.org> shill: Implement DeleteEntry Profile method

Implement the DeleteEntry DBus method call, which removes
a Profile entry as well as detaching any connected services
from the profile data. As a bonus change, modify Manager to
consolidate finding a Profile that is suitable for a Service
which does not have one.

BUG=chromium-os:25542
TEST=New unit tests

Change-Id: I6a954a41ab2d1b49f6432858e2263a63b5af21f1
Reviewed-on: https://gerrit.chromium.org/gerrit/14944
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
3426c8fc7a3943f2d8fcb2ec78f0593088b42bed 12-Jan-2012 Thieu Le <thieule@chromium.org> shill: Move Metrics from singleton to Shill daemon

While implementing chromium-os:24810, it was discovered that Metrics is
cleaner if it is passed around like ControlInterface, Dispatcher,
Manager, etc. This approach also makes Metrics more testable.

BUG=chromium-os:24810
TEST=Unit tests, network_WiFiManager suite

Change-Id: I556a1bd11f21f0b93ecfeaae8855dfb99ed5e5f9
Reviewed-on: https://gerrit.chromium.org/gerrit/14099
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/mock_manager.h
4eb4d782b83850552af41f675d22250601b9fb8d 05-Dec-2011 mukesh agrawal <quiche@chromium.org> shill: when we find an Endpoint for a WiFiService that hasn't been
registered with the Manager, register that service.

BUG=chromium-os:23713
TEST=unit tests, manual

Manual testing: ran network_WiFiSecMat.031CheckHidden_WPA, and
verified that the hidden service is registered with the manager.
(The autotest still fails, but for different reasons than before.)

Collateral change: don't create services with empty SSIDs.
They're not useful for anything, and would probably confuse
users.

Change-Id: Ie9aa8743d55de4dcd913fb089fc06a533cc065ef
Reviewed-on: https://gerrit.chromium.org/gerrit/12472
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_manager.h
00917ceafbc28599391bfcdd5837faf6d63fec32 23-Nov-2011 mukesh agrawal <quiche@chromium.org> shill: set favorite property when a Service is connected, and
set autoconnect property when a Service is made a favorite

BUG=chromium-os:23346,chromium-os:23349
TEST=new unittests

Bonus changes:
- remove some unused variables in ManagerTest.SortServices
- add "static" comment for Service::DecideBetween and
Service::Compare

Change-Id: I4b7e01f98d1292b9c8f951c9a54a01f76292b740
Reviewed-on: https://gerrit.chromium.org/gerrit/12053
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_manager.h
6515aabcd1fbbb9ff2090c9675c17eeef64e7474 13-Oct-2011 Chris Masone <cmasone@chromium.org> [shill] Make profiles backed with StoreInterfaces

Rely on persistence of data in StoreInterface to maintain
Service/Device/IPConfig info for entities that are not
currently active, instead of maintaining lists in Profile
objects themselves.

BUG=chromium-os:17253
TEST=unit, run on device

Change-Id: I206f44ddf16c584354f8fcadb57032f047f33d0a
Reviewed-on: http://gerrit.chromium.org/gerrit/10024
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_manager.h
5c4dd0b0886fb10deae0d3b40628fb2c521aff99 14-Sep-2011 mukesh agrawal <quiche@chromium.org> shill: clear more state on calls to Device::Stop and WiFi::Stop

BUG=chromium-os:20333
TEST=unittests, WiFiManager/000_SSID_Length_Limit

in addition to the main change, this CL
- moves some common code out of derived classes into Device
- adds some debugging messages (at VLOG(3)) to track down
unexpected live references
- eliminates TestEventDispatcher (in cellular_unittest.cc),
in favor of using the MockRTNLHandler

note that the 000_SSID_Length_Limit test was run with the
"Test MAX+1 ssid length" step disabled, because that requires
support for Manager.GetService.

Change-Id: I852d984a3af92e2c18e4a6e8d1dd5e4714069fdc
Reviewed-on: http://gerrit.chromium.org/gerrit/7734
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_manager.h
de29fa8d95092f28548b5e4537a6c61e21ae760b 17-Sep-2011 mukesh agrawal <quiche@chromium.org> shill: tighten up constness of PropertyStore

BUG=chromium-os:20543
TEST=unittest

Change-Id: Ifa86f82a883b3c3ec61ce10f8d82564b9a036b04
Reviewed-on: http://gerrit.chromium.org/gerrit/7901
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_manager.h
3239932e4a0a92fec52d88860081cbbb003eabb0 01-Sep-2011 mukesh agrawal <quiche@chromium.org> shill: implement manager.RequestScan (for WiFi only)

BUG=chromium-os:19831
TEST=unittests, WiFiManager/000_SSID_Length_Limit

note that 000_SSID_Length_Limit does not pass yet,
because we don't do IP configuration yet. but it
does get scan results.

Change-Id: I8993b3c646eda705271d1f7ad7d7341c692ae06b
Reviewed-on: http://gerrit.chromium.org/gerrit/7407
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_manager.h
ef34f18b77b5e5f0c9f36f78b65513fcc7acb41e 26-Aug-2011 Darin Petkov <petkov@chromium.org> shill: Move remaining mock constructors/destructors to .cc.

Non-scientific experiment of 'FEATURES=test emerge-x86-mario -1 shill' shows
real time reduction from 77 seconds to 59 seconds.

BUG=chromium-os:19691
TEST=unit tests

Change-Id: Iba905587cce64648bebc69d03fe9ecb3a3a8b90e
Reviewed-on: http://gerrit.chromium.org/gerrit/6793
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_manager.h
03dba0bccc3a39cded5083212e56713a6d349e01 23-Aug-2011 Paul Stewart <pstew@chromium.org> shill: Start assigning service state

Service state is usually controlled by the associated Device. Devices
select a single Service to reflect current connection state. All other
Services remain in an idle or whatever Failure state they ended up with
at the end of their last attempt.

When Service state changes, the service notifies the Manager of its new
state. This will be used by the Manager to update service priority and
selection of default routes.

For unit-tests, add a "State" test for service_unittest which which
tests for state changes and up-calls to the Manager. Add
"SelectedDevice" test to device_unittest to ensure proper down-calls
to the service.

BUG=chromium-os:19523
TEST=New unit tests

Change-Id: Ic253cc1dd77821a74176346521aff5948ad59660
Reviewed-on: http://gerrit.chromium.org/gerrit/6495
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_manager.h
2ae797d040b7261a5619c750e07037566bcb542b 24-Aug-2011 Chris Masone <cmasone@chromium.org> Re-land "[shill] Provide a cmd line toggle between flimflam and shill storage dirs"

This is so that we can easily switch to (and away from) using
the flimflam profile dir (and user profile dirs) when we start shill.

BUG=chromium-os:17253
TEST=unit

Change-Id: I0264162665607bb180688428c4640e42383ae355
Reviewed-on: http://gerrit.chromium.org/gerrit/6568
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_manager.h
7156c923c9a9d2240ea9c62045337ac8c8f89e57 24-Aug-2011 Chris Masone <cmasone@chromium.org> Revert "[shill] Provide a cmd line toggle between flimflam and shill storage dirs"

This reverts commit 54c93e972563b713030a15ce3c1c1824800e317f

Change-Id: Id4bf4ee1e7e62efea5d116507d8b49d76a7a9556
Reviewed-on: http://gerrit.chromium.org/gerrit/6567
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_manager.h
6402e501258c9f64373dcd05271c6c7dd75e20bc 23-Aug-2011 Chris Masone <cmasone@chromium.org> [shill] Provide a cmd line toggle between flimflam and shill storage dirs

This is so that we can easily switch to (and away from) using
the flimflam profile dir (and user profile dirs) when we start shill.

BUG=chromium-os:17253
TEST=unit

Change-Id: I9352cf5c40a8f77bcda8cdc0b5912782b4e342ed
Reviewed-on: http://gerrit.chromium.org/gerrit/6454
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_manager.h
626719f89881a949d8b5a8fa808beb924496489f 19-Aug-2011 Chris Masone <cmasone@chromium.org> Re-land "[shill] Add hardware address to Device objects."

Forgot some headers...

BUG=chromium-os:17744
TEST=unit

This reverts commit 0fda552b0fec3498403336acb9e89dd7799cac74.

Change-Id: I1cd05e47d29bc7ea2a065cabf1d81dd37f74c0f8
Reviewed-on: http://gerrit.chromium.org/gerrit/6270
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_manager.h