openvpn/openvpn.patch

Thu, 04 Oct 2012 20:30:05 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 04 Oct 2012 20:30:05 +0200
changeset 715
c10fb90893b9
parent 666
0c12a9c824a0
permissions
-rw-r--r--

Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.

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

mercurial