diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-03-22 12:57:40 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-03-22 12:59:04 -0500 |
commit | 2583ff626b53104e9c9761e0798525da04cf0040 (patch) | |
tree | 1b74cd5935a739853e66336d4b27898b4b663a37 /gatchat/gatserver.c | |
parent | c78805a91b0b381c72311a3836df33e325409948 (diff) | |
download | ofono-2583ff626b53104e9c9761e0798525da04cf0040.tar.bz2 |
Refactor: Command line extraction
Diffstat (limited to 'gatchat/gatserver.c')
-rw-r--r-- | gatchat/gatserver.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gatchat/gatserver.c b/gatchat/gatserver.c index 5e46ba24..efc2f3d0 100644 --- a/gatchat/gatserver.c +++ b/gatchat/gatserver.c @@ -341,9 +341,6 @@ static void server_parse_line(GAtServer *server, char *line) pos += consumed; } - -done: - g_free(line); } static enum ParserResult server_feed(GAtServer *server, @@ -523,8 +520,17 @@ static void new_bytes(GAtServer *p) break; case PARSER_RESULT_COMMAND: - server_parse_line(p, extract_line(p)); + { + char *line = extract_line(p); + + if (line) { + server_parse_line(p, line); + g_free(line); + } else + g_at_server_send_final(p, + G_AT_SERVER_RESULT_ERROR); break; + } case PARSER_RESULT_REPEAT_LAST: /* TODO */ |