ctrl: increment message IDs for CTRL commands

Implicitly use distinct IDs for CTRL commands. This is a prerequisite
for matching GET_REPLY IDs to GET IDs, to correctly handle CTRL
responses without counting on being lucky.

Rather use 'use_id' as var name instead of overloading the 'id' keyword.

Change-Id: I698faa013eb14f88759685d50d925f5d82d80aa0
This commit is contained in:
Neels Hofmeyr 2020-11-30 22:04:41 +01:00
parent 05439d7029
commit f79a86fc25
1 changed files with 16 additions and 4 deletions

View File

@ -33,6 +33,12 @@ class OsmoCtrl(log.Origin):
self.host = host
self.port = port
self.sck = None
self._next_id = 0
def next_id(self):
ret = self._next_id
self._next_id += 1
return ret
def prefix_ipa_ctrl_header(self, data):
if isinstance(data, str):
@ -72,13 +78,19 @@ class OsmoCtrl(log.Origin):
self.dbg('Receiving', data=data)
return data
def do_set(self, var, value, id=0):
setmsg = "SET %s %s %s" %(id, var, value)
def do_set(self, var, value, use_id=None):
if use_id is None:
use_id = self.next_id()
setmsg = "SET %s %s %s" %(use_id, var, value)
self._send(setmsg)
return use_id
def do_get(self, var, id=0):
getmsg = "GET %s %s" %(id, var)
def do_get(self, var, use_id=None):
if use_id is None:
use_id = self.next_id()
getmsg = "GET %s %s" %(use_id, var)
self._send(getmsg)
return use_id
def __enter__(self):
self.connect()