History log of /system/connectivity/shill/mock_service.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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_service.h
8e60d61b13fedf9cb75f1d4f1762605375837d98 21-Aug-2015 Peter Qiu <zqiu@chromium.org> shill: include non-primary devices in the enumerated devices list

The devices are included in the enumerated devices list without being
persist to the profile storage.

This allows remote client to easily retrieve IP configurations for
such devices.

BUG=chromium:523416
TEST=USE=pppoe emerge-$BOARD shill

Change-Id: Ia6b5d225f75a8514102ca43e01f60a6decd293d1
Reviewed-on: https://chromium-review.googlesource.com/295042
Commit-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_service.h
009e22157969c35957a6d9a5d9783a833b15245e 04-Aug-2015 Ningyuan Wang <nywang@chromium.org> shill: remove Service::SaveToCurrentProfile.

There are only declartion, defination and corresponding mock service of
Service::SaveToCurrentProfile. It is unused, so I remove it.

BUG=chromium:457352
TEST=Unit tests

Change-Id: I886ac7b6305e6481046ca77c10d279589fae02e9
Reviewed-on: https://chromium-review.googlesource.com/290465
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Ningyuan Wang <nywang@chromium.org>
Tested-by: Ningyuan Wang <nywang@chromium.org>
/system/connectivity/shill/mock_service.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_service.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_service.h
d01b5cc35185e022b66e08832e12fe7f59b5aa24 12-Mar-2015 Garret Kelly <gdk@chromium.org> shill: don't override static nameservers

When using the prepend_dns_servers flag, do not override nameservers if
they have been provided as part of the static configuration.

BUG=chrome-os-partner:37737
TEST=FEATURES=test emerge-amd64-generic shill

Change-Id: I1166052470931818f51074f26688b1a47847fd1a
Reviewed-on: https://chromium-review.googlesource.com/260504
Commit-Queue: Garret Kelly <gdk@chromium.org>
Tested-by: Garret Kelly <gdk@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_service.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_service.h
d49760e19d137f43df29e00265259d395b07994c 20-Sep-2014 Peter Qiu <zqiu@chromium.org> shill: Add support for disable/enable link monitoring through DBUS

This is a per-service setting, with default value set to false
(link monitoring enabled).

BUG=chromium:415367
TEST=unit tests, manual test
Manual Test
1. Get a chrome device, and turn up the logging with
"ff_debug +device" and "ff_debug --level -2".
2. Connect to "GoogleGuest", verify link monitor is enabled
(by default) by examing log file "/var/log/net.log" for following
message "Link Monitor starting".
3. Disable link monitor for "GoogleGuest" with command
"/usr/local/lib/flimflam/test/set-service-property GoogleGuest
LinkMonitorDisable true"
4. Connect to a different network, then connect back to "GoogleGuest".
Verify link monitor is disabled by examing log file
"/var/log/net.log" for following message
"Link Monitor is disabled for the selected service".
CQ-DEPEND=CL:219029

Change-Id: I83aabe035f66eeaa9547a486d4677c7292247561
Reviewed-on: https://chromium-review.googlesource.com/219117
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/mock_service.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_service.h
9b83c897f8e197ff7846e4fe7cec1d83d54e7b7b 10-Aug-2014 Peter Qiu <zqiu@chromium.org> shill: Export portal detection failure phase and status

When portal detection fails, report the failure phase and status
to the given Service. The Chrome can then retrieve this information from
Service property through DBUS, and inform the user appropriately.

BUG=chromium:399486
TEST=unit tests
CQ-DEPEND=CL:211763

Change-Id: I27ec85bc6bf73162b1214d35bc84084588c3a855
Reviewed-on: https://chromium-review.googlesource.com/211745
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/mock_service.h
0d06119be3224788ba1aa65ed24bc8e46b56b949 08-Jul-2014 Samuel Tan <samueltan@chromium.org> shill: add disconnect reason to log messages

Allow logging of function/reason for triggering disconnect.

BUG=chromium:227295
TEST=unit tests

Change-Id: I92ea3cca664c060bc02bbb8d50d303ce11d1a7de
Reviewed-on: https://chromium-review.googlesource.com/207020
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/mock_service.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_service.h
a89154bfedfd8872242083ffe4f084fdc774c078 24-May-2014 Peter Qiu <zqiu@chromium.org> shill: Support of DNS auto fallback

Automatically switch to fallback DNS server when broken DNS setting
is detected. This feature is disabled by default (due to property
defaulting to "false").

BUG=chromium:377056
TEST=unit tests, manual test
1. Manually update the code to allow DNS auto fallback.
2. Connect a chrome device to GoogleGuest.
3. Update the name servers setting to an invalid
DNS server "192.168.1.1"
4. Browse to "chrome://net-internals/#dns", and verify
the nameserver changed from "192.168.1.1" to Google's
DNS servers "8.8.8.8" and "8.8.4.4" within a minute.
CQ-DEPEND=CL:201412

Change-Id: I31dbaf715b5b11dd2f736e0664ee432e55bdeeb9
Reviewed-on: https://chromium-review.googlesource.com/207155
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_service.h
c45688bb3881f0c2216e6ec0e19ebda0be33e871 03-Jul-2014 Ben Chan <benchan@chromium.org> shill: Fix header guards to conform to coding style.

BUG=chromium:385849
TEST=Tested the following:
1. `USE='cellular wimax' FEATURES=test emerge-$BOARD platform2`
2. `cpplint.py --filter=-build/include_order shill/*.h` reports no
'build/header_guard' issue.

Change-Id: I1a3972a1f88e5001550eccd561633bd4e5c5faba
Reviewed-on: https://chromium-review.googlesource.com/206680
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/mock_service.h
7b5cee92f29791ebd3867b858fc1d301b39d26bd 25-Jun-2014 Paul Stewart <pstew@chromium.org> shill: Service: Remove DHCP minimal config code

This code does not end up being very useful (as evidenced by
UMA stats) and can reduce functionality in infrastructures
that require the use of some DHCP options.

This reverts commit 26a997b04bd65a6252987ea6fdcbbb70785d1d8d,
except for the cleanup of "*service" in unit tests and the
setting of SelectedService in ethernet.cc.

BUG=chromium:360452
TEST=Unit tests

Change-Id: Ib2c49fc5639452bfffd5cd03c1bb69e32568cc60
Reviewed-on: https://chromium-review.googlesource.com/205588
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_service.h
2eee613868307d04f9e5a0efbc8c72a7ffcd90bb 09-May-2014 Paul Stewart <pstew@chromium.org> shill: Manager: Clear all explicit disconnections

When the profile stack changes, remove all state related to
explicit disconnections. Since this state is related to the
logged in user, it is reasonable to expect that this state
should be removed even for services which aren't switching
profiles as a result.

BUG=chromium:371771
TEST=Unit tests

Change-Id: I773c68e5e38ab4fda92a0532beb046188465dc13
Reviewed-on: https://chromium-review.googlesource.com/199147
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_service.h
1cf7eb8dcb037d45b23ed85b777c227b7ab39069 04-Dec-2013 Paul Stewart <pstew@chromium.org> shill: PropertyAccessor: Create a const ReadOnly accessor

Provide a means to create an Accessor child class which can be
constructed with a const method. This is useful for read-only
properties which won't modify the called object's state. Make
use of this new feature by transforming the HelpRegisterConst*
in the Service object to take const methods and to register
read only accessors. The bulk of this CL is the change to all
the subclasses to constify methods which were only non-const
due to this issue.

BUG=chromium:325603
TEST=Unit test

Change-Id: I79c6211e9e0907869c2885937dff58c1faf2ca4a
Reviewed-on: https://chromium-review.googlesource.com/178698
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_service.h
dded00702cf33f15b1f2eaafbbaccc13231e08d8 24-Oct-2013 Paul Stewart <pstew@chromium.org> shill: Service: Track DHCP failures and inform ShouldUseMinimalDHCPConfig()

The default DHCP configuration used by ChromeOS requests a
large number of options in order to support features like
Web Proxy Auto-Discovery. Unfortunately this practice
sometimes runs afoul of issues in some network topologies.
In some networks, a large number of option values in the
DHCP response can cause MTU problems with proxies or other
network elements. This may prevent the reply from being
forwarded back to the client.

Although the problem may not lie with the outgoing request,
it may be possible to mitigate this issue by modifying these
requests. This CL provides a means for the Service to track
such failures and infer from a series of experiments whether
it is likely to be due to an MTU issue. To do this, the
Device informs the selected Service of each DHCP success and
failure, and queries the Service before starting each DHCP
session to inquire whether it should request an extensive or
minimal DHCP options from the server.

In order to detect and respond to such issues, this CL
maintains state in the Service about how DHCP has been
performing. If there have been a spate of recent DHCP
failures, we should suspect that this may be due to the
number of options we are requesting from the DHCP server.

We should confirm that this is in fact the issue by testing
whether a request for a smaller response succeeds. If this
request succeeds we can consider the hunch confirmed and the
client should switch to using small requests for some period
of time. If our test request fails, we can assume for now
that the problem isn't realated to a DHCP response size and
return to the default behavior.

If we have confirmed our hunch earlier and the time period
expires, we should try again to use a more comprehensive
DHCP request. If this succeeds, we can assume either the
network infrastructure has repaired itself or that the
previous hunch was in error, and return to the "not
detected" state. If it fails, we should confirm whether
this is the identical problem to before by re-testing a
small DHCP request size. Since the "confirmed" state did
not pay attention to DHCP failures, it's possible that they
have been failing across the board as of late. If indeed
both large and small DHCP responses fail to reach us, we
should put off our re-test until we start receiving DHCP
replies again.

The state machine implemented for DHCP failures is
illustrated in state machine diagram below (all events not
shown do not cause a state change):

[ Not Detected (send full request) ] <------------
| ^ |
| | |
n * failure failure |
| | |
V | |
[ Suspected (send minimal request) ] |
| |
success |
| |
V |
[ Confirmed (send minimal request) ] |
^ | |
| hold timer elapsed |
| | |
success V |
| [ Retest Full Request ] ----success--/
| | ^
| failure |
| | |
| V |
[ Retest Minimal Request ] |
| success
failure |
| |
V |
[ Retest With No Reply (send minimal requests) ]

