gsmdial: Introduce data_mode

If we're in PPP mode, then don't send unsolicited notifications.  Only a
NO CARRIER is really allowed.
This commit is contained in:
Denis Kenzior 2011-02-28 16:10:43 -06:00
parent 51d950994d
commit ef49d65b70
1 changed files with 7 additions and 0 deletions

View File

@ -52,6 +52,7 @@
#define DEFAULT_SOCK_PATH "./server_sock" #define DEFAULT_SOCK_PATH "./server_sock"
#define IFCONFIG_PATH "/sbin/ifconfig" #define IFCONFIG_PATH "/sbin/ifconfig"
static gboolean data_mode = FALSE;
static int modem_mode = 0; static int modem_mode = 0;
static int modem_creg = 0; static int modem_creg = 0;
static int modem_cgreg = 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_set_debug(server, server_debug, "Server");
g_at_server_send_final(server, G_AT_SERVER_RESULT_NO_CARRIER); g_at_server_send_final(server, G_AT_SERVER_RESULT_NO_CARRIER);
data_mode = FALSE;
} }
static gboolean update_ppp(gpointer user) static gboolean update_ppp(gpointer user)
@ -341,6 +343,9 @@ static gboolean do_netreg(gpointer user)
GAtServer *server = user; GAtServer *server = user;
char buf[32]; char buf[32];
if (data_mode)
return FALSE;
network_status = 1; network_status = 1;
switch (modem_creg) { switch (modem_creg) {
@ -566,6 +571,7 @@ static void cgdata_cb(GAtServer *server, GAtServerRequestType type,
break; break;
case G_AT_SERVER_REQUEST_TYPE_SET: case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_server_send_intermediate(server, "CONNECT"); g_at_server_send_intermediate(server, "CONNECT");
data_mode = TRUE;
io = g_at_server_get_io(server); io = g_at_server_get_io(server);
g_at_io_set_write_done(io, setup_ppp, 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); GAtIO *io = g_at_server_get_io(server);
g_at_server_send_intermediate(server, "CONNECT"); g_at_server_send_intermediate(server, "CONNECT");
data_mode = TRUE;
g_at_io_set_write_done(io, setup_ppp, server); g_at_io_set_write_done(io, setup_ppp, server);
} }