History log of /system/connectivity/shill/shill_main.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_main.cc
3a62e235646ec19bee71e8dbee5208282dcd13b5 20-Jan-2016 Alex Vakulenko <avakulenko@google.com> shill: Update libchrome APIs to r369476

The new libchrome has been ported from Chromium and some APIs have
changed. Make necessary changes at call sites.

Change-Id: Ib4c4b5438a2e249777c9c1b6509f085ad5d00049
/system/connectivity/shill/shill_main.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_main.cc
c1d447354db29b83262c7db0857baa84e05e0c2a 15-Jan-2016 Christopher Grant <cjgrant@google.com> shill: add a whitelist invocation option

To compliment the blacklisting approach, add a whitelist option. If
specified, shill will manage only device specified by the whitelist.
Allow only one of blacklist, whitelist or passive mode to be specified.

Bug: 26424002
TEST=Manual testing, new unit tests.

Change-Id: I9149543b56f6bcb464a1ba09da56abcdd9a34b2e
/system/connectivity/shill/shill_main.cc
7370e4f0e15e9d08a37a90eb9b28d41885a5d977 08-Jan-2016 Samuel Tan <samueltan@google.com> shill: do not use in Callback80211Metrics if WiFi is disabled

Fix ChromeosDaemonUnittest so that Callback80211Metrics is not used
when WiFi is disabled.

While there, include <base/bind.h> in shill_main.cc to support the
use of base::Bind in main().

BUG: None
Change-Id: I9db2115e9f6bd1339b1e2b3fa91827bca2234a76
TEST: shill compiles successfully in Android both when WiFi is enabled.
TEST: shill compiles successfully in Android both when WiFi is disabled.
/system/connectivity/shill/shill_main.cc
646c7e891789ea8abadd9e88bdd625d8bea2536d 29-Dec-2015 Samuel Tan <samueltan@google.com> shill: stop using ChromeosDBusDaemon

Replace the use of ChromeosDBusDaemon with ChromeosDaemon,
and move D-Bus initialization code into ChromeosDBusControl.

This will allow us to easily plug in another RPC interface
(Binder) into shill by adding another ControlInterface
implementation that handles that RPC mechanism's initialization.

BUG: 26359493
Change-Id: I0ffe1e080601d7c4544fa6c73bad0f34b4a984ed
TEST: shill compiles on Android and unit tests pass.
TEST: shill compiles on ChromeOS and unit tests pass.
TEST: weave provisioning succeeds on Brillo dragonboard build.
/system/connectivity/shill/shill_main.cc
03e6719bae1e0903d94853b896673a033196bcf5 13-Oct-2015 Alex Vakulenko <avakulenko@google.com> shill: Rename "chromeos" -> "brillo" in include paths and namespaces

libchromeos is transitioning to libbrillo and chromeos namespaces
and include directory is changing to brillo.

Bug: 24872993
TEST=built for aosp and brillo, all unit tests pass on dragonboard

Change-Id: I804311e49ee780ca96e05f6a581e8c95709d4e1d
/system/connectivity/shill/shill_main.cc
ddce70da26f410225a977bc7d9f651f279a5a5b4 30-Sep-2015 Peter Qiu <zqiu@google.com> Do not run logger on Android

Logger utility doesn't exist on Android, so do not run it on Android.

Bug: 24451556
TEST=Manual test on dragonboard
TEST=Start shill and verify logger process is running for shill

Change-Id: I937e33555bea32d2b738fac8892dcb202d9a3ee4
/system/connectivity/shill/shill_main.cc
508ae9d92fd6d91fa7b13e116780ed4be2c8693e 29-Sep-2015 Peter Qiu <zqiu@google.com> Do not daemonize (fork) the daemon process

When starting the daemon using an init system, the environment setup
is already being handled by the init system, so there is no need
to daemonize the daemon process create such setup.

By daemonizing the daemon process, it spawns off a new process to
run the daemon and terminates the current process. This causes
a problem with the init system, where it thinks that the daemon
failed to start. We were able to work around it on Chrome OS's
upstart script by adding the forking expectation in the init
scritp ("expect fork"), but there is not such workaround on
Android's init system.