The Service only persists two states: "Not Detected" and
"Confirmed". This is done via the presence or absence of
the stored "LastDHCPOptionFailure" property, which is the
time the system last entered the "Confirmed" state. A
third state, "Reset Full Request" is implicitly persisted
if this timestamp is old enough that the hold timer has
expired.

BUG=chromium:297607
TEST=Unit tests

Change-Id: I1ee83debf4d11f25678fe3586574ec04f254a83f
Reviewed-on: https://chromium-review.googlesource.com/174634
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_service.h
bebf1b8bce52b88c2cc2d93200b9405f9c19cf21 24-Apr-2013 mukesh agrawal <quiche@chromium.org> shill: make setting a property to its current value a no-op

Before this change, setting the EAP authentication properties
on a WiFiService would cause the connection to be dropped.
The connection would drop even if the new values were the same
as the old.

With this change, the connection is only dropped if the new
values differ from the old.

Overview of changes:
- AccessorInterface: have property setters return a bool (rather
than void). Setters should return true to indicate the value was
changed, and false otherwise.
- PropertyAccessor and derived classes:
- Implement the new AccessorInterface.
- Add tests that we implement the new AccessorInterface.
- Custom property setters (various classes):
- Update existing custom setters to return true if the value was
changed, and false otherwise.
- Add tests that custom setters implement the desired behavior.
- DBusAdaptor
- Change SetProperty to propagate the return value of
PropertyStore's setters, rather than Error::IsSuccess().
- In combination with other changes, this means
DBusAdaptor::SetProperty now returns false if the new value is
the same as the old.
- This also suppresses some spurious change notifications from
IPConfig, Manager, and Profile objects.
- Add tests that DBusAdaptor::SetProperty implements the desired
behavior.
- PropertyStore
- Add a change callback. This optional argument to the ctor is
invoked if a setter or clearer modified its property. This
is so that classes don't have to depend on their RPC adaptors
to inform them of a change. (See changes in Service.)
- Have setters pass through the return value of the Accessor,
rather than returning Error::IsSuccess(). In
combination with other changes, this means that setters
now returns false if the new value is the same as the old.
- Add tests that PropertyStore invokes the change callback
appropriately.
- ClearPropertyNonexistent, SetPropertyNonexistent: no callback
- ClearProperty: callback
- SetProperty: callback if and only if property changed
- Service
- Register OnPropertyChanged with PropertyStore, instead of relying
on a callback from ServiceDBusAdaptor. Two reasons for the change:
1) The RPC adaptors should be as trivial as possible, and
2) We can't test code in the RPC adaptors.
3) If we can't test code in the RPC adaptors, go to 1.
- ServiceDBusAdaptor: remove OnPropertyChange callback in SetProperty.
See Service for the rationale.
- Update existing SetProperty tests (various classes)
We now use values that differ from the current value of the property.
This ensures that the setter returns true.
- WiFiServiceTest: add a case to test that EAP authentication property
changes caused cached credentials to be cleared appropriately. This is
redundant given some of the other tests. But given that this was the
original problem in the bug, it seems worth testing specifically.
- HACKING: add some guidelines for what to do when adding properties.

While there:
- Change some HelpRegister... functions to HelpRegisterConst...
- Update some tests to check error.is_set() before reading
error.name(). This avoids a stray pointer dereference.
- Add SetStringmapsProperty to PropertyStore. This is needed because
PropertyStoreTypedTest now tests setters.
- Remove duplicate kAutoConnectProperty test case in ServiceTest.SetProperty
- Remove unused local in WiFiServiceTest.SetPassphraseRemovedCachedCredentials
- Remove unused method Device::HelpRegisterDerivedStrings
- Remove KeyValueStore from the set of types exercised by
PropertyStoreTypedTest. We only use KeyValueStore for const
properties, and PropertyStoreTypedTest tests setting and
clearing.
- Add PropertyChanges test to EthernetEapServiceTest.
BUG=chromium:233681
TEST=new unit tests

Change-Id: I9bdd89fbe6f19101dfcd5f126f2ba9c81533ff97
Reviewed-on: https://gerrit.chromium.org/gerrit/49733
Commit-Queue: mukesh agrawal <quiche@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_service.h
967eaebb63aac3b9679dc4b2dca0565292e3af03 26-Apr-2013 Paul Stewart <pstew@chromium.org> shill: Service: Return profile entries that can configure

Add a Service DBus method that can provide the set of
(profile, entry) pairs that contain configuration for the
Service. This can be used to figure out what profile
entries other than the one currently associated with the
service contain configuration entries relevant to this
service.

BUG=chromium:235674
TEST=Unit tests + manual: call GetLoadableProfileEntries
on a remembered service from python returns something like:
dbus.Dictionary({dbus.ObjectPath('/profile/default'): dbus.String(u'wifi_any_beef_managed_psk')}, signature=dbus.Signature('os'))

