----- Original Message -----
> 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
> 

I bisected the problem to the following commit:
https://github.com/brltty/brltty/commit/cd62215b643b486c93fb28c3fe02e3727cdf3f91

and simply reverting the commit for the asyncAwaitCondtition resolved the 
problem
for me

regards

Jaroslav
diff --git a/Programs/async_wait.c b/Programs/async_wait.c
index 86e4135..b4f2cec 100644
--- a/Programs/async_wait.c
+++ b/Programs/async_wait.c
@@ -142,17 +142,21 @@ awaitAction (long int timeout) {
 
 int
 asyncAwaitCondition (int timeout, AsyncConditionTester *testCondition, void *data) {
+  long int elapsed = 0;
   TimePeriod period;
-  startTimePeriod(&period, timeout);
-
-  while (!(testCondition && testCondition(data))) {
-    long int elapsed;
 
-    if (afterTimePeriod(&period, &elapsed)) return 0;
+  startTimePeriod(&period, timeout);
+  do {
     awaitAction(timeout - elapsed);
-  }
 
-  return 1;
+    if (testCondition) {
+      if (testCondition(data)) {
+        return 1;
+      }
+    }
+  } while (!afterTimePeriod(&period, &elapsed));
+
+  return 0;
 }
 
 void
_______________________________________________
This message was sent via the BRLTTY mailing list.
To post a message, send an e-mail to: BRLTTY@mielke.cc
For general information, go to: http://mielke.cc/mailman/listinfo/brltty

Reply via email to