summaryrefslogtreecommitdiffstats
path: root/gatchat/gatserver.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-03-22 12:57:40 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-03-22 12:59:04 -0500
commit2583ff626b53104e9c9761e0798525da04cf0040 (patch)
tree1b74cd5935a739853e66336d4b27898b4b663a37 /gatchat/gatserver.c
parentc78805a91b0b381c72311a3836df33e325409948 (diff)
downloadofono-2583ff626b53104e9c9761e0798525da04cf0040.tar.bz2
Refactor: Command line extraction
Diffstat (limited to 'gatchat/gatserver.c')
-rw-r--r--gatchat/gatserver.c14
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 */