Hi,
for me the Virtual driver (vr) doesn't work, reproducer:
$ brltty -b vr -d server:127.0.0.1 -x a2 -A auth=none
$ telnet 127.0.0.1 35752
cells 20
And nothing happened. It seems the 'vr' driver thinks there is
no data on the socket received, i.e. the awaitSocketInput check in
readNetworkSocket never succeed.
I didn't debug the complex underlying machinery, but the attached
patch that bypassed it and used MSG_DONTWAIT recv flag (which is
available since kernel 2.2) works for me and the Virtual driver
started to work again. I tested it on Fedora 23 (kernel 4.4.7)
thanks & regards
Jaroslav
diff --git a/Drivers/Braille/Virtual/braille.c b/Drivers/Braille/Virtual/braille.c
--- a/Drivers/Braille/Virtual/braille.c
+++ b/Drivers/Braille/Virtual/braille.c
@@ -122,11 +122,10 @@ static const OperationsEntry *operations;
static int
readNetworkSocket (int descriptor, void *buffer, int size) {
- if (awaitSocketInput(descriptor, 0)) {
- int count = recv(descriptor, buffer, size, 0);
+ int count = recv(descriptor, buffer, size, MSG_DONTWAIT);
if (count != -1) return count;
- LogSocketError("recv");
- }
+ else if (errno != EAGAIN && errno != EWOULDBLOCK)
+ LogSocketError("recv");
return -1;
}
_______________________________________________
This message was sent via the BRLTTY mailing list.
To post a message, send an e-mail to: [email protected]
For general information, go to: http://mielke.cc/mailman/listinfo/brltty