Fix it by removing the daemonize call (daemon()) and remove the
the forking expectation on Chrome OS's init script.

Bug: 24412675
TEST=start/stop shill on Chrome OS device

Change-Id: Ib584e52f13946b2d18692e85ff55f86d22022505
/system/connectivity/shill/shill_main.cc
81ee711ea9ab5398be994b4eb3a2634c10f0448d 19-Sep-2015 mukesh agrawal <quiche@google.com> shill: shill_main: remove unnecessary include of glib

We don't use any symbols from glib-unix.h any more.
So remove the include.

Bug: None
BUG=chromium:533591
TEST=compile

Change-Id: I54a06753fa5bd4e02dc7693db2da15f3eee5ed93
/system/connectivity/shill/shill_main.cc
bd335110439d524bd5c09867419b30e4a06cdc62 13-Sep-2015 Peter Qiu <zqiu@google.com> Remove usage of chromeos_dbus USE flag

shill is now default to use Chrome OS D-Bus for RPC on Chrome OS,
so remove the usage of chromeos_dbus USE flag from the shill.gyp
file.

While there, remove the dependency for dbus-c++ from libshill.
Also change the define for RPC type from DISABLE_CHROMEOS_DBUS to
ENABLE_CHROMEOS_DBUS, which will make it easier for enabling a
different RPC on another platform (just need to define ENABLE_XXX).

Bug: 24028839
TEST=USE="asan clang wimax pppoe" FEATURES=test emerge-$BOARD shill

Change-Id: Ib2b513de41e08992ca16543758c96658fae9178c
/system/connectivity/shill/shill_main.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_main.cc
dde57ef146d3868130cd8597e805b42395440c9a 14-Aug-2015 Peter Qiu <zqiu@chromium.org> shill: switch over to ChromeosDBusDaemon

This removes the dependency for glib's io handler and message loop.
All the signal handling and message loop setup is handled by chromeos::Daemon.
And all the DBus related setup is handled by chromeos::DBusServiceDaemon.

Daemon/Manager resources initailization are deferred until the bus is intialized.

BUG=chromium:517680
TEST=USE="chromeos_dbus asan clang -cellular" FEATURES=test emerge-$BOARD shill
TEST=wifi_matfunc test

Change-Id: I88928c5c1290403053d6a5cec392e3d459f5a7af
Reviewed-on: https://chromium-review.googlesource.com/293557
Commit-Ready: Zeping Qiu <zqiu@chromium.org>
Tested-by: Zeping Qiu <zqiu@chromium.org>
Reviewed-by: Zeping Qiu <zqiu@chromium.org>
/system/connectivity/shill/shill_main.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_main.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_main.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_main.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_main.cc
af19870a5717a0a9f05c4fd957d4a05f48b8b090 09-Apr-2015 Alex Deymo <deymo@chromium.org> Use PLOG instead of LOG with strerror()

This patch replaces "LOG() << ... << strerror(errno)" by "PLOG() << ..."
when possible, which provides equivalent functionality.

BUG=None
TEST=cbuildbot amd64-generic-full

Change-Id: I760689818a3647efa980c96305a0bc8cf0bb4ac0
Reviewed-on: https://chromium-review.googlesource.com/264834
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Trybot-Ready: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
/system/connectivity/shill/shill_main.cc
127f2565a985650963d6109fc3a32c3da6a17d32 02-Apr-2015 Alex Vakulenko <avakulenko@chromium.org> platform2: Explicitly use base:: namespace with CommandLine

The current revision of libchrome is removing CommandLine class
from global namespace and only retain the one in base::.

Sweep the code to use the correct namespace in anticpation of
libchrome revision roll.

BUG=None
TEST=./build_packages

Change-Id: Ib7ca448dac1204c1e36ab053e775a5a5214997ac
Reviewed-on: https://chromium-review.googlesource.com/263785
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
/system/connectivity/shill/shill_main.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_main.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_main.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_main.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_main.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_main.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_main.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_main.cc
40a014862d79843026e06ef0cc0e3bc1463fe518 31-Oct-2014 Peter Qiu <zqiu@chromium.org> shill: remove glib dependency from libshill-net

Pull glib's IO handlers out from libshill-net to eliminate its dependency
on glib. This is desired since the applications that uses this library
might not want this extra dependency.

This is achieved by adding an IOHandlerFactoryContainer for setting/accessing
IOHandlerFactory. By default. the container will create an IOHandlerFactory
that create IOHandlers base on the libbase's FileDescriptorWatcher. The caller
can implement its own IOHandlerFactory and IOHandlers to overwrite this default
behavior. For example, shill's glib IOHandlers.

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

Change-Id: I92b853309d520f499b9bb2736211cdd3bb3c268f
Reviewed-on: https://chromium-review.googlesource.com/226833
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_main.cc
cc225ef3b77b5e098cc12c661a947e1737480777 30-Sep-2014 Ben Chan <benchan@chromium.org> shill: Replace NULL with nullptr.

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

Change-Id: I30ab47ff32dcadad09ae7a2baf4d4123a6ef0d8e
Reviewed-on: https://chromium-review.googlesource.com/220657
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_main.cc
f002cdb1c378e78026a5a3d10415cc1ebb64f6fe 18-Sep-2014 Prathmesh Prabhu <pprabhu@chromium.org> shill: Add command line switch to control log level in shill_unittest.

This CL adds command line switches to shill_unittest similar to the shill daemon
to control the logging verbosity from different shill objects.

BUG=chromium:415368
TEST=manual.
- Run shill and shill_unittest with different log levels.
- For shill_unittest, make sure --gtest_filter and --log-level switches can
be used together.
- Run shill and shill_unittest with --help and check help message has
logging related messages.

Change-Id: I0793d098fd9b0ea2aaab81cc57ff4abeee40033c
Reviewed-on: https://chromium-review.googlesource.com/218757
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Prathmesh Prabhu <pprabhu@chromium.org>
/system/connectivity/shill/shill_main.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_main.cc
e4c6aff3afa8eec213691e6ab1941d6dd6463ce0 30-Jul-2014 Utkarsh Sanghi <usanghi@chromium.org> shill, libchromeos, lorgnette: move minijail to libchromeos

Move the c++ wrapper of minijail out of lorgnette
and into libchromeos

BUG=None
TEST=emerge-lumpy libchromeos && USE="shill lorgnette" emerge-lumpy
platform2 --test

Change-Id: Idc796ffb042b1ed6b5a4d322d501eab5bff7fc55
Reviewed-on: https://chromium-review.googlesource.com/210553
Reviewed-by: Utkarsh Sanghi <usanghi@chromium.org>
Commit-Queue: Utkarsh Sanghi <usanghi@chromium.org>
Tested-by: Utkarsh Sanghi <usanghi@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
/system/connectivity/shill/shill_main.cc
83bd64b869bef72ec734b96eb9cf291b9a9ac2c4 30-Jul-2014 Utkarsh Sanghi <usanghi@chromium.org> shill, libchromeos: Move the minijail c++ bindings

This CL moves the c++ binding for minijail from shill
into libchromeos

BUG=None
TEST=emerge-lumpy libchromeos && FEATURES=test emerge-lumpy platform2
CQ-DEPEND=CL:210408

Change-Id: Ia087ffbf4f54e08fff450f0e2b7984e9eb3448e3
Reviewed-on: https://chromium-review.googlesource.com/210379
Tested-by: Utkarsh Sanghi <usanghi@chromium.org>
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Utkarsh Sanghi <usanghi@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
/system/connectivity/shill/shill_main.cc
6db7b24348e69639e19cd6c408388b10d6ee54fe 03-May-2014 Paul Stewart <pstew@chromium.org> shill: Remove trivial use of iterators

Move trivial iterations through containers from using an iterator
to using range-based for loops. In instances where it makes sense
also use "auto" for iterators in non-trivial for loops as well.

