Question
--------
From the libcamdio readme:

after startup camd.socket is used as before because /tmp/.listen.camd.socket
doesn't inform camd when it is supposed to stop decoding a channel (on signal
loss or when enigma goes into standby for example)

I don't understand. .listen.camd.socket is supposed to send exactly the same info as is written to camd.socket. If not this is a bug.
Wat exactly is send when the emu is supposed to stop recording or when enigma is going to standby?

Answer
------
Well, this has to do with the client/server model of camd.socket and
.listen.camd.socket. With camd.socket the softcam (in this case libcamdio.so.0)
plays the role of the server, enigma plays the role of the client. With
.listen.camd.socket it's exactly the other way around, enigma is the server,
while the softcam is the client. Now, with camd.socket, no data is sent
explicitly when enigma is loosing the tuner signal or goes into standby, but
enigma, being the client in the enigma/softcam communication, does close the
connections to camd.socket for all services the softcam is supposed to stop
decoding. This closing of the connection can be and is being detected by
libcamdio.so.0 and used to tell the softcam to stop decoding by calling the
camd_service_release function. With .listen.camd.socket however, there is no
such mechanism, because when enigma is the server in the enigma<->softcam
communication, it can't of course just close any connections. The softcam on the
other hand doesn't know what enigma is doing. So, for .listen.camd.socket to be
equal in functionality to camd.socket, a new command would have to be added that
informs the softcam to release all channels without starting to decrypt new
channels or the meaning of \x9f\x80\x3f\x04\x83\x02\x03\x01, which by the way
apparently is never being sent through .listen.camd.socket, could be changed
from "leave transponder", which doesn't really have much meaning anyway as soon
as you have two tuners, to "stop decoding all services".
