Subject: Re: OpenVPN and port sharing - update
To: None <tech-net@netbsd.org>
From: Christos Zoulas <christos@astron.com>
List: tech-net
Date: 05/15/2006 16:08:49
In article <Pine.NEB.4.61.0605151607220.28580@ugly.precedence.co.uk>,
Stephen Borrill  <netbsd@precedence.co.uk> wrote:
>Got OpenVPN 2.1_beta14 working fine from a hacked pkgsrc and tested that 
>port sharing with Apache is working.
>
>I made the changes from der Mouse to uipc_syscalls.c to add support for 
>MSG_NOSIGNAL and added the relevant line to sys/socket.h too:
>
>#define MSG_NOSIGNAL    0x4000          /* Do not generate SIGPIPE */
>
>I chose the same value as Linux which I guess may help with running under 
>Linux emulation (or do we map flags anyway?). As a general point of 
>cleanliness, is this the right thing to do or should the next bit (0x400) 
>be chosen? FreeBSD use a different value (0x20000).

I have committed this with 0x400 in head.

>I then ran into a difference between Linux and NetBSD w.r.t. the 
>CMSG_ALIGN macro. On Linux it'll return a static size based on 
>sizeof(long). On NetBSD, it calls __cmsg_alignbytes() so is only known at 
>runtime. OpenVPN uses it in a global char[] declaration, so on NetBSD it 
>fails as it's unknown at compile time. I've hacked it by hand-implementing 
>the Linux macros. Anyone think of a better way?

I don't know, I'll have to see the patch.

>Except for the small issues above, this shows the warnings about only 
>running on Linux were bogus.

Good :-)

christos