summaryrefslogtreecommitdiff
path: root/command_service.c
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2010-08-23 23:11:41 +0200
committerJon Bergli Heier <snakebite@jvnv.net>2010-08-23 23:11:41 +0200
commit03b8bec204e909f28ddafb282414e5392ba172ed (patch)
tree92ce5834ce3268fba1ce9266b97474a4c488d818 /command_service.c
parent2fb4e229bc21e7686d28179420bbead35701a558 (diff)
parent59c6f7d3f5b4d62be569c5bddc6a9306cba0627d (diff)
Merge branch 'master' of /mnt/komachi/audist
Diffstat (limited to 'command_service.c')
-rw-r--r--command_service.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/command_service.c b/command_service.c
index 562c7f4..5d357da 100644
--- a/command_service.c
+++ b/command_service.c
@@ -25,17 +25,16 @@ static gboolean service_incoming(GSocketService *service,
g_debug("size == %ld", size);
g_debug(buffer);
- gchar *pos = g_strstr_len(buffer, size, "\r");
- if(pos == NULL) {
- pos = g_strstr_len(buffer, size, "\n");
- }
- if(pos == NULL) {
- g_warning("EOL not found");
- return FALSE;
- }
- *pos = '\0';
+ gchar *pos, *eol;
+ pos = buffer;
+ while((eol = g_strstr_len(pos, size, "\n")) != NULL || (eol = g_strstr_len(pos, size, "\r")) != NULL) {
+ *eol = '\0';
- commands_handle(connection, buffer);
+ commands_handle(connection, pos);
+
+ size -= eol - pos + 1;
+ pos = eol + 1;
+ }
}
return FALSE;