summaryrefslogtreecommitdiff
path: root/gatchat/test-server.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-04-12 16:34:13 -0700
committerMarcel Holtmann <marcel@holtmann.org>2010-04-12 16:34:13 -0700
commit9fe2d4c88c4abcffb0fb7ef60e4ce24a0ea8ece5 (patch)
treea7f179635beb29cfd53be87ebabec5f25a9872a4 /gatchat/test-server.c
parenta21499ca01f9abe4ec6ede6c131399c724d38a0c (diff)
downloadofono-9fe2d4c88c4abcffb0fb7ef60e4ce24a0ea8ece5.tar.gz
Add fake support for AT+CGDATA and AT+CGDCONT inside AT server
Diffstat (limited to 'gatchat/test-server.c')
-rw-r--r--gatchat/test-server.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/gatchat/test-server.c b/gatchat/test-server.c
index b57a88bb..6acc09ea 100644
--- a/gatchat/test-server.c
+++ b/gatchat/test-server.c
@@ -450,6 +450,56 @@ error:
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
}
+static void cgdata_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+{
+ GAtServer *server = user;
+
+ if (modem_mode == 0) {
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
+ return;
+ }
+
+ switch (type) {
+ case G_AT_SERVER_REQUEST_TYPE_SUPPORT:
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
+ break;
+ case G_AT_SERVER_REQUEST_TYPE_QUERY:
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
+ break;
+ case G_AT_SERVER_REQUEST_TYPE_SET:
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
+ break;
+ default:
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
+ break;
+ }
+}
+
+static void cgdcont_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+{
+ GAtServer *server = user;
+
+ if (modem_mode == 0) {
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
+ return;
+ }
+
+ switch (type) {
+ case G_AT_SERVER_REQUEST_TYPE_SUPPORT:
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
+ break;
+ case G_AT_SERVER_REQUEST_TYPE_QUERY:
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
+ break;
+ case G_AT_SERVER_REQUEST_TYPE_SET:
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
+ break;
+ default:
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
+ break;
+ }
+}
+
static void cimi_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
{
GAtServer *server = user;
@@ -634,6 +684,8 @@ static void add_handler(GAtServer *server)
g_at_server_register(server, "+CREG", creg_cb, server, NULL);
g_at_server_register(server, "+CGREG", cgreg_cb, server, NULL);
g_at_server_register(server, "+CGATT", cgatt_cb, server, NULL);
+ g_at_server_register(server, "+CGDATA", cgdata_cb, server, NULL);
+ g_at_server_register(server, "+CGDCONT", cgdcont_cb, server, NULL);
g_at_server_register(server, "+CIMI", cimi_cb, server, NULL);
g_at_server_register(server, "+CSMS", csms_cb, server, NULL);
g_at_server_register(server, "+CMGF", cmgf_cb, server, NULL);