Sat, 06 Oct 2012 16:24:01 +0200
Update to new vendor software version and adjust patch code accordingly.
Unfortunately the vendor has apparently failed to properly test this
release which depends on missing object symbols in libsasl2.a(common.o):
undefined reference to `sasl_randcreate'
undefined reference to `sasl_mkchal'
undefined reference to `sasl_utf8verify'
undefined reference to `sasl_rand'
undefined reference to `sasl_churn'
undefined reference to `sasl_encode64'
undefined reference to `sasl_decode64'
undefined reference to `sasl_erasebuffer'
undefined reference to `sasl_randfree'
undefined reference to `sasl_strlower'
undefined reference to `get_fqhostname'
...yet to be patched.
michael@666 | 1 | Index: tun.c |
michael@668 | 2 | diff -Nau tun.c.orig tun.c |
michael@666 | 3 | --- tun.c.orig 2011-04-06 18:05:52.000000000 +0200 |
michael@666 | 4 | +++ tun.c 2011-04-30 10:22:38.000000000 +0200 |
michael@668 | 5 | @@ -1391,7 +1391,8 @@ |
michael@666 | 6 | #elif defined(TARGET_SOLARIS) |
michael@666 | 7 | |
michael@666 | 8 | #ifndef TUNNEWPPA |
michael@666 | 9 | -#error I need the symbol TUNNEWPPA from net/if_tun.h |
michael@666 | 10 | +#warning I usually need the symbol TUNNEWPPA from net/if_tun.h -- using a shameless local copy taken from TUN 1.1 |
michael@666 | 11 | +#define TUNNEWPPA (('T'<<16) | 0x0001) |
michael@666 | 12 | #endif |
michael@666 | 13 | |
michael@666 | 14 | void |
michael@668 | 15 | |
michael@668 | 16 | ----------------------------------------------------------------------- |
michael@668 | 17 | |
michael@668 | 18 | It's a hack since unnumbered device drivers could contain digits in |
michael@668 | 19 | their name, but at least this corrects OpenVPN's false assumption that |
michael@668 | 20 | all TUN drivers in the world are named 'tun' by module and device node. |
michael@668 | 21 | In the worst case, this change attempts to attach to a unnumbered device |
michael@668 | 22 | node without appending a number which should fail. |
michael@668 | 23 | |
michael@668 | 24 | - MSvB 2012 |
michael@668 | 25 | |
michael@668 | 26 | Index: tun.c |
michael@668 | 27 | diff -Nau tun.c.orig tun.c |
michael@668 | 28 | --- tun.c.orig Fri Mar 2 19:28:20 2012 |
michael@668 | 29 | +++ tun.c Fri Mar 2 21:08:22 2012 |
michael@668 | 30 | @@ -1480,7 +1480,10 @@ |
michael@668 | 31 | tt->actual_name = (char *) malloc (32); |
michael@668 | 32 | check_malloc_return (tt->actual_name); |
michael@668 | 33 | |
michael@668 | 34 | - openvpn_snprintf (tt->actual_name, 32, "%s%d", dev_tuntap_type, ppa); |
michael@668 | 35 | + if (has_digit((unsigned char *)dev)) |
michael@668 | 36 | + openvpn_snprintf (tt->actual_name, 32, "%s", dev); |
michael@668 | 37 | + else |
michael@668 | 38 | + openvpn_snprintf (tt->actual_name, 32, "%s%d", dev, ppa); |
michael@668 | 39 | |
michael@668 | 40 | if (tt->type == DEV_TYPE_TAP) |
michael@668 | 41 | { |
michael@668 | 42 | Index: error.c |
michael@668 | 43 | diff -Nau error.c.orig error.c |
michael@668 | 44 | --- error.c.orig 2011-12-13 17:58:56.000000000 +0100 |
michael@668 | 45 | +++ error.c 2012-03-06 18:52:39.236992377 +0100 |
michael@668 | 46 | @@ -656,6 +656,13 @@ |
michael@668 | 47 | void plugin_abort (void); |
michael@668 | 48 | #endif |
michael@668 | 49 | |
michael@668 | 50 | + /* Ignored BUG https://community.openvpn.net/openvpn/ticket/53 |
michael@668 | 51 | + * This solves the problem of flawed release of important resources |
michael@668 | 52 | + * when OpenVPN daemonizes. Otherwise we see immediately after startup: |
michael@668 | 53 | + * Tue Mar 6 18:33:22 2012 Initialization Sequence Completed |
michael@668 | 54 | + * Tue Mar 6 18:33:36 2012 event_wait : Interrupted system call |
michael@668 | 55 | + * Tue Mar 6 18:33:36 2012 TCP/UDP: Closing socket */ |
michael@668 | 56 | + if (status == OPENVPN_EXIT_STATUS_ERROR) |
michael@668 | 57 | tun_abort(); |
michael@668 | 58 | |
michael@668 | 59 | #ifdef WIN32 |
michael@668 | 60 | @@ -665,6 +672,7 @@ |
michael@668 | 61 | close_syslog (); |
michael@668 | 62 | |
michael@668 | 63 | #ifdef ENABLE_PLUGIN |
michael@668 | 64 | + if (status == OPENVPN_EXIT_STATUS_ERROR) |
michael@668 | 65 | plugin_abort (); |
michael@668 | 66 | #endif |
michael@668 | 67 |