BUG=None
TEST=Unit tests

Change-Id: I840d90fb62dc96d45f63144462b9a53b28c25ee9
Reviewed-on: https://chromium-review.googlesource.com/198051
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_main.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_main.cc
bb5d4a664b6dfaef5f83fe5f2dd95f01b8764b06 07-Jun-2013 Wade Guthrie <wdg@chromium.org> shill: Removes unused and anachronistic invocation flags.

Removes use-flimflam-dirs but keeps shill::Config (and its associated
files) and because it simplifies testing and, as a byproduct, simplifies
making the storage directories easy to modify on a switch, later.

Also removes |config-dir| and |default-config-dir| because they were
unused.

BUG=chromium:217747
TEST=unittest and a quick smoke test:
* bring-up machine with new shill
* make sure it connects
* go to a couple websites

Change-Id: Id79f35ab33cba79371dc440da2d3f4866700c6ec
Reviewed-on: https://gerrit.chromium.org/gerrit/57952
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_main.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_main.cc
0e1cdeae24dd678a5fe27c840802582c0ca45ec0 28-Feb-2013 Albert Chaulk <achaulk@chromium.org> shill: Implement Service.Remove & delete DHCP leases

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

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

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

Change-Id: Ic6eee17b9d81cd0be8d09c683d85d6a4d19278c9
Reviewed-on: https://gerrit.chromium.org/gerrit/44339
Tested-by: Albert Chaulk <achaulk@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
/system/connectivity/shill/shill_main.cc
63864b6e7bda0e417d18093892ca1692ae926fe6 08-Nov-2012 Paul Stewart <pstew@chromium.org> shill: manager: Suppress autoconnect while stopped

The manager may continue to run for a short while after Manager::Stop()
is called, as shutdown tasks are executed. Prevent the the AutoConnect
task from running as this could be triggered as Services are disconnected.
From there things can only get worse as the associated services for these
devices could be in a partially removed state and cause untold mahyem.

While here, print a message at the point where shill receives a
signal and is shutting down.

BUG=chromium-os:36149
TEST=Unit tests, kill shill with SIGTERM and make sure it shuts down correctly

Change-Id: Ifb7ae1ba4114bc696958498c15b1bf082d2d0e70
Reviewed-on: https://gerrit.chromium.org/gerrit/37581
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_main.cc
8c1706f09b15e6140b89b9a49cd599d8050380d5 31-Aug-2012 Jorge Lucangeli Obes <jorgelo@chromium.org> Use Minijail to launch 'logger' as a regular user.

BUG=chromium-os:33983
TEST=emerge shill, reboot, check that logger is running as user 'syslog'.
TEST=manual, as described in https://gerrit.chromium.org/gerrit/#/c/23912/
TEST=smoke suite.

Change-Id: I54068a223daeee65ff480a720b73965aaf3e64ce
Reviewed-on: https://gerrit.chromium.org/gerrit/31964
Tested-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Commit-Ready: Jorge Lucangeli Obes <jorgelo@chromium.org>
/system/connectivity/shill/shill_main.cc
6e8c54b2f87df76281f43558c24f101c30622d32 16-Aug-2012 Christopher Wiley <wiley@chromium.org> shill: Catch CHECK log messages through LOG_STREAM

Remove the log handler installed by MemoryLog and catch CHECK-esque log
messages by redefining the LOG_STREAM macro instead.

BUG=chromium-os:31145
TEST=Unit tests

Change-Id: I2462a1a0718b5c6f0b5a1a5d4a46ec23268434b5
Reviewed-on: https://gerrit.chromium.org/gerrit/30478
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Gary Morain <gmorain@chromium.org>
Commit-Ready: Christopher Wiley <wiley@chromium.org>
/system/connectivity/shill/shill_main.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_main.cc
f11cebb7f92f0a1531912a9d1adb94c73dfda482 08-Aug-2012 Christopher Wiley <wiley@chromium.org> shill: Trap CHECK messages for MemoryLog