Change-Id: Id94f98b98e5cb5c98c32c765e707125f53dae2d9
Reviewed-on: https://gerrit.chromium.org/gerrit/49279
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_service.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_service.h
dc7b8447aa220fae51b73fd8610cbfed14ed57fc 27-Sep-2012 mukesh agrawal <quiche@chromium.org> shill: improve service logging

- In Service::Connect: log the unique name of the service
we're connecting to, as well as the function that triggered
the connect.
- In *Service: ensure all derived classes call into the
base class' Connect method.
- In Service::ThrottleFutureAutoConnects: clarify log message
- In Service::Disconnect: log the unique_name of the service
- In WiFi::BSSRemovedTask: log the affected service
- In WiFiService::Connect: don't attempt a connection if the
security parameter was unrecognized.
- In Service ctor: LogSSID of FriendlyName at INFO.

BUG=chromium:220496
TEST=unit tests

Change-Id: If254d081c7426dc6adff5aeab2c99122f6742efe
Reviewed-on: https://gerrit.chromium.org/gerrit/47510
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_service.h
7a20aa492230e9e969c8853ad684be0c5b224479 17-Jan-2013 Paul Stewart <pstew@chromium.org> shill: Manager: Implement FindMatchingService

Find an in-memory Service given a dictionary of attributes. The
Manager will return the first Service that matches these attributes.
While here, fix an old bug where Service::Configure enumerated the
input uint32 arguments with the intention of configuring the
"Priority" property, except that "Priority" is an int32.

BUG=chromium-os:34525
TEST=Unit tests, manual using python script to call GetMatchingService
with a known service name

Change-Id: Ib093b257c4217796ae5aa13bf090c1234df70c7d
Reviewed-on: https://gerrit.chromium.org/gerrit/41554
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_service.h
457728b3eeb2d67c980e0d20675f0a0f750903e1 09-Jan-2013 Darin Petkov <petkov@chromium.org> shill: Log service's unique name rather than friendly name.

This way we consistently identify the service throughout shill's logs
as well as alleviate PII concerns due to SSIDs leaking into
logs. Renamed Service::UniqueName() to Service::unique_name(), per
style. Made Service::friendly_name() protected to limit its accidental
use.

BUG=chromium-os:37679
TEST=unit tests, tested on device and inspected logs

Change-Id: Idcdba75875a9d10cda51b714730ef633876481c6
Reviewed-on: https://gerrit.chromium.org/gerrit/40926
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_service.h
df3c0a897bc74cb3a9800332b8359a364ca2f753 10-Nov-2012 Paul Stewart <pstew@chromium.org> shill: Service: Sort services based on dependency

If one connected service depends on another for connectivity,
it should be sorted first, overriding technology and priority
ordering. We evaluate this by using the "Lower binder" property
of the service's connection, which is currently the case for
VPNs connections to indicate what underlying link is used. It does
not make sense for a VPN service to be ranked at a lower priority
than its underlying technology, since the fact that it is connected
implies that the VPN is meant to be applied to it.

BUG=chromium-os:36231
TEST=Unit tests.

Change-Id: I74ee5d1213141db2c6a124ed44717c848a0e2701
Reviewed-on: https://gerrit.chromium.org/gerrit/37774
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_service.h
bfb825563ecdf282162dfb4e43ded89c99b0fbb5 25-Oct-2012 Paul Stewart <pstew@chromium.org> shill: Properly return and emit WatchedServices property

Instead of copying the "Services" property, properly return a list
of services that are in a non-"Idle/Failure/Unknown" state. Also
emit this as a PropertyChange signal in Manager::SortServices.
Also fix a long-standing bug where EnumerateAvailableServices returned
invisble servces.

While we're here, add unit tests that assert that when a Service
state is changed, this eventually causes the above property changes
to be emitted.

BUG=chromium-os:35700,chromium-os:35701
TEST=Unit tests

Change-Id: Ifc3487f1e4856372d88da428e10d0fb40f7efd3e
Reviewed-on: https://gerrit.chromium.org/gerrit/36505
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_service.h
abd3b50b0c3b6cde124892134091328d2b6dd5e3 26-Sep-2012 Christopher Wiley <wiley@chromium.org> shill: Disconnect a service on DHCP lease failure

Fix a bug where failing to acquire a DHCP lease would result in
permanent device offline state. This happens because marking a service
as disconnected doesn't work through any of the logic to trigger an
actual disconnect from the actually fully associated service. For
instance, in WiFi's case, this leaves the service associated in the
eye's of wifi.cc, but in some state outside of the typical state machine
for connecting services. Thus shill does nothing, leaving users to
wonder.

device.cc should ask the service to disconnect itself rather than
changing its state unbeknownst to the service. However, there does not
seem to be a path to disconnect a service without marking the disconnect
as user initiated. Create such a path. I've gone over the callsites
and looked for places where they might assume that the service won't be
autoconnected again, and not found problems on inspection. At worst,
we'll just be auto connecting some services we didn't used to. In some
places, like cellular, it seems like we Disconnect when we find we are
roaming, which doesn't seem like a permanent/non autoconnectable
offense.

TEST=Unit tests
BUG=chromium-os:32279

