Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 23 additions & 7 deletions qmp/socket.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,13 +137,29 @@ func (mon *SocketMonitor) Connect() error {
return err
}

// Check for no error on return
var r response
if err := dec.Decode(&r); err != nil {
return err
}
if err := r.Err(); err != nil {
return err
// Wait for response
scanner := bufio.NewScanner(mon.c)
for scanner.Scan() {
var e Event

b := scanner.Bytes()
if err := json.Unmarshal(b, &e); err != nil {
return err
}

// If not an event then our qmp capabilities response
if e.Event == "" {
var r response
if err := json.Unmarshal(b, &r); err != nil {
return err
}
// Check response on errors
if err := r.Err(); err != nil {
return err
}
break
}
// Drop possible event, continue reading
}

// Initialize socket listener for command responses and asynchronous
Expand Down