diff --git a/sjrpc/core/rpcconnection.py b/sjrpc/core/rpcconnection.py index de1d35c163381dbe2a31f2fe3cc9ad83b72768ec..62435fd0e8c171e29259d87ed4133dc14b8b996e 100644 --- a/sjrpc/core/rpcconnection.py +++ b/sjrpc/core/rpcconnection.py @@ -266,11 +266,18 @@ class RpcConnection(object): :param \*\*kwargs: the keyword arguments for the call :return: the message id of the call ''' - + + # Extract _data from argument: + if '_data' in kwargs: + data = kwargs['_data'] + del kwargs['_data'] + else: + data = None + # Send the call to the peer: msg_id = self._send_call(method_name, *args, **kwargs) - self._calls[msg_id] = {'async': True} + self._calls[msg_id] = {'async': True, 'data': data} return msg_id @@ -323,6 +330,7 @@ class RpcConnection(object): else: # Else, it's an asynchonous call, so, we need to notify # manager that the response has been received: + message['data'] = call['data'] self._manager.signal_arrival(message) # Message will be deleted from the call list by the