Change-Id: I34b60f3c009c276efac5d7e51495dc5681bf4b5f
Reviewed-on: https://gerrit.chromium.org/gerrit/34195
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
/system/connectivity/shill/mock_service.h
053fa82aad4ce9bc99ab3dc278d4e12ab0be14c0 05-Jun-2012 Joshua Kroll <joshkroll@chromium.org> Remove TechnologyIs method from the Service class and its subclasses. This is step 1 in removing the method altogether.

BUG=chromium-os:29696
TEST=Ran the shill unit tests.

Change-Id: I793cddee870afbdae778b1ea0527ad2398481411
Reviewed-on: https://gerrit.chromium.org/gerrit/24524
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Joshua Kroll <joshkroll@chromium.org>
Commit-Ready: Joshua Kroll <joshkroll@chromium.org>
/system/connectivity/shill/mock_service.h
5eb0542cb67358d9030367498a4ad741fc42af4f 11-May-2012 Darin Petkov <petkov@chromium.org> shill: vpn: Disconnect VPN service when underlying connection disconnects.

BUG=chromium-os:30737,chromium-os:30774
TEST=unit tests, tested on device with 000OpenVPNGenesis

Change-Id: Ib350cb23edd3e68b3bd5390378789a6b60857b80
Reviewed-on: https://gerrit.chromium.org/gerrit/22461
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_service.h
d93615e9687b3473ede06a8503b6d23aacd0c603 27-Apr-2012 Gary Morain <gmorain@chromium.org> shill: Save ephemeral profile when GSM cellular network connects

Normally, a service is saved when an IP address is
assigned to a network. However, in the case of GSM, when the
network connects (but before an IP address is assigned), the
APN needs to be saved. This was causing crashes because the
save function was being performed on the ephemeral profile,
which does not have a backing store. This change saves the
service to the current profile (which has a backing store).

BUG=chromium-os:29981
TEST=manual. Log in. Ensure there is no cellular network in
~chronos/shill/shill.profile. Attempt to connect to the
a GSM (T-Mobile) network. Verify that shill does not crash
and that the cellular network has an entry in
~chronos/shill/shill.profile.

Change-Id: Ib14c80cc08598841629a3a1a3e96739b30297aa6
Reviewed-on: https://gerrit.chromium.org/gerrit/21350
Commit-Ready: Gary Morain <gmorain@chromium.org>
Reviewed-by: Gary Morain <gmorain@chromium.org>
Tested-by: Gary Morain <gmorain@chromium.org>
/system/connectivity/shill/mock_service.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_service.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_service.h
65512e10f0534c390b2ef027cc64f660658db6c0 27-Mar-2012 Paul Stewart <pstew@chromium.org> shill: vpn: Destroy Unload()ed VPN services

BUG=chromium-os:28481
TEST=New unit test.

Change-Id: I222441d3ff5cbc7d97d97f7fdd2917eee5921721
Reviewed-on: https://gerrit.chromium.org/gerrit/19143
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_service.h
cb59fed9326dc91c93b817dcd9eaca363d8313fe 22-Mar-2012 Paul Stewart <pstew@chromium.org> shill: Implement Service::Configure

This applies the properties of a KeyValueStore to a Service. It
does so by calling accessors in the Service's PropertyStore with
each value in the KeyValueStore. Certain parameters are ommitted
at the request of the Service if they were ostensibly already handled
in the GetService or ConfigureService call that started this Confiugre.

BUG=chromium-os:22800
TEST=New unit tests.

Change-Id: I69eedcdee03fa0682ff7821553bb6c7d76e6a50e
Reviewed-on: https://gerrit.chromium.org/gerrit/18823
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_service.h
ce4ec19216ccd15ae349ee42498657afc2c75bd8 14-Mar-2012 Paul Stewart <pstew@chromium.org> shill: vpn: Pin route on default connection

If "trusted_ip" and "gateway" are both specified in the OpenVPN
config, pin a host route to the VPN server. As a bonus change,
add a MockService::connection() and supply a default value so
Service does not need to befriend so many tests.

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

Change-Id: I010fca6336b227c4086efb0481dcb8052245213e
Reviewed-on: https://gerrit.chromium.org/gerrit/18155
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_service.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_service.h
d4e9e552fb39c5c6f384b5b1bb2369415971ea39 17-Feb-2012 Thieu Le <thieule@chromium.org> shill: Persists updated favorite setting.

BUG=chromium-os:26373
TEST=Unit tests, manually connect to GoogleGuest, reboot, suspend/resume
and ensure GoogleGuest gets reconnected, network_WiFiManager

Change-Id: Ib35c281fc3f1ece8a469cd737fe2dfdb5c1a3dc8
Reviewed-on: https://gerrit.chromium.org/gerrit/16105
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_service.h
67370f6ebe6757f55249f6e87f4a96922d0c4518 15-Feb-2012 Thieu Le <thieule@chromium.org> shill: Add code to track disconnect metric.

BUG=chromium-os:25958
TEST=Unit tests, network_WiFiManager

Change-Id: I4cee4d4380dc822c9bed61e006df304c6c6fbdde
Reviewed-on: https://gerrit.chromium.org/gerrit/15850
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_service.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_service.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_service.h
8a3188dbc04245c17a4729d16a632547ce4bf585 01-Dec-2011 mukesh agrawal <quiche@chromium.org> shill: improve conformance with WiFiRoaming tests

This patch makes several changes to get shill passing more of
the WiFiRoaming suite. shill now passes 13 of the 18 tests.

Overview of changes:
- Clean up Services when their last Endpoint disappers.
- Make a new WiFi connection request pre-empt an existing one.
- Make Device::SelectService no-op if new service is same as old.
(part of resolving crosbug.com/23703)
- Move auto-connect logic to its own function, and run that function
in a deferred task (partly resolves crosbug.com/24276)
- Add a non-deferred variant of Service::Connect (part of resolving
crosbug.com/24276).
- Have service sort order reflect whether or not services are
connecting, failed, connectable, and configured for auto-connect.

BUG=chromium-os:24276,chromium-os:23223,chromium-os:22943,chromium-os:23703
TEST=WiFiRoaming, unit tests, manual

Manual testing: per https://gerrit.chromium.org/gerrit/12963

Collateral changes:
- updated TESTING
- added crosbug.com/24461 for problem with autotest and profiles
- declared some functions as const
- removed some useless comments

Change-Id: I36d6eb7108a377dbf409d3e5673deffb85c0633e
Reviewed-on: https://gerrit.chromium.org/gerrit/12687
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_service.h
c1dec4d5cad7c6ee2cd8dbc4f47e4d30403dcca1 09-Dec-2011 Paul Stewart <pstew@chromium.org> shill: Assign "Default" status to the best connection

Set the highest-ranked connection to be the "Default".
As a result, the highest priority default route will
move with the highest-ranked connection in the service
list.

Bonus changes:
* Service now formally holds a reference to the Connection
object, so call a "SetConnection" method instead of a
Create/Destroy of the HTTPProxy.
* Actually start the routing table service, and do a couple
minor fixes due to how the kernel actually accepts metric
changes.

BUG=chromium-os:7607,chromium-os:23993
TEST=New Unit Test + Manual (watch routes while inserting
USB-Ethernet on a machine connected to WiFi)

Change-Id: Iddf1ed766238d9e8adc97bb54fc12b527f86239f
Reviewed-on: https://gerrit.chromium.org/gerrit/12685
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/mock_service.h
be5f5b341ba4b85d45ffb6c0430ef5ab84c7b961 08-Dec-2011 Paul Stewart <pstew@chromium.org> shill: Create HTTPProxy for connected services

When an a Connection is created on a Device, ask the
Service to create an HTTPProxy. The Service will
then expose the port number for the proxy as an RPC
property. Whenever the Service is unselected by
the Device, or the connection terminates, ask the
Service to destroy the proxy.

The Service owns the HTTPProxy so that it can report
the proxy port in its properties.

BUG=chromium-os:21664
TEST=Add expectations for DestroyProxy in unit tests.
Manual: Ensure that "list-services" shows the proxy
port on a successful connection, and "curl -x" to
this proxy succeeds.

Change-Id: I24a1f7a23c0fc4577b48aed7bec370fba6edc342
Reviewed-on: https://gerrit.chromium.org/gerrit/12625
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_service.h
0ed0f2e84c366a90bca4a824b0adf18e9f243369 05-Dec-2011 mukesh agrawal <quiche@chromium.org> shill: implement Service.Disconnect (for WiFiService only)

BUG=chromium-os:23774,chromium-os:23662
TEST=new unit tests, some autotests

autotests run:
- PASS network_WiFiSecMat.031CheckHidden_WPA
- PASS network_WiFiSecMat.032CheckHidden_RSN

Change-Id: I0c2dc8c9888caca793f0dfe5a55c0df2a4b10c79
Reviewed-on: https://gerrit.chromium.org/gerrit/12498
Commit-Ready: mukesh agrawal <quiche@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_service.h
ed2c28c6e3c0bc2f9d8832fee083868304178f08 30-Nov-2011 Hristo Stefanov <hstefanov@chromium.org> shill: cleaning glint warnings

The typical warnings addressed include a lot of missing includes
and missing argument names. About 30 files edited in total.

Cpplint was the actual lint being run.

BUG=chromium-os:15873
TEST=Ran all the unit tests.

Change-Id: I64a8b76cd8f94c7729743b76b41a956f1b7370cf
Reviewed-on: https://gerrit.chromium.org/gerrit/12253
Commit-Ready: Hristo Stefanov <hstefanov@chromium.org>
Reviewed-by: Hristo Stefanov <hstefanov@chromium.org>
Tested-by: Hristo Stefanov <hstefanov@chromium.org>
/system/connectivity/shill/mock_service.h
435de2cd55a95836381b53acbce8cbbad98ec04d 18-Nov-2011 Gaurav Shah <gauravsh@chromium.org> Implement {Available|Connected|Enabled}Technolgies and DefaultTechnology

This is Part 1 of a series of changes required for the Manager to generate
the right set of DBus events allowing shill to properly tell Chrome about
connectivity.

