Skip to content

Commit

Permalink
Make negotiation optional in QEMUMonitorProtocol
Browse files Browse the repository at this point in the history
This is a preparation for qemu-ga-client which uses
QEMUMonitorProtocol class. The class tries to
negotiate capabilities on connect, however, qemu-ga
doesn't suppose it and fails.

This change makes the negotiation optional, though
it's still performed by default for compatibility.

Signed-off-by: Ryota Ozaki <[email protected]>
Signed-off-by: Luiz Capitulino <[email protected]>
  • Loading branch information
ozaki-r authored and Luiz Capitulino committed Sep 26, 2012
1 parent ac05f34 commit e9d17b6
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions QMP/qmp.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ def __get_sock(self):
return socket.socket(family, socket.SOCK_STREAM)

def __negotiate_capabilities(self):
self.__sockfile = self.__sock.makefile()
greeting = self.__json_read()
if greeting is None or not greeting.has_key('QMP'):
raise QMPConnectError
Expand All @@ -73,7 +72,7 @@ def __json_read(self, only_event=False):

error = socket.error

def connect(self):
def connect(self, negotiate=True):
"""
Connect to the QMP Monitor and perform capabilities negotiation.
Expand All @@ -83,7 +82,9 @@ def connect(self):
@raise QMPCapabilitiesError if fails to negotiate capabilities
"""
self.__sock.connect(self.__address)
return self.__negotiate_capabilities()
self.__sockfile = self.__sock.makefile()
if negotiate:
return self.__negotiate_capabilities()

def accept(self):
"""
Expand Down

0 comments on commit e9d17b6

Please sign in to comment.