---
drivers/atmodem/gprs.c | 30 ++++++++----------------------
1 files changed, 8 insertions(+), 22 deletions(-)
diff --git a/drivers/atmodem/gprs.c b/drivers/atmodem/gprs.c
index 6e01994..3fcf17d 100644
--- a/drivers/atmodem/gprs.c
+++ b/drivers/atmodem/gprs.c
@@ -51,31 +51,17 @@ struct gprs_data {
unsigned int vendor;
};
-static void at_cgatt_cb(gboolean ok, GAtResult *result, gpointer user_data)
-{
- struct cb_data *cbd = user_data;
- ofono_gprs_cb_t cb = cbd->cb;
- struct ofono_error error;
-
- decode_at_error(&error, g_at_result_final_response(result));
-
- cb(&error, cbd->data);
-}
-
-static void at_gprs_set_attached(struct ofono_gprs *gprs, int attached,
+static void at_gprs_set_attach_policy(struct ofono_gprs *gprs,
+ ofono_bool_t always_on,
ofono_gprs_cb_t cb, void *data)
{
- struct gprs_data *gd = ofono_gprs_get_data(gprs);
- struct cb_data *cbd = cb_data_new(cb, data);
- char buf[64];
-
- snprintf(buf, sizeof(buf), "AT+CGATT=%i", attached ? 1 : 0);
+ /* TODO: vendor specific stuff */
- if (g_at_chat_send(gd->chat, buf, none_prefix,
- at_cgatt_cb, cbd, g_free) > 0)
+ /* Pure standard modems only support demand-attach policy */
+ if (!always_on) {
+ CALLBACK_WITH_SUCCESS(cb, data);
return;
-
- g_free(cbd);
+ }
CALLBACK_WITH_FAILURE(cb, data);
}
@@ -401,7 +387,7 @@ static struct ofono_gprs_driver driver = {
.name = "atmodem",
.probe = at_gprs_probe,
.remove = at_gprs_remove,
- .set_attached = at_gprs_set_attached,
+ .set_attach_policy = at_gprs_set_attach_policy,
.attached_status = at_gprs_registration_status,
};
--
1.7.1
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono