History log of /system/connectivity/shill/shill_daemon.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
59b397b6ac7fa39edf26d8e0ff2ecac6ac8ebc5b 20-Jan-2016 Samuel Tan <samueltan@google.com> shill: rename ChromeosDaemon to DaemonTask

Rename ChromeosDaemon to DaemonTask since this class contains
all the logic for daemon-related tasks (e.g. start/stop,
init/shutdown). This will also prevent this class from being
confused with ShillDaemon.

BUG: 26653263
Change-Id: I9713203cb1f933163d7067a7ae982622bf5b17af
TEST: shill compiles and unit tests pass on Android.
TEST: shill compiles and unit tests pass on Chrome OS.
/system/connectivity/shill/shill_daemon.cc
60ea15d40a3ad77536e01f2bb780181aa9c3c084 20-Jan-2016 Samuel Tan <samueltan@google.com> shill: refactor ChromeosDaemon

Refactor ChromeosDaemon so that it no longer inherits
from brillo::Daemon. This is necessary to allow its unit
tests to run without the extra base::ExitManager inherited
from brillo::Daemon.

Do this by introducing a new ShillDaemon class, which inherits
the logic in ChromeosDaemon, and overrides brillo::Daemon
methods.

BUG: 26653263
Change-Id: Ia256bc540d261fb183aae0100946afdcdea80fb3
TEST: shill compiles and unit tests pass on Android.
TEST: shill compiles and unit tests pass on Chrome OS.
/system/connectivity/shill/shill_daemon.cc
70fc5accfe83fac147ce47e24311d6739edaeedb 18-Jan-2016 Christopher Grant <cjgrant@google.com> shill: remove obsolete shill daemon source files

Bug: None
TEST=Shill builds; unit tests pass.

Change-Id: I4601af4bcf48311543945e0649f6e16c963914e5
/system/connectivity/shill/shill_daemon.cc
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/shill_daemon.cc
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/shill_daemon.cc
608ec29525f553d51f0a92e84176e3d4b45930a9 31-Jul-2015 Peter Qiu <zqiu@chromium.org> shill: use ControlInterface to create proxy objects

So that appropriate proxy objects can be created based on the type of
the control interface.

While there, remove ProxyFactory related files.

BUG=chromium:513791
TEST=USE="asan clang cellular wimax dhcpv6" FEATURES=test emerge-$BOARD shill

Change-Id: I465b0807ab4ccacac3891638db41384f43ef83c5
Reviewed-on: https://chromium-review.googlesource.com/289855
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/shill_daemon.cc
1a212a6b98b22ad1d69652bb26a9e94138635476 16-Jun-2015 Paul Stewart <pstew@chromium.org> shill: Top-level files n-v: Switch pointer/ref spacing

Switch to Chrome style spacing.

BUG=chromium:501026
TEST=Unit tests

Change-Id: I8bd6f66ea185ca3a2687986f6f2fd99be957dffe
Reviewed-on: https://chromium-review.googlesource.com/278070
Reviewed-by: Rebecca Silberstein <silberst@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
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/shill_daemon.cc
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/shill_daemon.cc
675d0b0f04936050a357722f52dc078a3ab671d8 03-Jun-2015 Peter Qiu <zqiu@chromium.org> shill: move dhcp codes to dhcp directory

Number of files related to dhcp will increase significantly after
refactoring DHCPConfig and adding support for DHCPv6. So move
these files to a dedicated directory.

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

Change-Id: I7f47365158fc5e1d902946dc3403720402f9b6ad
Reviewed-on: https://chromium-review.googlesource.com/275019
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/shill_daemon.cc
08add488849f90600a5657a6f54f4dbc34701b8f 20-Apr-2015 Matthew Wein <mattwein@chromium.org> shill: Allow hostname setting via DHCP

Allow shill to optionally allow a Device to (a) request the hostname
parameter and (b) accept this hostname from a dhcp config and
apply it locally.

BUG=chromium:475699
TEST=None
CQ-DEPEND=CL:266519

Change-Id: I56140831768255b04c6f5c558feec4a9119f349b
Reviewed-on: https://chromium-review.googlesource.com/266647
Reviewed-by: Matthew Wein <mattwein@chromium.org>
Tested-by: Matthew Wein <mattwein@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
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/shill_daemon.cc
da86578bc413a76eca81903c42e0123420df4caa 13-Apr-2015 Nathan Bullock <nathanbullock@google.com> shill: Pass groups to RtnlHandler.Start

Allow clients of the RtnlHandler to explicitly define which groups
they want to listen to. This will allow more flexibility in the clients
without causing everyone to have to listen to all groups.

BUG=none
TEST=FEATURES=test emerge-$BOARD apmanager shill

Change-Id: I2682f6bcfda3a50dade2d1a2b34a2bc1254d7fde
Reviewed-on: https://chromium-review.googlesource.com/265460
Reviewed-by: Nathan Bullock <nathanbullock@google.com>
Commit-Queue: Nathan Bullock <nathanbullock@google.com>
Tested-by: Nathan Bullock <nathanbullock@google.com>
/system/connectivity/shill/shill_daemon.cc
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/shill_daemon.cc
c5f89d131e5b03f448b73fd02d16cab30e438521 18-Feb-2015 Garret Kelly <gdk@chromium.org> shill: add new --prepend-dns-servers flag

The --prepend-dns-servers flag causes every Device to prepend resolvers
of the same address family as their local address to their list of
resolvers before setting it. It is guaranteed that the same resolver
will not appear more than once in the output list.

BUG=chrome-os-partner:36696
TEST=amd64-generic unit tests and ASAN profile unit tests
CQ-DEPEND=CL:250873

Change-Id: I052f6bb8bd222880e1b18097c72a96f11cd50559
Reviewed-on: https://chromium-review.googlesource.com/250877
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Garret Kelly <gdk@chromium.org>
Tested-by: Garret Kelly <gdk@chromium.org>
/system/connectivity/shill/shill_daemon.cc
5a2097c0f4db1704dd5b7b0b874b669bb21c42ad 11-Feb-2015 Jason Simmons <jsimmons@google.com> shill: Add a command line option that controls the default technology order

This can be used to configure a preference for a particular network on a given
device. For example, a device may want to use the mobile network for all
traffic even if an open wifi network is available.

BUG=chromium:453607
TEST=Added the flag via /etc/init/shill.override and confirmed that dbus GetServiceOrder returned the new order

Change-Id: Ifac0baa4feeaae4a780d4d74f2bd195b4e4dd31d
Reviewed-on: https://chromium-review.googlesource.com/248610
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Jason Simmons <jsimmons@chromium.org>
Commit-Queue: Jason Simmons <jsimmons@chromium.org>
/system/connectivity/shill/shill_daemon.cc
83d625655edbc7c35fc436b8b8fe744886d0aae1 10-Feb-2015 Paul Stewart <pstew@chromium.org> shill: DeviceInfo: Optionally ignore unknown Ethernet

Before CL:224422, any unknown network devices (ones that did not
report a driver symlink) were treated as "Unknown" and were not
managed by shill. However some broken Ethernet drivers do not
report this. This change allows a command-line option to revert
this workaround so virtual network interfaces and other such
non-reported devices can be ignored by the manager again.
Additionally, explicitly ignore all devices that appear with a
"veth" prefix.

