Attention is currently required from: Timur Davydov.
pespin has posted comments on this change by Timur Davydov. ( https://gerrit.osmocom.org/c/osmo-trx/+/42410?usp=email )
Change subject: transceiver: split control command handling from socket I/O ......................................................................
Patch Set 7:
(1 comment)
File Transceiver52M/Transceiver.cpp:
https://gerrit.osmocom.org/c/osmo-trx/+/42410/comment/4c991da9_eb4a9244?usp=... : PS7, Line 1090: return rc; Ok I think I'm starting to understand the problem here: In your logic, returning error means "don't send a response", but that's actually decoupled.
See how caller of ctrl_sock_handle_rx() uses the rc<0 to trigger stop of osmo-trx program.
The idea of returning 0 in the SETSLOT failure was to simply tell the other peer that the cmd failed, but it kept osmo-trx alive. It is ofc a bug that no answer was being sent in that case.
So your ctrl_cmd_handle() function should actually return 2 independent type of information, as per the above: * Whether a response needs to be transmitted * Whether a failure occurred which should trigger osmo-trx process stop.