Some other side-effects in the change (needed to implement the above):
- Emit these manager properties over DBus everytime we re-sort the Service
vector.
- Add a technology data member to Device, this allows easy enumeration of
technologies.
- Add interface for getting a handle to the selected service on a device.
- Map connected state to online instead of ready state. This is needed for
so that Chrome doesn't wait for the portal detection code to switch the
state from ready->online.
- Default set the ethernet service as connectable.

BUG=chromium-os:14887
TEST=1) manual test to verify shill properly configures the ethernet
device and Chrome correctly detects that.
2) new unit tests

Change-Id: Ib10f2f0836f8d4aacaad1491f58ed9b3b5d37e7d
Reviewed-on: https://gerrit.chromium.org/gerrit/12019
Tested-by: Gaurav Shah <gauravsh@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_service.h
1b7a616197af7ff753dbe7614a8e207b1e10ac1a 09-Nov-2011 Gaurav Shah <gauravsh@chromium.org> shill: Implement write-only properties

Certain properties (e.g. WIFI Passphrase) are write only and must
not be returned when Service.GetProperties() is called over D-Bus.

This CL implements WriteOnlyProperties, a write-only analog of the
read-only ConstProperties.

Also add a ReadablePropertyConstIterator which only returns the
readable properties. Switch over DBus adaptor and PropertyStore
to use that.

BUG=chromium-os:21196
TEST=Added 2 new unittests.

Change-Id: I52815cc395650e0b49e1acac8d4954deeebcee5d
Reviewed-on: https://gerrit.chromium.org/gerrit/11402
Commit-Ready: Gaurav Shah <gauravsh@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Tested-by: Gaurav Shah <gauravsh@chromium.org>
/system/connectivity/shill/mock_service.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_service.h
22aa71b334c716f20999c2e08e5b797207b0afae 16-Sep-2011 Paul Stewart <pstew@chromium.org> shill: Implement service sorting

Sort the list of Services for presentation to
RPC callers, essentially copying the current flimflam
sorting criteria. Introduce the TechnologyOrder to
the Manager.

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

Change-Id: I766b2297ba3170a7a6ab5adfe68425a8011be4fb
Reviewed-on: http://gerrit.chromium.org/gerrit/8205
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_service.h
9d779936d8f8c2d74b30883e2a2622c4207fe797 26-Aug-2011 Chris Masone <cmasone@chromium.org> [shill] Add code for persisting profiles and services to disk.

BUG=chromium-os:17253
TEST=unit

Change-Id: Ic6dbbcb10543da3f4615cb305a77f6b9b301e8bc
Reviewed-on: http://gerrit.chromium.org/gerrit/7633
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_service.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_service.h
4d6d941563c2c394e5e650d7ee2d24183fff87b3 24-Aug-2011 Darin Petkov <petkov@chromium.org> shill: Propagate Cellular errors to the DBus caller.

BUG=chromium-os:19547
TEST=unit tests

Change-Id: Ieda54d89d977a48718302c6e1e1c7927e3cf2dba
Reviewed-on: http://gerrit.chromium.org/gerrit/6603
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_service.h
34af218abe6a99144ffe01332ce36fbad94f2628 22-Aug-2011 Chris Masone <cmasone@chromium.org> [shill] Use flimflam-esque storage ids

Devices:
device_<MAC>

IPConfig:
ipconfig_<MAC of associated device>_0

Services:
ethernet_<MAC of associated device>
wifi_<MAC of associated device>_<SSID>_<mode>_<security>
cellular_<MAC of associated device>_<Network_name>

BUG=chromium-os:17744
TEST=unit

Change-Id: Ibf061f9c184e7c86f5afcf97d48e321fc74bde1c
Reviewed-on: http://gerrit.chromium.org/gerrit/6412
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_service.h
51a7e939ed0d260392a40bc5d58e6d2651c6ddc0 28-Jul-2011 mukesh agrawal <quiche@chromium.org> shill: push service naming down into Service class (instead of being
handled in each subclass)

BUG=chromium-os:17974
TEST=FEATURES="test nostrip noclean" emerge-x86-generic shill, and run on device

Change-Id: Ic251fec9c76fec1a4c3aa5ac8d0aba4c664e029d
Reviewed-on: http://gerrit.chromium.org/gerrit/4927
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/mock_service.h
6791a43add38926966bd420e89541717fb2cb2b5 12-Jul-2011 Chris Masone <cmasone@chromium.org> [shill] Enable Profile objects to manage a list of Services to persist.

The Manager will hang on to a list of active services. They will be sorted,
someday, in an order that makes sense. Every service will be associated with
a Profile, though it may the an ephemeral profile that won't persist state to
disk. Profiles will maintain a map of service name to service references to
track the services whose state they persist to disk. Services may move between
Profiles, and will certainly need to be bound to one after they are registered
with the Manager, so support for this is provided as well.

BUG=chromium-os:17436
TEST=unit tests

Change-Id: Id43a0e1d97302b6f574bd2213d4f3d176bb5223f
Reviewed-on: http://gerrit.chromium.org/gerrit/4033
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_service.h
b2e326bf37654683cdc8c0cbbab29d1af7910af8 12-Jul-2011 Chris Masone <cmasone@chromium.org> Re-land "[shill] Get rid of Entry as a first-class citizen""