BUG=chromium:457043,chromium:456104,chromium:451714
TEST=Unit tests

Change-Id: I513c7014c2159d7fea608eed85c0e33b02a893ba
Reviewed-on: https://chromium-review.googlesource.com/247904
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
1d499ed2d5eede24f55c7f6b8aaba06136ef4f22 31-Jan-2015 Peter Qiu <zqiu@chromium.org> shill: add passive mode support

Add a command line option to enable passive-mode. When this option
is enabled, shill will not manage any devices by default. Remote
application can specify the devices for shill to manage through
org.chromium.flimflam.Manager::ReleaseInterface/ClaimInterface APIs.
All devices claims will go through the default device claimer, with
claimer name of empty string ("").

While there, update the ReleaseInterface API to also take claimer
name as an argument, so that the claimer name will be check before
releasing a device. This is to avoid devices being released by
other unknown claimers.

BUG=chromium:454007
TEST=USE="asan clang" FEATURES=test emerge-$BOARD shill apmanager
Manual Test:
1. Start shill with passive mode enabled, verify
"/usr/local/lib/flimflam/list-device" does not return any device.
2. Use dbus-send command to release "eth0" device from default
claimer, and verify "/usr/local/lib/flimflam/list-device"
does return eth0 device.
3. Use dbus-send command to claim "eth0" device from default claimer,
and verify "/usr/local/lib/flimflam/list-device" does not return
any device.
4. Regression test with apmanager.

Change-Id: I2b79a13e8aea0d07e9d7923ba3c26adb19237e1a
Reviewed-on: https://chromium-review.googlesource.com/245123
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
Trybot-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
6d856a6df7f112a84a5799d66a36b7b5d6bb3e50 14-Jan-2015 Peter Qiu <zqiu@chromium.org> shill: create Sockets object in RTNLHandler

Create and maintain Sockets object in RTNLHandler to prevent the
possibility of Sockets object being destructed before RTNLHandler.

BUG=chromium:448823
TEST=USE="asan clang" FEATURES=test emerge-$BOARD shill apmanager
Verify we still have network connectivity through shill
Verify apmanager doesn't seg fault when exiting

Change-Id: I3a60068718ba6c547cef1437aa1fec22bd27e3eb
Reviewed-on: https://chromium-review.googlesource.com/240801
Trybot-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/shill_daemon.cc
8dc5e7b99920ab79d2bee7f99fec9fa5765fda68 12-Dec-2014 Paul Stewart <pstew@chromium.org> shill: DBus: Fix issues with the exit path

Fix a short list of issues that prevented shill from exiting
cleanly:

- In daemon mode stderr is redirected to a child process running
"logger". When the shill process receives a signal, the logger
process is also killed. Catch and ignore SIGPIPE errors that
occur as a result of this defunct process.
- Both DHCPControl and ProxyFactory created separate
DBus::Connection instances. Either dbus-c++ or the dbus
library has a double free problem when the second instance
is freed. Instead, create a new singleton SharedDBusConneciton
so both these modules can share the DBus connection.
- Ownership of dbus_control shill_main is passed to the
ShillDaemon instance. As such is an error to create an at-exit
handler to explicitly delete it as this would constitute a
double-free.
- The DHCP provider singleton held a reference to a DBus proxy
which was only removed in the LazyInstance at-exit-handler.
Release this instance explicitly in Daemon::Stop() so it
is freed while the DBus connection is still active.
- Explicitly destroy manager_ in Daemon::Stop() so that its
adaptor is freed while the DBus connection is still active.

BUG=chromium:441413
TEST=Unit tests + "stop shill" and ensure "PIPE" message
does not appear in logs.

Change-Id: I0239ccc24fee05ef9b2c953ef04fa64acd817349
Reviewed-on: https://chromium-review.googlesource.com/234902
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
d6a8b519e3057f52313e502f502a4819a942e089 18-Nov-2014 Ben Chan <benchan@chromium.org> shill: wifi: Move wifi code to its own sub-directory.

This CL is part of a series of CLs, which aim to reorganzie shill's flat
source code structure into a more modular form by moving technology
specific code into their own sub-directories.

BUG=chromium:433419
TEST=`FEATURES=test emerge-$BOARD shill`
TEST=`USE='clang asan' FEATURES=test emerge-$BOARD shill`

Change-Id: Ic6bf64e7fe263fd0b2277877d78cf776f179e7d7
Reviewed-on: https://chromium-review.googlesource.com/230460
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/shill_daemon.cc
c9c31d8497c3f053c2160408cc386010fc125fad 22-Oct-2014 Rebecca Silberstein <silberst@chromium.org> shill: add object id to scoped log messages

Add object identifier (DBus::Path) string to scoped logging messages. If
the logging message is called from a static method, SLOG will be called
with nullptr and the log will use (anon) for the object id. Objects
without identifying information will use the (class_name) as their logged
identifier.

BUG=chromium:403996
TEST=ran unit tests and manually inspected net.log

Change-Id: Idf23911a303f5edc4b82917bf1e2cea3f8e44e60
Reviewed-on: https://chromium-review.googlesource.com/224812
Tested-by: Rebecca Silberstein <silberst@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Rebecca Silberstein <silberst@chromium.org>
/system/connectivity/shill/shill_daemon.cc
02e3dc3bc6e9fdb475bd13944f1c6764c921abbb 31-Oct-2014 Peter Qiu <zqiu@chromium.org> shill: Move netlink functionality to libshill-net shared library

By exporting netlink functionality to a shared library, other
applications can use the interfaces provided by this library
to communicate with the cfg80211 kernel module and mac80211 drivers.

To use this library, add dependency for libshill-net-<(libbase_ver) in
your gyp file, and include the headers from <shill/net/*>

BUG=chromium:427982
TEST=unittests, run wifi_matfunc suite for shill regression test

Change-Id: Ia8ea063daaa63de27fe81e153458e149586086ec
Reviewed-on: https://chromium-review.googlesource.com/226830
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/shill_daemon.cc
8d6b59704591ba9fad57751858835dc332dbdd37 28-Oct-2014 Peter Qiu <zqiu@chromium.org> shill: export a shared library for RTNL interface.

Export a shared library "libshill-net-<(libbase-ver)" from shill, which
currently includes the RTNL interface and other codes that it depends on
(mainly ByteString, IPAddress, IOHandler, TimeStamp, and Sockets). All the
library codes are moved to under "shill/net/".

Upcoming changes:
- Remove dependency for "shill/error.h" which depends on dbus-c++.
- Add Netlink interface to the shared library.

BUG=chromium:427982
TEST=unittests
CQ-DEPEND=CL:226103

Change-Id: I7f5c183b8a347c02e80ffed5e3497f691dde517c
Reviewed-on: https://chromium-review.googlesource.com/226110
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/shill_daemon.cc
37a2b60098f7404a0faa918694072670de1a0a97 27-Oct-2014 Peter Qiu <zqiu@chromium.org> shill: IO handler support for IO message loop

Added IO handler factory for creating IO handlers based on the current
message loop type. For IO message loop, IO handlers will be based on the
libbase's FileDescriptorWatcher, while UI message loop will use the glib's
IO handlers (since libbase doesn't provide FileDescriptorWatcher for UI
message loop that uses glib).

Also remove the dependency of EventDispatcher from RTNLHandler and
NetlinkManager. And redirect the IO handler creation calls in
EventDispatcher to IOHandlerFactory. Eventually would delete the
IO handler creation calls from EventDispatcher once all references
to them are removed.

This is a part of an effort to export rtnl/nl80211 functionality as a shared
library, so that they can be exported without tying to a specific
message loop type.

BUG=chromium:427534
TEST=unittests, manual regression test (run wifi_matfunc suite)

Change-Id: Ibb3e11ef381d1d93dcae20a697cee310f0a7703f
Reviewed-on: https://chromium-review.googlesource.com/225651
Tested-by: Peter Qiu <zqiu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
/system/connectivity/shill/shill_daemon.cc
fbe8d2b361a51e89fcf1207050729be86a961f5f 16-Sep-2014 Samuel Tan <samueltan@chromium.org> shill: use ResultAggregator for device suspend actions

Use ResultAggregator to have manager asynchronously execute each device's
suspend actions before a system suspend takes place. The previous
implementation executed these suspend actions synchronously and used
a HookTable for other termination/suspend actions. This implementation does
not change the use of the HookTable for termination action, but
uses only a ResultAggregator to wait for asynchronous suspend actions.

Manager now creates a ResultAggregator in OnSuspendImminent() and passes
a callback to every device as an argument to OnBeforeSuspend(). Each
device then performs synchronous actions and/or posts asychronous tasks
in OnBeforeSuspend(), and is responsible for running the received
callback after completing these actions.

Also:
- rename RetrySetWakeOnPacketConnection to RetryApplyWakeOnWiFiSettings
for consistency.
- add detailed documentation to result_aggregator.h explaining and
stating the conventions to be followed when using ResultAggregator.
- remove TerminationActionReason from metrics and add separate
Termination action and Suspend action metrics in preparation for
complete splitting of termination and suspend action codepaths.

BUG=chromium:390668
CQ-DEPEND=CL:223098
TEST='P2_TEST_FILTER="shill::*" FEATURES="test" USE="clang asan"
emerge-samus shill' succeeds.

Change-Id: I5a9d9039669a822e0cb82bf6784522f1ce86a966
Reviewed-on: https://chromium-review.googlesource.com/218551
Reviewed-by: Samuel Tan <samueltan@chromium.org>
Tested-by: Samuel Tan <samueltan@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
/system/connectivity/shill/shill_daemon.cc
ca324740fb53093c4bd4ffa73cd4b9ebe09a01be 29-Aug-2014 Paul Stewart <pstew@chromium.org> shill: ShillDaemonTest: Fix ASAN issues

ShillDaemon had a raw pointer to the ControlInterface. Change
this to a scoped_ptr so it is freed when the Daemon instance
destructs.

BUG=chromium:408818
TEST=P2_TEST_FILTER="shill::ShillDaemonTest.*" FEATURES=test \
USE="clang asan" emerge-falco platform2

Change-Id: Ia8e4ed773cacb6a5906c2188a6b6bc3e7c20716a
Reviewed-on: https://chromium-review.googlesource.com/215669
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
3bdf1abfba480415a4714108e615649f422197e0 18-Jul-2014 Paul Stewart <pstew@chromium.org> shill: DHCPClient: Output status metrics

Output metrics about the DHCP client status whenever this state
changes. This will allow us track aggregate activity so we can
track the efficacy of the various DHCP client features.

BUG=chromium:384897
TEST=Unit tests + manual: restart shill and browse to chrome://histograms

Change-Id: I8e9628243c8b9b6e8bd0270e86795737a2f75846
Reviewed-on: https://chromium-review.googlesource.com/208825
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
c350e68360d08626cff8c4020c743b61d7da5a2b 20-Jun-2014 Paul Stewart <pstew@chromium.org> shill: Further deprecate CaCertNSS

Chrome has been updated to no longer set the CaCertNSS property
for OpenVPN, L2TP/IPSec and 802.1x connections. It also has code
to migrate such properties over to the equivalent CaCertPEM
property. This CL rips out the underpinnings in shill that used
to convert NSS properties by reading the user NSS database. It
still supports the various NSS service properties for read (to
allow Chrome to detect and migrate away from the NSS property)
and write (so Chrome can clear the vestigial property) in all the
places where that was previously supported.

CQ-DEPEND=CL:205152
BUG=chromium:385401
TEST=Unit tests

Change-Id: Id3df385148acb8e9c4240bbaa980e4118aa6b088
Reviewed-on: https://chromium-review.googlesource.com/204763
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
b7bf216f6f8b482123820afcfe22a7c2d3b19c9f 12-Jun-2014 Ben Chan <benchan@chromium.org> shill: Fix variable declaration order in Daemon.

This CL fixes the declaration order of member variables of Daemon such
that variables being depended on are declared first. This CL also
removes unused header inclusions and fixes some formatting issues.

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

Change-Id: I99d40638011efe24cab8e519619931f5c9a5c904
Reviewed-on: https://chromium-review.googlesource.com/203562
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/shill_daemon.cc
a3ac09632c45a9dce9ba21bb6437f2858336943c 12-Jun-2014 Ben Chan <benchan@chromium.org> shill: Fix a crash when terminating daemon in presence of cellular device

This CL fixes a crash caused by destroying a Cellular object in midst of
executing the completion callback of its termination action.

BUG=chromium:383767
TEST=Tested the following:
1. `FEATURES=test emerge-$BOARD platform2`
2. On a DUT with a cellular device in the enabled state, verify that
`restart shill` will cause shill to execute the termination action
without crashing.

Change-Id: Ia521b00688816961e25f74dd87d81176220e7ea9
Reviewed-on: https://chromium-review.googlesource.com/203561
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/shill_daemon.cc
0a59a5a484634f798222ad077dbbfa7faa76651d 25-Apr-2014 mukesh agrawal <quiche@chromium.org> shill: stop passing around format strings for profiles

Prior to this CL, shill passed around format strings, to specify
where the user profiles should be stored. While this makes things
more configurable, it also a) makes things more complex, and
b) causes g++ to emit warnings that some format strings can't be
checked statically.

The location of user profiles doesn't need the full power of
printf-format style configurability. We really only need the
ability to specify which directory the user profiles are
stored in.

Note that this changes requires updating some unit tests,
which actually did take advantage of the flexibility. In
particular, some of the Manager and Profile unit tests placed
user profiles directly in a user profile directory, rather
than creating a user-specific sub-directory first. Creating
the user-specific directories seems like the right thing to
do, since that it what the normal (non-test) code does.

BUG=chromium:293668
TEST=unit tests

Change-Id: Ic1afeec84a7797105c9a49b8261a9677e17d91ee
Reviewed-on: https://chromium-review.googlesource.com/197061
Tested-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/shill_daemon.cc
a0ddf46e466bd4ba3d20952f0a6988c680c1af14 06-Feb-2014 Ben Chan <benchan@chromium.org> shill: Update to build against libchrome-242728.

BUG=chromium:341521
CQ-DEPEND=CL:193660
TEST=Tested the following:
1. `FEATURES=test USE='cellular wimax' emerge-$BOARD platform2`
2. Run the following tests:
- network_3GSmokeTest
- network_VPNConnect.*
- network_WiMaxSmoke
- wifi_matfunc

Change-Id: Ic1553c182ab7a833a68c45f012f646b8930cb095
Reviewed-on: https://chromium-review.googlesource.com/193606
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/shill_daemon.cc
c272896939abdb97c686df48345c7d6651337736 10-Jul-2013 Wade Guthrie <wdg@chromium.org> shill: Fixes disconnect UMA stat

To determine the kernel's disconnect notification behaviour for these
UMA stats, I originally reverse-engineered the disconnect netlink
messages that we get from the kernel (should have looked at the kernel
code which, eventually, I did). I found, erroneously, that all of the
disconnect reasons were found in the disassociate message. It turns out
that the disconnect reasons are from the disassociate message only for
(some!) disconnections instigated by the station. When the AP is the
source of the disconnect, the reason is stored in a disconnect message.

This code, then, extracts the reason code from whatever message type
(disconnect or disassociate) that contains one. The message will still
be a little noisy since some station-started disconnections don't
provide a disassociate message and I've noticed that some AP-started
disconnections seem to send 2 messages. I haven't tracked any of this
down.

BUG=chromium:215808
TEST=unittest (new) and manual - I test using the AP and description
found in chromium:294315.
CQ-DEPEND=Icf79aa729b1ed125743686c4536fe1b59183fed2

Change-Id: If648d530c613f485c074acf58ddb0bca4de22084
Reviewed-on: https://chromium-review.googlesource.com/170926
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/shill_daemon.cc
13804a1acd238a3c7ba8f4f44db96a97fa04fbda 09-Oct-2013 Ben Chan <benchan@chromium.org> shill: Run termination actions before stopping DBus proxies.

shill uses a termination action to disable the cellular device upon
termination (CL:171374). It needs to execute the termination action
before calling Daemon::Stop(), which stops the DBus proxies to
ModemManager. Otherwise, the termination action will fail to initiate
the disable operation over ModemManager's DBus interface.

shill previously disconnected but didn't disable the cellular device
upon termination, and thus called Daemon::Stop() before running the
termination action in order to prevent the autoconnect code from trying
to reconnect the disconnected cellular service. However, that's not
necessary as Manager::AutoConnect() actually checks if the manager is
still running.

BUG=chromium:305445
TEST=Manually test the following with E396, E362, ALT3100, MU736 modem:
1. Enable shill verbose logging under a root shell:

ff_debug manager+device+service+cellular+modem
ff_debug --level -5

2. Connect to Ethernet, WiFi, and cellular.
3. Run `stop shill` under a root shell to terminate the shill process.
4. Verify from /var/log/net.log that shill starts the termination
actions and completes them before destroying DBus proxies to
ModemManager. WiFi is disconnected and cellular is disabled.

shill: [1008/170201:INFO:shill_main.cc(122)] Shutting down due to received signal.
shill: [1008/170201:INFO:manager.cc(1113)] Running termination actions.
shill: [1008/170201:INFO:cellular.cc(802)] StartTermination
...
shill: [1008/170204:INFO:cellular.cc(819)] OnTerminationCompleted: org.chromium.flimflam.Error.Success:Success (no error)
...
shill: [1008/170211:INFO:modem_manager.cc(50)] Stop watching modem manager service: org.chromium.ModemManager
shill: [1008/170211:INFO:modem_manager.cc(50)] Stop watching modem manager service: org.freedesktop.ModemManager1
...
shill: [1008/170211:VERBOSE2:shill_main.cc(115)] DeleteDBusControl

Change-Id: I424f79036f07b7aacf795389dd06654c7ece4606
Reviewed-on: https://chromium-review.googlesource.com/172330
Tested-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/shill_daemon.cc
318445d33275a29a5d5f50a507b138a28b106d1b 16-May-2013 Wade Guthrie <wdg@chromium.org> shill: Cleanup: Removes NetlinkManager::GetMessageType

Code could get the netlink message type from the NetlinkManager or from
the specific message class (e.g., Nl80211Message::GetMessageType). This
CL removes the former in favor of the latter.

BUG=None
TEST=unittest

Change-Id: Ib8d280dff96f4a87cdde20a7b7529280e8414011
Reviewed-on: https://gerrit.chromium.org/gerrit/51501
Reviewed-by: Darin Petkov <petkov@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/shill_daemon.cc
e6c44440f5cf102c14581c961028a7830cc6448f 19-Apr-2013 Paul Stewart <pstew@chromium.org> shill: Remove "--push" argument parsing

Now that init no longer uses this argument in vain, remove the
"--push" argument from shill's command-line parsing.

CQ-DEPEND=CL:48604
BUG=chromium:231858
TEST=Unit tests

Change-Id: I3838057b2127f271a23ec40d27b248a91a840bcf
Reviewed-on: https://gerrit.chromium.org/gerrit/48607
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
bb9fca2e550f92d694867f0bcf0efe9426dfc2bb 11-Apr-2013 Wade Guthrie <wdg@chromium.org> shill: Renames Config80211 to NetlinkManager.

The domain of Config80211 has extended to different types of netlink
message communication. That warrants a name change. This CL changes
the name of the class plus a bunch of objects of that class. This
required changing the names of some files.

In addition, a few (half a dozen, maybe) readability issues were
addressed. These include inaccurate header guard comments and bad
indentation.

BUG=None
TEST=unittest

Change-Id: Id0006d5d37a98ed6c138f9982a2aa3624b308757
Reviewed-on: https://gerrit.chromium.org/gerrit/47860
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/shill_daemon.cc
12f113aa68bcb9084e342ab1b985caf1aded6f1c 13-Mar-2013 Wade Guthrie <wdg@chromium.org> shill: Splits the netlink message factory between message types.

Provides a mechanism to register message factories with
|NetlinkMessageFactory|. Splits |NetlinkMessageFactory| into a generic
factory and one for |ControlNetlinkMessage| and |Nl80211Message|. Uses
the registration mechanism to install the control and nl80211 message
factories.

This CL also moves |UnknownMessage| from being a subtype of
|Nl80211Message| to being a subtype of |NetlinkMessage|.

Lucy has some 'splaining to do: At startup time, the message type isn't
known for some types of netlink message (notably, the nl80211 class of
messages). This message type is discovered, in the code, through the
|Config80211::AddFamilyByString| call. This CL adds a message factory
closure to that call so that Config80211 can install the factory when
the code knows the message type against which to register the factory.

BUG=chromium:220372
TEST=unittest and manual (restarted shill with log=-10,wifi and observed
messages of all types being created for netlink messages coming from the
kernel).

Change-Id: I496b405c20ef98b6e23e96e8088fc542ff29264c
Reviewed-on: https://gerrit.chromium.org/gerrit/45314
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/shill_daemon.cc
c6c8196e736baea5269cd8a716ddd455b515cac9 07-Mar-2013 Wade Guthrie <wdg@chromium.org> shill: Simplifies netlink message callbacks.

Config80211 had required broadcast callbacks to be child classes of some
special (and, as it turns out, completely unnecessary) superclass. This
CL a) replaces the superclass with |base::Callback|, b) updates
callback_metrics to use this new mechanism, and c) removes callback_object
(which was really just a template for future callback and is no longer
necessary).

BUG=None.
TEST=unittests.

Change-Id: I8f080521ba17e45e678289d10060f8e8927c0496
Reviewed-on: https://gerrit.chromium.org/gerrit/44779
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/shill_daemon.cc
bee87c282fc49beeceaa0f5bbce34c639ac03816 06-Mar-2013 Wade Guthrie <wdg@chromium.org> shill: Configures netlink broadcast messaging with raw sockets.

This CL provides an interface for software to request the netlink
message_type and available multicast groups corresponding to a netlink
family name. The new software completely replaces the old event_type
stuff that utilized libnl to get this information (and, as such, it is
the last nail in the coffin of using libnl for netlink communication
with the kernel). |NetlinkMessage|s now get their message_type from
Config80211.

Also includes code to handle multi-part responses to a netlink message.

BUG=chromium:218211
TEST=unittests and manual tests. The manual tests consist of:
- Start shill with log=-10/wifi. On the target, in a shell window,
do the following:
o stop shill
o shill --log-level=-10 --log-scopes=wifi
- Wait five seconds (the code will do everything it needs to at
startup).
- Look in /var/log/net.log and verify the following:
o a CTRL_CMD_GETFAMILY message is sent to the kernel (just search
for the 'CTRL_CMD_GETFAMILY' string.
o a CTRL_CMD_NEWFAMILY message is received from the kernel
o after those messages, verify that one or more
NL80211_CMD_TRIGGER_SCAN messages received from the kernel.

Change-Id: I04571bdff9908ad8bd39a3a64a24e7e11074bf18
Reviewed-on: https://gerrit.chromium.org/gerrit/44770
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/shill_daemon.cc
71cb0a722018bace36dfb816af5feb943f018e7a 27-Feb-2013 Wade Guthrie <wdg@chromium.org> shill: Elevates raw netlink attributes to fully-fledged attributes.

This CL contains several small modifications to get and set raw
attributes like the other attributes and removes back doors used by
code to parse raw attribute data outside of the NetlinkAttribute
mechanism. As part of this, netlink attribute headers have been removed
from the raw attribute data.

BUG=None.
TEST=unittests

Change-Id: I201ce7ffbc85558ae97a492921c3f5f4bfc4d0d4
Reviewed-on: https://gerrit.chromium.org/gerrit/44185
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/shill_daemon.cc
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/shill_daemon.cc
ccd5c85a4625e2b90eea2a2b411508280a454ea5 20-Dec-2012 Jorge Lucangeli Obes <jorgelo@chromium.org> Run |nss-get-cert| as the 'chronos' user.

BUG=chromium-os:37265
TEST=unit
TEST=connect to Google-A, no errors on /var/log/messages, /var/log/net.log
TEST=connect to VPN, no errors on /var/log/messages, /var/log/net.log

Change-Id: Ifb23c9dab43fbe12c91a401cc64689eecabd79ac
Reviewed-on: https://gerrit.chromium.org/gerrit/40018
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Tested-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Commit-Queue: Jorge Lucangeli Obes <jorgelo@chromium.org>
/system/connectivity/shill/shill_daemon.cc
3806676d0bf978aabd66b5883b357995e2fbaf27 17-Dec-2012 Darin Petkov <petkov@chromium.org> shill: diags: Run net-diags-upload with reduced privileges.

BUG=chromium-os:37099
TEST=unit tests, tested on device and inspected log ownership

Change-Id: I3b2064b0338093b6c1425165b1bfd05d0bade719
Reviewed-on: https://gerrit.chromium.org/gerrit/39957
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Commit-Queue: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_daemon.cc
bd0dcc80e4d0d0a5e38037c0033a16cdf25cbaed 29-Nov-2012 Darin Petkov <petkov@chromium.org> shill: Spawn a child process to upload diagnostics.

This ensures a distinct name for the crashing process so that we don't
upload logs for every shill crash. This makes it easier to filter the
data on the server side and minimizes the actual crash data.

BUG=chromium-os:35948
TEST=unit tests; tested on device with modified source code.

Change-Id: I9feb4c42167fe6810081a2fefe11249a3dd14a83
Reviewed-on: https://gerrit.chromium.org/gerrit/38903
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_daemon.cc
fe34be0a35761150a1d085a55b8c925218c0e8b8 13-Nov-2012 Christopher Wiley <wiley@chromium.org> shill: Clean up Callback80211

Make Callback80211 objects access Config80211 through the static getter
instead of via a pointer injected at instantiation time. Stop
duplicating base::Callback objects and use method overriding to
implement the same thing.

BUG=chromium-os:36122
TEST=Unit tests

Change-Id: I73c4eb0f807240b4ea949fa70a9a3dd3954e91a0
Reviewed-on: https://gerrit.chromium.org/gerrit/37861
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Ready: Christopher Wiley <wiley@chromium.org>
/system/connectivity/shill/shill_daemon.cc
f0136cdf2797d60a8bc3b370597c1dcd6692f6e3 07-Nov-2012 Darin Petkov <petkov@chromium.org> shill: Implement a basic DiagnosticsReporter.

Currently the reporter is disabled. When enabled, it will trigger a
crash to upload diagnostics when its Report method is invoked. The
upload mimics the update_engine implementation.

BUG=chromium-os:35948
TEST=unit tests, gmerged shill, ensured connectivity

Change-Id: I0353e7d694dc3bc1b5b24d27856c3b9aeda43232
Reviewed-on: https://gerrit.chromium.org/gerrit/37525
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_daemon.cc
b1ec860e24acccf9b538dbd4c25b543583d5f7fe 19-Oct-2012 Wade Guthrie <wdg@chromium.org> shill: Make nl80211 broadcast callback a list of callbacks.

This will allow multiple callbacks to be called when an nl80211 message
is received. This allows a user to add a callback without displacing
others (e.g. disconnect metrics).

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

Change-Id: I19d6cfac5754ea1d2a699de80d4465c49fec888c
Reviewed-on: https://gerrit.chromium.org/gerrit/36061
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Wade Guthrie <wdg@google.com>
Tested-by: Wade Guthrie <wdg@google.com>
/system/connectivity/shill/shill_daemon.cc
ab22c166ccfb33fd99169bee645d67306ae26ced 09-Oct-2012 Arman Uguray <armansito@chromium.org> shill: Add metrics for recording termination/suspend time

Added the following metrics:

- Network.Shill.TerminationActionResult.OnSuspend,
- Network.Shill.TerminationActionResult.OnTerminate,

which log success/failure;

- Network.Shill.TerminationActionTime.OnSuspend,
- Network.Shill.TerminationActionTime.OnTerminate,

which measure the time it takes to complete the termination actions.

BUG=chromium-os:35029
TEST=Manually suspended machine and terminated shill on separate
occasions and observed the output on chrome://histograms

Change-Id: I5183d7c3dd5d4633f661598b7a0cacab6d205d8b
Reviewed-on: https://gerrit.chromium.org/gerrit/34975
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Arman Uguray <armansito@chromium.org>
Tested-by: Arman Uguray <armansito@chromium.org>
/system/connectivity/shill/shill_daemon.cc
5020b57e6a12b4cf189ac426429d654126889cd5 13-Oct-2012 Wade Guthrie <wdg@chromium.org> shill: Putting UMA metrics in a separate nl80211 callback.

BUG=chromium-os:35466
TEST=Manual and unit tests.

Change-Id: I908f887a7ff3ce4d0bf33f1096cd61155c20e14a
Reviewed-on: https://gerrit.chromium.org/gerrit/35963
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Wade Guthrie <wdg@google.com>
Tested-by: Wade Guthrie <wdg@google.com>
/system/connectivity/shill/shill_daemon.cc
3ec553401f04d005cfce24411cd63929557dea75 28-Sep-2012 Darin Petkov <petkov@chromium.org> shill: cellular: Disconnect service on suspend.

Also, suppress auto-connect as soon as the SuspendDelay signal is
received. Schedule a timeout to detect failed or interrupted suspend
and re-enable auto-connect.

BUG=chromium-os:30587,chromium-os:33412
TEST=unit tests, tested on device through inspecting logs

Change-Id: If40f8217e4d9b222a698532054287ae9b4fcb4d6
Reviewed-on: https://gerrit.chromium.org/gerrit/34342
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_daemon.cc
6d528f1a43c01f7be11f292d6e1c3829a1e867dc 13-Sep-2012 Arman Uguray <armansito@chromium.org> shill: metrics: Collect termination action statistics

When shill terminates, it executes a set of termination actions that
were queued while it was running (e.g. a cellular device queues a
disconnection request as an action). This CL adds code to track the
percentage of termination actions that succeed within the given timeout
period for termination.

BUG=chromium-os:31475
TEST=Manually tested changes via chrome://histograms

Change-Id: Id2d5e5fef2a02a2d1e4b6a17c8a1366c9ac6676e
Reviewed-on: https://gerrit.chromium.org/gerrit/33225
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Gary Morain <gmorain@chromium.org>
Tested-by: Arman Uguray <armansito@chromium.org>
Commit-Ready: Arman Uguray <armansito@chromium.org>
/system/connectivity/shill/shill_daemon.cc
d4977f264f403ed5825d343b57da90b550b41287 22-Aug-2012 Wade Guthrie <wdg@chromium.org> shill: Exposing wifi disconnect reason to UMA.

This change provides UMA with a reason for each WiFi deauthentication
that occurs. These values are extracted from the deauthentication
message that we get from the mac80211 drivers in the kernel (because
we've asked that driver to send us events).

BUG=chromium-os:33637,26854
TEST=Manual (disconnected in various ways and verified with UMA). Ran
shill unit tests.

Change-Id: I630ffbba02b40484fc3c6b20e444e71093cfce65
Reviewed-on: https://gerrit.chromium.org/gerrit/31475
Commit-Ready: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/shill_daemon.cc
64b4c148180bb64e3d841ca16580c0a0681acdf3 21-Aug-2012 Wade Guthrie <wdg@chromium.org> shill: Small refactor of iw code.

callback80211_object.cc/.h have been pulled out of config80211.cc/.h
(and, except for a small chunk that is #ifdeffed out, identical). Also,
gave constant numbers to the indecis of
UserBoundNlMessage::connect_status_map_. Uncommented-out DeleteStationMessage.

BUG=None.
TEST=shill unit tests.

Change-Id: I51899e810a54b501e9d27b701649455d88bb5172
Reviewed-on: https://gerrit.chromium.org/gerrit/30923
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/shill_daemon.cc
0d43853b1b7aa82afbcbddb6c68bcfd72e98d950 18-May-2012 Wade Guthrie <wdg@chromium.org> Shill: Incorporating the functionality of 'iw event' into shill.

'iw event' has been ported into shill and there are unit tests.
It still needs a facility to send individual messages to the
kernel (and there are comments in the code to show where this is
intended) but this will wait for a later commit.

BUG=None.
TEST=Enclosed unit tests verified against manual test. Ran all WiFi
autotests and output matched 'iw event'.

Change-Id: Ia5f5e8b440d0a657ce7fdb3e2b8b5fc6c95323fe
Reviewed-on: https://gerrit.chromium.org/gerrit/24508
Commit-Ready: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
/system/connectivity/shill/shill_daemon.cc
b691efd71561246065eae3cdd73a96ca1b8a528d 09-Aug-2012 Christopher Wiley <wiley@chromium.org> shill: Rename SMLOG to SLOG

Rewrite SMLOG as SLOG, thus saving many edits. Change the location of
the SLOG macro to be memory_log.h, requiring includes to be rewritten
and reordered. While we're rewriting includes, moving all assorted
logging includes into a generic shill/logging.h, thus saving future
logging changes from altering these includes ever again.

BUG=chromium-os:31145
TEST=Builds, unit tests still pass

Change-Id: Ie5129fcbdda87f3149460209a682c698b876b09a
Reviewed-on: https://gerrit.chromium.org/gerrit/29650
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
/system/connectivity/shill/shill_daemon.cc
a9fb325a645e0be17b3eaa26a4d0f1d5228683c9 31-May-2012 Gary Morain <gmorain@chromium.org> shill: Add cellular hooks for suspend and termination

When ChromeOS suspends or shill terminates, a cellular device should
disconnect from the cellular service. This CL adds methods to do that
and connects them to the manager's hook table. The manager runs these
actions when there is a terminate signal. The shill Daemon has been
modified to signal the manager on a terminate signal. TODO: Run these
actions on a suspend signal.

This CL modifies the HookTable API to remove the polling action.
Instead, actions are expected to call HookTable::ActionComplete()
to signal the completion of an action.

BUG=chromium-os:22408
TEST=new unittests; ran all existing unittests. Manual testing
includes executing 'stop shill' and looking at log messages to make
sure the termination actions occurred.

Change-Id: I5bbf0832e76a5c818724fbca4c436beb3e5d182b
Reviewed-on: https://gerrit.chromium.org/gerrit/24261
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: Gary Morain <gmorain@chromium.org>
Commit-Ready: Gary Morain <gmorain@chromium.org>
/system/connectivity/shill/shill_daemon.cc
10e9e4e93537a0673524d47535cbf0f723470a0d 27-Apr-2012 Paul Stewart <pstew@chromium.org> shill: Accept --portal-list command line option

This option is used from the init scripts to override the startup
value of the portal list. This is not meant to override the profile
value, but simply to mask that value until the user has completed
OOBE.

BUG=chromium-os:28424
TEST=New unit tests, plus manual:
- Reboot -- test that system starts up with machine default
(get-portal-list => ethernet,wifi,cellular)
- rm /home/chronos/.oobe_completed
- Restart shill and test that get-portal-list => ""
- Run "set-portal-list wifi,ethernet,cellular", and ensure we can read
this back.
- Reboot (on test machines, this repopulates .oobe_completed on boot)
ensure that we return to the profile-stored value.

Change-Id: I8c6427d89087d6e8a611e407b93e4082300ddf03
Reviewed-on: https://gerrit.chromium.org/gerrit/21295
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Brian Harring <ferringb@chromium.org>
/system/connectivity/shill/shill_daemon.cc
fad4a0b7e55dd82d3815ee96862b6e546727eb6e 19-Apr-2012 Ben Chan <benchan@chromium.org> shill: Replace VLOG with SLOG.

This CL replaces all uses of VLOG(level) with SLOG(scope, level) with
the same verbose level and an appropriate scope for each affected
logging statement.

BUG=chromium-os:29641
TEST=Build and run unit tests. Test scope logging with ff_debug.

Change-Id: Ifdcf1faa2a309bcbd9ee369a66179ce9c7f1ad19
Reviewed-on: https://gerrit.chromium.org/gerrit/20629
Commit-Ready: Ben Chan <benchan@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/shill_daemon.cc
3c5e4dc08bef63ba11f215a6aec1ff0d0442d1c5 02-Apr-2012 Darin Petkov <petkov@chromium.org> shill: vpn: Implement NSS database interface class.

Use the NSS class to lookup NSS certificates for OpenVPN.

BUG=chromium-os:28792
TEST=unit tests

Change-Id: I2e0c7924d664f375f5b01bc73506e2b91e6f8720
Reviewed-on: https://gerrit.chromium.org/gerrit/19457
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_daemon.cc
3e20a2341d0aeb7681e4ee0f89eae6817ade2b3b 16-Feb-2012 Eric Shienbrood <ers@chromium.org> shill: Convert code to use the newest version of libchrome.

The biggest change is a switch from using the deprecated
Task and CallbackN mechanisms to using the new Callback
mechanism.

Note: Original CL was https://gerrit.chromium.org/gerrit/16156.
This is logically another patch to that CL, but since the
latter was already merged, and is considered closed by
Gerrit, it's necessary to create a new CL.

BUG=chromium-os:15330
TEST=Build shill and run it on a zgb with a modem. Build and
run unit tests.
CQ-DEPEND=I37628863370323d30cac493764ea28f8ffd42637

Change-Id: I3ae78a3aa44ec167b79f2170d07650ece888254f
Reviewed-on: https://gerrit.chromium.org/gerrit/18030
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Tested-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Eric Shienbrood <ers@chromium.org>
/system/connectivity/shill/shill_daemon.cc
b5c8940ae68f85c8c822936f41f4993c51624dcf 13-Mar-2012 Eric Shienbrood <ers@chromium.org> Revert "shill: Convert code to use the newest version of libchrome."

This reverts commit ffebe0c489e0ecccf497547d7078c30cbc8072e2

Unit tests ran on local machine, but wouldn't run on CQ because of some kind of environment difference.

Change-Id: Ia876c0c17f4cd84bca5e2f1bacd7e24a81832d4d
Reviewed-on: https://gerrit.chromium.org/gerrit/17969
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Tested-by: Eric Shienbrood <ers@chromium.org>
/system/connectivity/shill/shill_daemon.cc
08a4ffb4ecf5893eb55c523d528bf3e52c66facf 16-Feb-2012 Eric Shienbrood <ers@chromium.org> shill: Convert code to use the newest version of libchrome.

The biggest change is a switch from using the deprecated
Task and CallbackN mechanisms to using the new Callback
mechanism.

This cannot be submitted until vapier submits his CL that
slot-enables the libchrome build
(https://gerrit.chromium.org/gerrit/15415).

BUG=chromium-os:15330
TEST=Build shill and run it on a zgb with a modem. Build and
run unit tests.
CQ-DEPEND=Ic24bb16aac3e1d130a784f34e848e308719a43be

Change-Id: I081a7aa66bee391b867a43e08db2eacdff760945
Reviewed-on: https://gerrit.chromium.org/gerrit/16156
Tested-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Eric Shienbrood <ers@chromium.org>
Reviewed-by: Eric Shienbrood <ers@chromium.org>
/system/connectivity/shill/shill_daemon.cc
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/shill_daemon.cc
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/shill_daemon.cc
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/shill_daemon.cc
713547627a2d6dc731cc1a7c80d2df79bee68a5e 29-Nov-2011 Gaurav Shah <gauravsh@chromium.org> shill: Add option to push profiles on shill startup

When re-started after a user has logged in (say, due to a crash), we need a
way to tell shill to load the logged in user's profile. Normally, you would
do this by having the respawning entity (upstart, usually) to re-send a dbus-
message to load a profile.

Due to the machinations of how process tracking works, it's sometimes better
to do the startup and profile load in a single step. Hence, this new option
similar to flimflam.

BUG=chromium-os:23492
TEST=none

Change-Id: I2f66ebd726fa678468b4ad01a57c21ebf42784aa
Reviewed-on: https://gerrit.chromium.org/gerrit/12179
Tested-by: Gaurav Shah <gauravsh@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Gaurav Shah <gauravsh@chromium.org>
/system/connectivity/shill/shill_daemon.cc
1271d6828b226f951fa69ed9927fa7c9a358318a 02-Nov-2011 Thieu Le <thieule@chromium.org> shill: Disconnect services before exiting.

Add SIGINT/SIGTERM handler to gracefully exit the main loop and add
ability to disconnect from all services during the clean up.

BUG=chromium-os:19997
TEST=Unit tests, WiFiManager, manually run shill and Control-C

Change-Id: Ida02ade729af624ef0ea4e32e3fb80436aaf870b
Reviewed-on: https://gerrit.chromium.org/gerrit/11092
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/shill_daemon.cc
b9c00597eb1f6d2560f7e88cb0d1f627228840d4 06-Oct-2011 Chris Masone <cmasone@chromium.org> [shill] Profiles need to own their own storage

We're moving to a model where we rely on the StoreInterface
implementation to maintain profile state, instead of managing
a list of Service objects manually. Thus, we need to allow
Profile to own its own StoreInterface.

BUG=chromium-os:17253
TEST=unit

Change-Id: Ie62462686ecf598efeac08a2d3180cd372430bb9
Reviewed-on: http://gerrit.chromium.org/gerrit/9916
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
ab565bb6f148849fc0ceb12529ff93acfbbed71f 06-Oct-2011 Darin Petkov <petkov@chromium.org> shill: Convert ProxyFactory singleton to LazyInstance.

This makes it consistent with the rest of shill's singletons (DHCPProvider,
Resolver, RoutingTable, RTNLHandler) and improves static object's memory
management.

BUG=chromium-os:19178
TEST=unit tests, tested in a VM

Change-Id: Ib403d31473360b46dd25d12508c799cbc73368fd
Reviewed-on: http://gerrit.chromium.org/gerrit/8861
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/shill_daemon.cc
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/shill_daemon.cc
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/shill_daemon.cc
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/shill_daemon.cc
a7b8949f39e8c2ae2324dda16b9aa121cc3f7e8f 27-Jul-2011 Darin Petkov <petkov@chromium.org> shill: Don't create DHCP and Modem D-Bus proxies in signal callbacks.

dbus-c++ doesn't allow proxy creation in signal callbacks so create them in
deferred tasks instead.

BUG=chromium-os:18228
TEST=unit tests, tested on device

Change-Id: I4f85ab937aef99ef4556c5a3c16af913d8fa08fd
Reviewed-on: http://gerrit.chromium.org/gerrit/4827
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/shill_daemon.cc
8f317b600a218afe05f2d73c59204bb98269a950 15-Jul-2011 mukesh agrawal <quiche@chromium.org> shill: add ability to blacklist devices

BUG=chromium-os:16787
TEST=ebuild + manual

manual testing: set up mac80211_hwsim and hostapd on a device.
run shill, observe that it core dumps. run shill again, with
"--black-list=mon.wlan1", observe that it does not core dump.

Change-Id: Id43ed8badc2d8ac414c8a2ceb7487ecb85dc851c
Reviewed-on: http://gerrit.chromium.org/gerrit/4414
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/shill_daemon.cc
887f2983bc84acc15139df257e43217fec1f6cdb 15-Jul-2011 Darin Petkov <petkov@chromium.org> shill: Add a ModemInfo object that's a peer of DeviceInfo.

ModemInfo is responsible for managing ModemManager instances. Each ModemManager
instance watches for and handles an individual ModemManager DBus service. Each
ModemManager will be responsible for creating cellular devices associated with
that ModemManager.

BUG=chromium-os:17576
TEST=unit tests, tested on device

Change-Id: Ie9946cba4465aea8671305e32596fc9f6cca96e2
Reviewed-on: http://gerrit.chromium.org/gerrit/4124
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_daemon.cc
633ac6f0d56a62f8fd21ba7d9a15818fe080fb2f 08-Jul-2011 Darin Petkov <petkov@chromium.org> shill: Add a mockable layer for socket.h.

Mock the layer in device_info_unittest.cc. Some cleanup.

BUG=chromium-os:17394
TEST=unit tests

Change-Id: I2ddcb2fd0e01418a463596bf4e3a804b3e3023b2
Reviewed-on: http://gerrit.chromium.org/gerrit/3807
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_daemon.cc
a3c56f9f49e6c72ff55cc1224cccd60538e9b788 26-May-2011 Paul Stewart <pstew@chromium.org> Split off rtnl facility from device_info

Create an "rtnl_handler" singleton for conversing with rtnl socket.
Create "listener" objects that hold callbacks to interested parties.

BUG=chromium-os:15804
TEST=Rerun unit tests

Change-Id: Ica845b39ce6a0885a4e6d2560146ff8f5f45b900
Reviewed-on: http://gerrit.chromium.org/gerrit/1632
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
b07006b4a9ef0a3553d3eb393c1a8dbedf4439a7 15-May-2011 Chris Masone <cmasone@chromium.org> [shill] Convert LOG(INFO) to VLOG() where appropriate

BUG=chromium-os:15329
TEST=emerge

Change-Id: I30176f5217a0e2fe48b962857e9f34f822ae50aa
Reviewed-on: http://gerrit.chromium.org/gerrit/906
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/shill_daemon.cc
c5b392ed20ef3622626ad1ef66a58ac810ae71c9 15-May-2011 Chris Masone <cmasone@chromium.org> [shill] Use event loop embedded in EventDispatcher

Use event loop embedded in EventDispatcher instead of creating another one in
Daemon::Run()

BUG=None
TEST=gmerge onto device, run with --foreground

Change-Id: I67298d83c10a07402eff85cd9a931a0fe9b1425f
Reviewed-on: http://gerrit.chromium.org/gerrit/907
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
0af98bf87e8fc3cf29293f62d7f3b73cd9adb571 11-May-2011 Paul Stewart <pstew@chromium.org> shill: First step for rtnl code -- device discovery

Add device_info object and add it to the manager. Once started,
this will perform rtnl enumeration. Current tests just assert
that each enumeration completes successfully, but since our code
does not yet store any information based on what it sees, this
cannot be tested yet.

BUG=chromium-os:12933
TEST=New unit tests added

Change-Id: Ie1958222d9831c6117d0ace127857340a11b0bb1
Reviewed-on: http://gerrit.chromium.org/gerrit/655
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_daemon.cc
ee929b7ab2a89bbf2d1aecf85bbd49e53fbea059 10-May-2011 Chris Masone <cmasone@chromium.org> [shill] Use base/logging.h, but with syslog support.

Also, go to base/command_line.h; I love gflags, but base/logging.h requires CommandLine, and having two
ways to handle command line flags seems bad. cros-disks does it, though...

BUG=None
TEST=unit tests

Change-Id: I2a88926366d324a102dfe50583d244c49f33af08
Reviewed-on: http://gerrit.chromium.org/gerrit/602
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/shill_daemon.cc
de21bba06fee1b7b4083b9a85e5506dca87faa80 10-May-2011 Chris Masone <cmasone@chromium.org> [shill] Revert 7d45a3c9d1cd925e70b0896fd029590212efae6e - Migrate to glog/gflags

Glog conflicts with some stuff in base/ that we'd like to use, so we can't use it :-/

BUG=chromium-os:15105
TEST=build, unit test

Change-Id: Iab03aceee3c9bcfd43747d061bb580f675772b6b
Reviewed-on: http://gerrit.chromium.org/gerrit/598
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_daemon.cc
7d45a3c9d1cd925e70b0896fd029590212efae6e 09-May-2011 Chris Masone <cmasone@chromium.org> [shill] Migrate to glog/gflags

Using gflags and glog. Examples:

To log to syslog:
shill

To log all LOG() messages to syslog AND stderr:
shill --stderrthreshold=0

To log all LOG() messages to only stderr:
shill --logtostderr

To log all LOG() messages and VLOG(2) and higher to syslog AND stderr:
shill --stderrthreshold=0 --v=2

To log all LOG() messages and VLOG(2) and higher from manager.cc to only stderr:
shill --logtostderr --v=0 --vmodule="manager.cc=2"

BUG=chromium-os:15064
TEST=unit tests, also install on device and run with --logtostderr --v=2

Change-Id: Idbd38f418b2bb0ea698c2961ac9c3215b739cc31
Reviewed-on: http://gerrit.chromium.org/gerrit/534
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/shill_daemon.cc
75897df1154ac38b7a4512a687241ad6a197ee40 27-Apr-2011 Paul Stewart <pstew@chromium.org> Add initial sketch to shill repository

BUG=chromium-os:12066
TEST=command-line

Change-Id: If1d01bf78fca80de4cc8a26e096e1967293d9738

Review URL: http://codereview.chromium.org//6575006
/system/connectivity/shill/shill_daemon.cc
05697993041f71fef9fc8f541619ec595a6a388f 23-Feb-2011 Paul Stewart <pstew@chromium.org> Reset to empty dir

Change-Id: I3ffe83089f84e5fec7b6d3e15b5236d2277f49f2
/system/connectivity/shill/shill_daemon.cc
aa101a783bb53314fc3e466f0701eec0074386f1 23-Feb-2011 Paul Stewart <pstew@chromium.org> Shill, the connection manager

First checkin into new repository.

TEST=Run from command line
BUG=chromium-os:12065
/system/connectivity/shill/shill_daemon.cc