Add a message handler to trap *CHECK, NOT_IMPLEMENTED, and other similar
logging calls that don't go through the MemoryLog. I chose to receive
messages this way in order to avoid forking every logging macro in
base/logging.

TEST=Unit tests, added another to test this particular case
BUG=chromium-os:31145
Change-Id: I8d57ab4b2ef60e27e425156fcfd2eeee6944909f
Reviewed-on: https://gerrit.chromium.org/gerrit/29649
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Christopher Wiley <wiley@chromium.org>
/system/connectivity/shill/shill_main.cc
7eb028996873abf5813bbedbff35df0cb78580cb 29-May-2012 mukesh agrawal <quiche@chromium.org> shill: redirect stderr to syslog

This is primarily driven by libdbus, which will sometimes log messages
to stderr before calling abort(). It may also be useful to capture
messages from some other processes that we fork.

BUG=chromium-os:31205
TEST=manual

Manual testing: recompile with fprintf(stderr, ...) added to main,
verify messages shows up in syslog.

Collateral changes:
- remove some unneeded std:: prefixes
- quiet stderr output of dhcpcd (some messages were being sent
to both syslog and stderr)

Change-Id: I5440e165557bd61e2174c5d499d499d1af2bdb51
Reviewed-on: https://gerrit.chromium.org/gerrit/23912
Commit-Ready: mukesh agrawal <quiche@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/shill_main.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_main.cc
156e73f6800eca070d2e3c2a7d40c281c77ecac1 20-Apr-2012 Ben Chan <benchan@chromium.org> shill: Add command line switch for specifying logging scopes.

This CL makes the following changes:
1. Add a command line switch --log-scopes for specifying scopes to
enable for SLOG-based logging.
2. Set the verbose level of SLOG based on the logging level specified by
--log-level.
3. Remove VLOG-specific command switches: --v and --vmodules.

BUG=chromium-os:29794
TEST=Test starting shill with --log-level and --log-scopes switches.

Change-Id: Ia81b74b3a85c606067f6479ca925ad8f615bd6e6
Reviewed-on: https://gerrit.chromium.org/gerrit/20735
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
/system/connectivity/shill/shill_main.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_main.cc
03ed818f858f2a38df7c5cf7edfb856350b69416 20-Apr-2012 Ben Chan <benchan@chromium.org> shill: Remove unnecessary extern "C" declaration around glib-unix.h

In glib 2.30, there is a missing extern "C" declaration in glib-unix.h.
An extern "C" declaration was added around the inclusion of glib-unix.h
in shill to address that issue. This is no longer needed as the
dev-libs/glib-2.30.0-r2 package has a patch that fixes the issue.

BUG=none
TEST=Build and run unit tests.

Change-Id: I69927d5e5416966c8feee8f17587ce9a11ccf873
Reviewed-on: https://gerrit.chromium.org/gerrit/20669
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_main.cc
4f5e5490fb72f53a76598e8c0f3c17e2f4e313d6 18-Apr-2012 Darin Petkov <petkov@chromium.org> shill: --use-flimflam-dirs options switches all shill directories to flimflam's.

Rename the existing --use-flimflam-profiles option to
--use-flimflam-dirs and include the run directory in the set of
directories that get switched. This allows easier command-line switch
between flimflam and shill.

BUG=chromium-os:29630
TEST=tested on device:
stop flimflam
shill --foreground --use-flimflam-dirs
checked that /var/run/flimflam/resolv.conf gets updated

Change-Id: I34d4d4be21cb30f8de8f14538864d40942126b27
Reviewed-on: https://gerrit.chromium.org/gerrit/20451
Commit-Ready: Darin Petkov <petkov@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
/system/connectivity/shill/shill_main.cc
4350006e5447e471b59a956b0ef4d570e9b8e9ab 10-Feb-2012 mukesh agrawal <quiche@chromium.org> shill: include meta-data (including file and line) when logging
to syslog

BUG=chromium-os:24539
TEST=manual

