summaryrefslogtreecommitdiffstats
path: root/gatchat/test-server.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2011-02-28 16:10:43 -0600
committerDenis Kenzior <denkenz@gmail.com>2011-02-28 16:13:56 -0600
commitef49d65b70c802deb8f634744a1c108c78a9146d (patch)
tree2134f5a6d6abda182b97a921807061fa2cd97913 /gatchat/test-server.c
parent51d950994d2fd8c2c6a9dc7ce59c80a166502fc8 (diff)
downloadofono-ef49d65b70c802deb8f634744a1c108c78a9146d.tar.bz2
gsmdial: Introduce data_mode
If we're in PPP mode, then don't send unsolicited notifications. Only a NO CARRIER is really allowed.
Diffstat (limited to 'gatchat/test-server.c')
-rw-r--r--gatchat/test-server.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gatchat/test-server.c b/gatchat/test-server.c
index e2776872..21d3a6b2 100644
--- a/gatchat/test-server.c
+++ b/gatchat/test-server.c
@@ -52,6 +52,7 @@
#define DEFAULT_SOCK_PATH "./server_sock"
#define IFCONFIG_PATH "/sbin/ifconfig"
+static gboolean data_mode = FALSE;
static int modem_mode = 0;
static int modem_creg = 0;
static int modem_cgreg = 0;
@@ -147,6 +148,7 @@ static void ppp_disconnect(GAtPPPDisconnectReason reason, gpointer user)
g_at_server_set_debug(server, server_debug, "Server");
g_at_server_send_final(server, G_AT_SERVER_RESULT_NO_CARRIER);
+ data_mode = FALSE;
}
static gboolean update_ppp(gpointer user)
@@ -341,6 +343,9 @@ static gboolean do_netreg(gpointer user)
GAtServer *server = user;
char buf[32];
+ if (data_mode)
+ return FALSE;
+
network_status = 1;
switch (modem_creg) {
@@ -566,6 +571,7 @@ static void cgdata_cb(GAtServer *server, GAtServerRequestType type,
break;
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_server_send_intermediate(server, "CONNECT");
+ data_mode = TRUE;
io = g_at_server_get_io(server);
g_at_io_set_write_done(io, setup_ppp, server);
@@ -792,6 +798,7 @@ static void dial_cb(GAtServer *server, GAtServerRequestType type,
GAtIO *io = g_at_server_get_io(server);
g_at_server_send_intermediate(server, "CONNECT");
+ data_mode = TRUE;
g_at_io_set_write_done(io, setup_ppp, server);
}