I'm the developer for Tunnelblick (open source GUI for OS X), having taken
over from Angelo Laub a couple of years ago. I'd like to make a beta of
Tunnelblick with OpenVPN 2.3alpha1 available for testing, but the alpha has
a bug that makes it useless for most users of Tunnelblick. Lots of people
use Tunnelblick betas, so it would be a good way to get 2.3alpha1 into the
hands of a lot of people -- there were more than 30,000 downloads of the
last beta in the ten days it was available. (Users can easily switch back
to using OpenVPN 2.2.1 with two clicks in the Tunnelblick GUI, so there's
not much downside for them to try it.

Almost all Tunnelblick users use the standard Tunnelblick up/down scripts,
which fail on 2.3alpha1. I don't want to provide a beta of Tunnelblick that
includes OpenVPN 2.3alpha1 if it will only work for a small percentage of
users.

I don't know OpenVPN well enough to work on this, so Samuli Seppänen
suggested that I email to this mailing list. Could one of you developers
provide a patch to 2.3alpha1 that fixes it? I would rather not wait until
alpha2 to start testing.


*Details
*

OpenVPN 2.3alpha1 fails when the argument to "--up" contains more than an
execution path. The problem also occurs for the "--down" option and the new
"--route-pre-down" option (and presumably any other options that take more
than just an execution path).

OpenVPN 2.2.1 and earlier work fine with an identical command line.

This happens on OS X; I don't know about other platforms but I assume
option processing is not very platform specific.

2.3alpha1 is apparently treating the entire argument that follows "--up" as
the path for a file to execute, instead of treating it as a shell command
consisting of a path optionally followed by arguments.

On 2.3alpha1:

     test jkb$ *openvpn-2.3-alpha1/openvpn --config
/private/tmp/test/config.ovpn  --up "/private/tmp/test/up.sh  -x"*
     Options error: --up script fails with '/private/tmp/test/up.sh  -x':
No such file or directory
     Options error: Please correct these errors.
     Use --help for more information.

But on 2.2.1:
     test jkb$ *openvpn-2.2.1/openvpn --config
/private/tmp/test/config.ovpn --up "/private/tmp/test/up.sh  -x"*
     Wed Mar  7 07:30:33 2012 OpenVPN 2.2.1 i386-apple-darwin10.8.0 [SSL]
[LZO2] [PKCS11] [eurephia] built on Mar  1 2012
     Enter Auth Username:
     Wed Mar  7 07:30:46 2012 ERROR: Auth username is empty
     Wed Mar  7 07:30:46 2012 Exiting

And
     test jkb$ *openvpn-2.3-alpha1/openvpn --config
/private/tmp/test/config.ovpn  --up "/private/tmp/test/up.sh"*
     Wed Mar  7 07:35:56 2012 OpenVPN 2.3-alpha1 i386-apple-darwin10.8.0
[SSL (OpenSSL)] [LZO2] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110522-1
(2.2.0)] built on Mar  1 2012
     Enter Auth Username:
     Wed Mar  7 07:35:59 2012 ERROR: Auth username is empty
     Wed Mar  7 07:35:59 2012 Exiting due to fatal error

Notes:

   1. The above commands are simplified to show the problem. They won't
   actually work for making a connection.
   2. The double-quotes in the above command lines are used so bash will
   create single arguments that contain spaces. When starting OpenVPN,
   Tunnelblick uses an OS X interface that provides the arguments as separate
   items, so they don't need to be enclosed in quotes. The actual argument
   that OpenVPN is passed will contain quotes if the path contains spaces.

If the path contains spaces, OpenVPN will be passed


     "/private/tmp/test path with spaces/up.sh"  -x

If the path does not contain spaces, OpenVPN will be passed

     /private/tmp/test/up.sh -x


I'd appreciate any help on this that I can get.

Thanks,

Jon Bullard

Reply via email to