diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-03-30 15:14:42 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-03-30 15:14:42 -0500 |
commit | a77037c0990edf6a2b8bb33a6188a7add027d283 (patch) | |
tree | 4bbcfa7a123446519bd27048b691ea9f8f36e3e1 /gatchat/test-server.c | |
parent | 6b33c5c4e664c42c5dcf7b940110592dd8f87858 (diff) | |
download | ofono-a77037c0990edf6a2b8bb33a6188a7add027d283.tar.bz2 |
Add test implementation for CFUN
Diffstat (limited to 'gatchat/test-server.c')
-rw-r--r-- | gatchat/test-server.c | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/gatchat/test-server.c b/gatchat/test-server.c index 267cf9b0..3b28b09f 100644 --- a/gatchat/test-server.c +++ b/gatchat/test-server.c @@ -145,17 +145,49 @@ static void cgsn_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user) }; } +static gboolean send_ok(gpointer user) +{ + GAtServer *server = user; + + g_at_server_send_final(server, G_AT_SERVER_RESULT_OK); + + return FALSE; +} + static void cfun_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user) { GAtServer *server = user; switch (type) { case G_AT_SERVER_REQUEST_TYPE_SUPPORT: + g_at_server_send_info(server, "+CFUN: (0-1)"); g_at_server_send_final(server, G_AT_SERVER_RESULT_OK); break; + case G_AT_SERVER_REQUEST_TYPE_SET: + { + GAtResultIter iter; + int mode; + + g_at_result_iter_init(&iter, cmd); + g_at_result_iter_next(&iter, "+CFUN="); + + if (g_at_result_iter_next_number(&iter, &mode) == FALSE) + goto error; + + if (mode != 0 && mode != 1) + goto error; + + g_timeout_add_seconds(3, send_ok, server); + break; + } default: - g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); + goto error; }; + + return; + +error: + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); } static void add_handler(GAtServer *server) |