secure_channel: Fix transactional_send API to accept xid from handler processes
This commit is contained in:
parent
cf5a09dfb4
commit
bb74f3d8c4
1 changed files with 12 additions and 1 deletions
|
|
@ -489,7 +489,7 @@ defmodule Tres.SecureChannel do
|
||||||
{:keep_state, %{state_data | ping_timer_ref: nil, ping_xid: nil}}
|
{:keep_state, %{state_data | ping_timer_ref: nil, ping_xid: nil}}
|
||||||
end
|
end
|
||||||
|
|
||||||
defp xactional_send_message(message, state_data) do
|
defp xactional_send_message(%{xid: 0} = message, state_data) do
|
||||||
xid = State.increment_transaction_id(state_data.xid)
|
xid = State.increment_transaction_id(state_data.xid)
|
||||||
|
|
||||||
messages = [
|
messages = [
|
||||||
|
|
@ -500,6 +500,17 @@ defmodule Tres.SecureChannel do
|
||||||
XACT_KV.insert(state_data.xact_kv_ref, xid, message)
|
XACT_KV.insert(state_data.xact_kv_ref, xid, message)
|
||||||
send_message(messages, state_data)
|
send_message(messages, state_data)
|
||||||
end
|
end
|
||||||
|
defp xactional_send_message(%{xid: xid} = message, state_data) do
|
||||||
|
_ = State.set_transaction_id(state_data.xid, xid)
|
||||||
|
|
||||||
|
messages = [
|
||||||
|
%{message | xid: xid},
|
||||||
|
%{Openflow.Barrier.Request.new() | xid: xid}
|
||||||
|
]
|
||||||
|
|
||||||
|
XACT_KV.insert(state_data.xact_kv_ref, xid, message)
|
||||||
|
send_message(messages, state_data)
|
||||||
|
end
|
||||||
|
|
||||||
defp send_message(message, %State{socket: socket, transport: transport}) do
|
defp send_message(message, %State{socket: socket, transport: transport}) do
|
||||||
if is_list(message) do
|
if is_list(message) do
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue