DUN client may request to attach/deattach GPRS network. Use
gprs_netreg_update to set attach/deattach status.
---
src/gprs.c | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/src/gprs.c b/src/gprs.c
index f91d0dc..5d850df 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -39,6 +39,7 @@
#include "common.h"
#include "storage.h"
#include "idmap.h"
+#include "gatserver.h"
#define GPRS_FLAG_ATTACHING 0x1
#define GPRS_FLAG_RECHECK 0x2
@@ -1453,14 +1454,31 @@ void ofono_gprs_context_deactivated(struct ofono_gprs_context
*gc,
}
}
+static void ofono_gprs_set_cgatt(struct ofono_gprs *gprs,
+ struct ofono_emulator_req *req)
+{
+ int *mode = req->data;
+
+ gprs->powered = *mode;
+
+ gprs_netreg_update(gprs);
+
+ req->cb(G_AT_SERVER_RESULT_OK, req->cb_data);
+}
+
static void dun_status_watch(struct ofono_emulator *e,
enum ofono_emulator_status status,
void *data, void *user_data)
{
+ struct ofono_gprs *gprs = user_data;
+
if (e == NULL)
return;
switch (status) {
+ case OFONO_EMULATOR_STATUS_SET_CGATT:
+ ofono_gprs_set_cgatt(gprs, data);
+ break;
default:
break;
}
--
1.7.0.4