diff options
author | Denis Kenzior <denkenz@gmail.com> | 2012-09-28 10:37:07 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2012-10-03 09:10:42 -0500 |
commit | 42a318892aaf21a0e9dc86d194553270e1a70492 (patch) | |
tree | 2b5a9cba62f88aa1fd87ac88f1e04cc7561a6117 /tools/stktest.c | |
parent | 10b7b7f4f523c8df525fff33a6996df5d6d21f50 (diff) | |
download | ofono-42a318892aaf21a0e9dc86d194553270e1a70492.tar.bz2 |
stktest: implement CUSATT handler
Diffstat (limited to 'tools/stktest.c')
-rw-r--r-- | tools/stktest.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/stktest.c b/tools/stktest.c index c1a05610..32fa4c64 100644 --- a/tools/stktest.c +++ b/tools/stktest.c @@ -253,6 +253,42 @@ error: g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); } +static void cusatt_cb(GAtServer *server, GAtServerRequestType type, + GAtResult *cmd, gpointer user) +{ + char buf[12]; + + switch (type) { + case G_AT_SERVER_REQUEST_TYPE_SUPPORT: + g_at_server_send_final(server, G_AT_SERVER_RESULT_OK); + break; + case G_AT_SERVER_REQUEST_TYPE_QUERY: + g_at_server_send_ext_final(server, "+CME ERROR: 4"); + break; + case G_AT_SERVER_REQUEST_TYPE_SET: + { + GAtResultIter iter; + const unsigned char *pdu; + int len; + + g_at_result_iter_init(&iter, cmd); + g_at_result_iter_next(&iter, ""); + + if (g_at_result_iter_next_hexstring(&iter, &pdu, &len) == FALSE) + goto error; + + g_at_server_send_final(server, G_AT_SERVER_RESULT_OK); + break; + } + default: + goto error; + }; + + return; + +error: + g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); +} static void listen_again(gpointer user_data) { if (create_tcp() == TRUE) @@ -271,6 +307,7 @@ static void setup_emulator(GAtServer *server) g_at_server_register(server, "+CGMR", cgmr_cb, NULL, NULL); g_at_server_register(server, "+CGSN", cgsn_cb, NULL, NULL); g_at_server_register(server, "+CFUN", cfun_cb, NULL, NULL); + g_at_server_register(server, "+CUSATT", cusatt_cb, NULL, NULL); g_at_server_set_disconnect_function(server, listen_again, NULL); } |