2008-05-28 Tambet Ingo <tambet@gmail.com>

Patch from Dennis Noordsij <dennis.noordsij@helsinki.fi>.

	* src/nm-gsm-device.c: Don't try to reset the modem before PIN is
	checked, it doesn't work on some devices.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3696 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Tambet Ingo 2008-05-28 15:08:51 +00:00
parent eb18d37516
commit 622a3e3880
2 changed files with 51 additions and 3 deletions

View file

@ -1,3 +1,10 @@
2008-05-28 Tambet Ingo <tambet@gmail.com>
Patch from Dennis Noordsij <dennis.noordsij@helsinki.fi>.
* src/nm-gsm-device.c: Don't try to reset the modem before PIN is
checked, it doesn't work on some devices.
2008-05-28 Tambet Ingo <tambet@gmail.com>
* src/ppp-manager/nm-ppp-manager.c (nm_ppp_manager_stop): Make sure

View file

@ -310,6 +310,49 @@ do_register (NMSerialDevice *device)
automatic_registration (device);
}
static void
init_full_done (NMSerialDevice *device,
int reply_index,
gpointer user_data)
{
gsm_device_set_pending (NM_GSM_DEVICE (device), 0);
switch (reply_index) {
case 0:
do_register (device);
break;
case -1:
nm_warning ("Modem second stage initialization timed out");
nm_device_state_changed (NM_DEVICE (device), NM_DEVICE_STATE_FAILED);
break;
default:
nm_warning ("Modem second stage initialization failed");
nm_device_state_changed (NM_DEVICE (device), NM_DEVICE_STATE_FAILED);
return;
}
}
static void
init_modem_full (NMSerialDevice *device)
{
guint id;
char *responses[] = { "OK", "ERROR", "ERR", NULL };
/* At this point we know that SIM has been unlocked, and we can safely
* initialize the modem
*/
if (!nm_serial_device_send_command_string (device, "ATZ")) {
nm_device_state_changed (NM_DEVICE (device), NM_DEVICE_STATE_FAILED);
return;
}
id = nm_serial_device_wait_for_reply (device, 10, responses, responses, init_full_done, NULL);
if (id)
gsm_device_set_pending (NM_GSM_DEVICE (device), id);
else
nm_device_state_changed (NM_DEVICE (device), NM_DEVICE_STATE_FAILED);
}
static void
enter_pin_done (NMSerialDevice *device,
int reply_index,
@ -318,10 +361,9 @@ enter_pin_done (NMSerialDevice *device,
NMSettingGsm *setting;
gsm_device_set_pending (NM_GSM_DEVICE (device), 0);
switch (reply_index) {
case 0:
do_register (device);
init_modem_full (device);
break;
case -1:
nm_warning ("Did not receive response for secret");
@ -484,7 +526,6 @@ init_modem (NMSerialDevice *device, gpointer user_data)
{
guint id;
char *responses[] = { "OK", "ERROR", "ERR", NULL };
if (!nm_serial_device_send_command_string (device, "ATZ E0")) {
nm_device_state_changed (NM_DEVICE (device), NM_DEVICE_STATE_FAILED);
return;