shill: Make cellular Connect work for GSM networks.
Add the APN to the properties map passed to Connect.
Set up the list of APNs to try, and step through it when
a connect attempt fails with the InvalidApn error. The
order in which APNs are tried is
- APN which most recently resulted in a successful
connection on the current network
- a user-specified APN, specified by setting the Cellular.APN
property on the service
- the list of APNs found for the home network provider in the
mobile broadband provider database
- if all those fail, a null APN
BUG=chromium-os:23259
TEST=manual testing, some of which involved modifying the
mobile provider DB to create invalid APN entries. Created
two new unit tests as well, and ran all unit tests.
Change-Id: I38c869228fe1aaf7421de8a826c54e7b62c209b2
Reviewed-on: https://gerrit.chromium.org/gerrit/19122
Tested-by: Eric Shienbrood <ers@chromium.org>
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Commit-Ready: Eric Shienbrood <ers@chromium.org>
diff --git a/error.cc b/error.cc
index 23aa4ff..476c42b 100644
--- a/error.cc
+++ b/error.cc
@@ -40,6 +40,7 @@
{ "IncorrectPin", "Incorrect PIN" },
{ "PinRequired", "SIM PIN is required"},
{ "PinBlocked", "SIM PIN is blocked"},
+ { "InvalidApn", "Invalid APN" },
{ "PermissionDenied", "Permission denied" }
};