This reverts commit 7c1ab1cb74bf6397c67e1cdc825043a93c4bce33.

Also, fixes some compile problems that only repro with debug flags
and that cause runtime dbus errors with the new version of libdbus

BUG=chromium-os:17436
TEST=unit tests

Change-Id: I479308e684b802f167788daeaf4ec39d0b63ee17
Reviewed-on: http://gerrit.chromium.org/gerrit/3961
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_service.h
7c1ab1cb74bf6397c67e1cdc825043a93c4bce33 12-Jul-2011 Chris Masone <cmasone@chromium.org> Revert "[shill] Get rid of Entry as a first-class citizen"

This reverts commit 7c982eade99f01cb6b8719ed4d385c0ec6b50f75

Change-Id: I554c12003c18f09ac7f736e98b9ecd63829100e9
Reviewed-on: http://gerrit.chromium.org/gerrit/3957
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_service.h
9c9e8fb31c9b39fb2832e0804d5c71b3ef685427 12-Jul-2011 Chris Masone <cmasone@chromium.org> [shill] Get rid of Entry as a first-class citizen

Entry was a bad idea. Instead, merge that stuff back into Service and
make Profile objects just have a list of Services. Live Services will
be registered with Manager; ones that exist only within a Profile will
have to be accessed by querying the Profile over DBus, just like
today.

BUG=chromium-os:17436
TEST=unit tests

Change-Id: Id07d762925b252219aa79340931e34b87f10007e
Reviewed-on: http://gerrit.chromium.org/gerrit/3951
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_service.h
7aa5f90848b530999d8b6788ecb40aa30871c7ae 11-Jul-2011 Chris Masone <cmasone@chromium.org> [shill] Back property storage in Service objects with Entry objects

Much of Shill Service state is persisted to disk, by creating an Entry
in a Profile. We should store this info just once, so that we don't
have to worry about keeping multiple data stores in sync. This is a
first step in that direction.

BUG=chromium-os:17436
TEST=unit tests

Change-Id: If94db2a38a7d79c56e2c746b2f069cfd7ab4bf65
Reviewed-on: http://gerrit.chromium.org/gerrit/3876
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_service.h
95207da4b896bd0a4186163f6f9ebda044a5a7b9 30-Jun-2011 Chris Masone <cmasone@chromium.org> [shill] Enable objects to query an opaque RPC-system ID from Adaptors

This is needed for some properties. For example Service has a property called Device, which is expected
to return a (in the current impl) a DBus path for the associated Device object.

BUG=chromium-os:16343
TEST=unit tests

Change-Id: I8bd32ab483331efabbfee05dbdeba045c7cb20da
Reviewed-on: http://gerrit.chromium.org/gerrit/3417
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_service.h
2b10554b6c736f3421102d483b74b70bb82f997c 22-Jun-2011 Chris Masone <cmasone@chromium.org> [shill] Use ref-counted pointers more, break unneeded header deps

1) Replace more bare pointers with ref-counted pointers.
2) Move declarations of *RefPtr into a header file with fwd-declared classes
3) Make class headers include that, move inclusion of real headers to .cc files.

BUG=None
TEST=unit tests

Change-Id: I8208c82377c6dbefe6903561a503b8db63f063d6
Reviewed-on: http://gerrit.chromium.org/gerrit/3177
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_service.h
3bd3c8c33917221d1074f1aa19272e45c0ce2793 13-Jun-2011 Chris Masone <cmasone@chromium.org> [shill] Add support for setting properties.

This CL adds a framework for supporting RPC-exposed properties in Shill.
It also plumbs the code for setting properties on Service objects to prove
the approach. Device and Manager settings will follow.

BUG=chromium-os:16343
TEST=build shill, run unit tests.

Change-Id: I55869453d6039e688f1a49be9dfb1ba1315efe0a
Reviewed-on: http://gerrit.chromium.org/gerrit/3004
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_service.h
c1e50412f45518e23d51ba8bb8694c366943d945 07-Jun-2011 Chris Masone <cmasone@chromium.org> [shill] Start replacing bare pointers with scoped_refptrs where appropriate

BUG=chromium-os:16259
TEST=unit tests

Change-Id: I5e1531b726bbb40917d25dc3ae44da9a6a420e00
Reviewed-on: http://gerrit.chromium.org/gerrit/2236
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/mock_service.h
a82b7111f2b0515a8d79e6e8034836a5d1342468 26-May-2011 Chris Masone <cmasone@chromium.org> [shill] device, service objects need to register unique paths

BUG=chromium-os:15752
TEST=unit tests

Change-Id: I54a5b1fb3e156fb62ffff0bc49a411135c01a1d0
Reviewed-on: http://gerrit.chromium.org/gerrit/1897
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/mock_service.h
9be4a9d1e87d64f850f15061123b2a4334477fa2 17-May-2011 Chris Masone <cmasone@chromium.org> [shill] the beginnings of the data model

Flesh out Manager a little, to add vectors of Device* and Service* and ways to look through them.

BUG=chromium-os:15347
TEST=unit tests

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