Print all characters from debug log.
Change-Id: I042384bbd33bcda3a8bde86f6af2beff23ce2d1a
diff --git a/src/api.c b/src/api.c
index 081865e..98c0827 100644
--- a/src/api.c
+++ b/src/api.c
@@ -1675,16 +1675,21 @@
int64_t api_debug_log(char c, struct vcpu *current)
{
+ bool flush;
struct vm *vm = current->vm;
struct vm_locked vm_locked = vm_lock(vm);
- if (c == '\n' || c == '\0' ||
- vm->log_buffer_length == sizeof(vm->log_buffer)) {
+ if (c == '\n' || c == '\0') {
+ flush = true;
+ } else {
+ vm->log_buffer[vm->log_buffer_length++] = c;
+ flush = (vm->log_buffer_length == sizeof(vm->log_buffer));
+ }
+
+ if (flush) {
dlog_flush_vm_buffer(vm->id, vm->log_buffer,
vm->log_buffer_length);
vm->log_buffer_length = 0;
- } else {
- vm->log_buffer[vm->log_buffer_length++] = c;
}
vm_unlock(&vm_locked);