Tony Houghton wrote:
The problem is that the svdrp connection has a tendency to freeze. I have to wait a few minutes for the socket to timeout at the system level. VDR's SVDRP timeout is set to 0, but I don't think that's making a difference. I think the reason other programs such as vdradmin work OK is that they open and close the connection for every command, but that approach is too sluggish for boxstar, which is supposed to be a transparent, primary interface to controlling VDR.
Holding the SVDRP connection for a long time is not a good idea, since VDR can only keep one SVDRP connection open at the same time. Holding the line permanently would block out other uses like VDRAdmin or EPGSearch plugin.
If you don't want to open the connection dynamically, you can write a simple plugin that forwards the key presses. This shouldn't be too difficult, since cRemote::Put is thread-safe, so you can open a socket and forward incoming key presses from a simple thread. You could even go the next step and write a real boxstar-remote plugin for VDR.
If you want to rely on existing stuff, maybe you can use the remote plugin from Oliver Endriss for your needs - it supports tty control and telnet control.
About the original question why the socket freezes: I don't see an obvious reason why this happens. If the VDR side would freeze, this would lead to a watchdog timeout. Otherwise, if anything kills the connection, there is probably a "lost connection to SVDRP client" message in the syslog. You may want to add some debugging code there to investigate. (svdrp.c, line ~1594)
Cheers, Udo _______________________________________________ vdr mailing list email@example.com http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr