On Fri, Dec 05, 2008 at 11:59:03AM +0200, Dennis Melentyev wrote: > In FreeBSD ports exists an mpd daemon for PPTP connections. I hardly > can find it in pkgsrc (well, it's not portable enough).
I've written a pkgsrc package for older version (mpd-3.18) http://les.ath.cx/DragonFly/dfly2_0-pkgsrc-mpd-3.18.tar.gz and been using here for my PPPoE and PPTP connections. For some reason netgraph modules need to be loaded with kldload command or it just won't work (I seem to recall this started at some point around 1.10-RELEASE, but I haven't managed to track down yet). If you're using GENERIC kernel it means you need to compile a kernel without netgraph modules compiled in, so at the moment mpd is not your choice. Also it seems that ng_pptpgre module (or other modules it depends on) has some race problem, so if you have `options INVARIANTS' in your kernel config, you'll often experience kernel panics. UP kernel is affected by this problem, too. The following bandaid seems to stop the panic, but I occasionally receive `deadlock avoided' error while using rdesktop to connect to a Windows PC in my office, and in that case, the TCP connection dies. --- a/sys/netgraph/pptpgre/ng_pptpgre.c +++ b/sys/netgraph/pptpgre/ng_pptpgre.c @@ -556,8 +556,10 @@ ng_pptpgre_xmit(node_p node, struct mbuf *m, meta_p meta) NG_SEND_DATA(error, priv->lower, m, meta); /* Start receive ACK timer if data was sent and not already running */ - if (error == 0 && gre->hasSeq && priv->xmitSeq == priv->recvAck + 1) + if (error == 0 && gre->hasSeq && priv->xmitSeq == priv->recvAck + 1) { + ng_pptpgre_stop_recv_ack_timer(node); ng_pptpgre_start_recv_ack_timer(node); + } return (error); } > What could be used on DFBSD (client side) to create PPTP tunnel with > MPPC/MPPE without involving manual build from sources? net/pptp?