Trouble with openvpn and /dev/tun

Joerg Sonnenberger joerg at britannica.bec.de
Sun Jul 10 05:00:20 PDT 2005


On Sun, Jul 10, 2005 at 01:08:11PM +0200, Dirk Liebke wrote:
> Hi Joerg,
> 
> could you please take a look at tunstart in if_tun:
> 
>  if (!ifq_is_enabled(&ifp->if_snd))
>                 return;

That's not the problem. I thought I send you a patch to try,
but I seems to have forgotten. Sorry. Here's it :-)

Joerg
Index: if_tun.c
===================================================================
RCS file: /home/joerg/wd/repository/dragonflybsd/src/sys/net/tun/if_tun.c,v
retrieving revision 1.22
diff -u -r1.22 if_tun.c
--- if_tun.c	14 Jun 2005 20:41:24 -0000	1.22
+++ if_tun.c	8 Jul 2005 12:59:22 -0000
@@ -384,10 +384,18 @@
 	}
 
 	error = ifq_handoff(ifp, m0, &pktattr);
-	if (error)
+	if (error) {
 		ifp->if_collisions++;
-	else
+	} else {
 		ifp->if_opackets++;
+		if (tp->tun_flags & TUN_RWAIT) {
+			tp->tun_flags &= ~TUN_RWAIT;
+		wakeup((caddr_t)tp);
+		}
+		if (tp->tun_flags & TUN_ASYNC && tp->tun_sigio)
+			pgsigio(tp->tun_sigio, SIGIO, 0);
+		selwakeup(&tp->tun_rsel);
+	}
 	return (error);
 }
 




More information about the Bugs mailing list