----- 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: [email protected]
For general information, go to: http://mielke.cc/mailman/listinfo/brltty