aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/frontends/android/jni/libandroidbridge/backend/android_service.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/backend/android_service.c b/src/frontends/android/jni/libandroidbridge/backend/android_service.c
index 2f13be93c..c83f0b4dc 100644
--- a/src/frontends/android/jni/libandroidbridge/backend/android_service.c
+++ b/src/frontends/android/jni/libandroidbridge/backend/android_service.c
@@ -167,6 +167,10 @@ static job_requeue_t handle_plain(private_android_service_t *this)
if (len < 0)
{
+ if (errno == EBADF)
+ { /* the TUN device got closed just before calling select(), retry */
+ return JOB_REQUEUE_FAIR;
+ }
DBG1(DBG_DMN, "select on TUN device failed: %s", strerror(errno));
return JOB_REQUEUE_NONE;
}