manual testing: built shill with and without chromeos::kLogHeader
option. observed that syslog messages included header
(<date>/<timestamp>:<severity>:<file>(<line>) when option was
present. observed that syslog messages did not include header
when option was absent.

Change-Id: Iaa063c54e558d3698a4fef794e0c37a28b2f01fa
Reviewed-on: https://gerrit.chromium.org/gerrit/15696
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/shill_main.cc
b716325521ef1229161198dcb6917b1dfc0a78cc 10-Dec-2011 Paul Stewart <pstew@chromium.org> shill: main: Test --help flag first

Handle the --help flag first, so it is dealt with (and we exit)
before any thought to daemonizing or setting up logging.

BUG=chromium-os:24059
TEST="shill --help" now works without "--foreground" flag

Change-Id: I410145e747519d412eb211a001ff5083aa81de66
Reviewed-on: https://gerrit.chromium.org/gerrit/12715
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_main.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_main.cc
b893bed2d3dd98a1fe761b078dcd41fe7bffb0be 29-Nov-2011 Gaurav Shah <gauravsh@chromium.org> shill: Daemon()ize. For real.

Without --forgeground, shill will now daemonize by default. This is
needed to make it work in way we such that we can reuse the flimflam
upstart job (which has an "expect fork") and start flimflam or shill
depending on the presence of a magic file.

BUG=chromium-os:23492
TEST=manually tested that shill deamonizes, and that it works properly
with the upstart change (https://gerrit.chromium.org/gerrit/12176)

Change-Id: I5de5d56178d7d1c2e15702f3be91206debf44aa9
Reviewed-on: https://gerrit.chromium.org/gerrit/12177
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Gaurav Shah <gauravsh@chromium.org>
Tested-by: Gaurav Shah <gauravsh@chromium.org>
/system/connectivity/shill/shill_main.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_main.cc
b52d6ff3a1cd6a9f3dc0adeb7b1286bab1b28afc 02-Nov-2011 Thieu Le <thieule@chromium.org> shill: Move destruction of DBusControl object to AtExitManager

Some singleton objects (eg. DHCPProvider) accesses DBus in their
destructors which are called by AtExitManager. We need to move the
destruction of the DBusControl object to AtExitManager as well to ensure
that it is destroyed after the singletons.

BUG=chromium-os:22389
TEST=Unit tests, manually cause shill to exit to ensure no crash

Change-Id: I2df27ff3c109457713be1a994b70a904c5f2d0f6
Reviewed-on: https://gerrit.chromium.org/gerrit/11067
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
Commit-Ready: Thieu Le <thieule@chromium.org>
/system/connectivity/shill/shill_main.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_main.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_main.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_main.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_main.cc
19e30406a1d3123892007d20438527dc4b2f92c3 20-Jul-2011 Chris Masone <cmasone@chromium.org> [shill] Continue fixing sloppy naming stuff

We were using some illegal dbus paths. Stop :-)

BUG=chromium-os:17744
TEST=unit tests, run on device and list-devices, list-services

Change-Id: I812f0f4d3d663e2af50477d46900ea885ee69e21
Reviewed-on: http://gerrit.chromium.org/gerrit/4349
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/shill_main.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_main.cc
aceede399cc4e0fafb05776ba455ebdbe7e96397 19-Jul-2011 Darin Petkov <petkov@chromium.org> shill: Convert DHCP Proxy to use a model similar to Supplicant and ModemManager.

Also, don't create a DBus connection for each proxy since this doesn't work in
some event callbacks and wastes resources. Instead use a shared connection
provided by the ProxyFactory.

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

Change-Id: I4d16b430783c1159501c0414ef3b846bce1a4c0e
Reviewed-on: http://gerrit.chromium.org/gerrit/4279
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/shill_main.cc
d1967260595f8483c83cc60104affe400660031d 18-Jul-2011 Darin Petkov <petkov@chromium.org> shill: Merge supplicant's proxy factory into ProxyFactory.

BUG=chromium-os:16785
TEST=unit tests

Change-Id: I315ad64bcdee1a14edfc4f5485696f495c55e7b9
Reviewed-on: http://gerrit.chromium.org/gerrit/4271
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/shill_main.cc
c90fe52d7eed164b63f9a3af4bcb505ee78d3f43 15-Jul-2011 Darin Petkov <petkov@chromium.org> shill: Create mockable ModemManagerProxy on appearance of new ModemManagers.

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

Change-Id: Id9e6500168d63493eb94bd7939e379b964bef063
Reviewed-on: http://gerrit.chromium.org/gerrit/4269
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/shill_main.cc
af57195acad7aebca521e2d67bd58f4c0abb676b 14-Jul-2011 mukesh agrawal <quiche@chromium.org> shill: refactor supplicant_process_proxy and supplicant_interface_proxy

move these to separate files, and add a layer of indirection. this is
a step towards adding more unittests for wifi. (after breaking out these
classes, we can define mocks of them.)

BUG=chromium-os:16785
TEST=FEATURES="test nostrip noclean" emerge-x86-generic shill

Change-Id: I18570d47514bac0493d053f1a82b4d79a1565ad2
Reviewed-on: http://gerrit.chromium.org/gerrit/4117
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/system/connectivity/shill/shill_main.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_main.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_main.cc
f7897bcadc2c1860af9469d7d13e223219f842aa 09-Jun-2011 Darin Petkov <petkov@chromium.org> shill: Start a mockable GLib interface.

Use the interface to test DHCPConfig::Start.

BUG=chromium-os:16319,chromium-os:16013
TEST=unit test, tested on device

Change-Id: Ice6c65b0cc2ac2dd738cb6aacb426703cce48a3f
Reviewed-on: http://gerrit.chromium.org/gerrit/2356
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/shill_main.cc
7ccc8197eb210aaf7f658008ef22d38c0a70fa17 24-May-2011 Chris Masone <cmasone@chromium.org> [shill] Enable dynamic log-level changes

BUG=chromium-os:15515
TEST=install on device, stop flimflam, run shill and use dbus-send to call GetDebugLevel/SetDebugLevel

Change-Id: I449388f26d20524e0883c51569beeae23f7b64d2
Reviewed-on: http://gerrit.chromium.org/gerrit/1488
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_main.cc
d1b715b403e17f4ce01ec15877ea1901fc21a885 03-Jun-2011 Darin Petkov <petkov@chromium.org> shill -- connect dhcp config to proxies and provider.

In addition, spawn dhcpcd on request.

Cleanup the Makefile a bit. Don't do lazy initialization of dbus_control so that
the connection can be passed to DHCPProvider.

BUG=chromium-os:16013
TEST=modified device_info to request a DHCPConfig for a DeviceStub.

Change-Id: Ib3b032b25bd5b071635816635bf6066cc3b386d5
Reviewed-on: http://gerrit.chromium.org/gerrit/2024
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
/system/connectivity/shill/shill_main.cc
0e1d10405dd18d5d3cf5fb6be8cf907469c2bded 10-May-2011 Chris Masone <cmasone@chromium.org> [shill] Switch from home-grown EventQueue to Chrome's MessageLoop

Many other chrome os daemons have borrowed chrome's message loop abstraction,
which supports posting Task and DelayedTask objects to the loop for later
processing. There are also Callback* objects in there that we can use for
other things, as I've done with the GlibIOInputHandler. Unit tests contain
some trivial examples.

More documentation in:
base/message_loop.h
base/task.h
base/callback.h

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

Change-Id: Ia53dcbdf70da45e4ceda7eed1debbc4bb507446e
Reviewed-on: http://gerrit.chromium.org/gerrit/713
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
/system/connectivity/shill/shill_main.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_main.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_main.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_main.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_main.cc
05697993041f71fef9fc8f541619ec595a6a388f 23-Feb-2011 Paul Stewart <pstew@chromium.org> Reset to empty dir

Change-Id: I3ffe83089f84e5fec7b6d3e15b5236d2277f49f2
/system/connectivity/shill/shill_main.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_main.cc