Community Get-Together

A few community get-together options were discussed on the IRC earlier (17th Aug 2011):

  • Long weekend in a major European city (e.g. Vienna) during October-November
  • Next FOSDEM (spring 2012)

Development

Next Releases

  • OpenVPN 2.2.1
  • OpenVPN 2.3

SVN Merger

Dazo made a heroic merge of James' SVN branch to "master". We need to discuss this in more detail. Here are comments from cron2:

plaintext
Random ramblings in the order I go through things...

- I git-clone'd openvpn-testing.git, went to the svn-merger branch, and
  ran "make check" (on Gentoo Linux), with my full-featured t_client.rc
  setup.

  Test ran:
   - p2mp tun udp (ipv4 + ipv6 ok)
   - p2mp tun tcp (ipv4 + ipv6 ok)
   - p2mp tun udp, "topology subnet" (ipv4 + ipv6 ok)
   - p2mp tap udp (ipv4 ok, ipv6 fails, known issue with IPv6 auto-conf
                   on TAP, not related to the svn-merger)

  so the client code (at least) is still working as well as my tests
  cover the code.

- code alignment needed: for IPv4, the "did_redirect_default_gateway"
  and "spec.remote_endpoint_defined" have been converted to flag bits in
  route_list-iflags, but for IPv6, the old structure elements
  remain - so to make the code more "in-line" for IPv4 and IPv6, this
  needs code adjustments in the IPv6 code.

- I'm not overly happy about the "default-gateway block-local" changes -
  this is less a code issue (the code might be fine) but a procedural
  issue, with a huge change to route.c coming in without any sort of
  review or discussion.  Gah.  (No response needed).

- I'm somewhat more annoyed by this one (route.c, line 1280):

#if defined(TARGET_LINUX)
#ifdef CONFIG_FEATURE_IPROUTE
  /* FIXME -- add LR_MATCH support for CONFIG_FEATURE_IPROUTE */

  this is implemented only for the "non-iproute2" case, so we have
  differing behaviour for iproute2/non-iproute2 compiles now.
  This MUST be fixed for 2.3

- implementations of LR_MATCH for most other platforms are missing,
  but this is something that can be documented in the release notes,
  and if someone thinks they need this, they can add it - but having
  support-or-not for Linux, depending on --enable-iproute2, is a no-go

- the merger has PF_INET6 blocks, and I currently don't run tests over
  IPv6 transport.  So maybe jjo could also take a look at this branch
  and see whether his stuff is still working.

- the web view of route.c, "-887,13 - +894,10" looks a bit weird,
  with "++add_routes (...", but the code in the branch is fine.

- there's a functional and potentially-fatal change here:

void
-delete_routes (struct route_list *rl, const struct tuntap *tt, unsigned int flags, the struct env_set *es)
+delete_routes (struct route_list *rl, struct route_ipv6_list *rl6,
+               const struct tuntap *tt, unsigned int flags, the struct env_set *es)
{
  - if (rl &&  rl-routes_added)
  + if (rl-iflags &  RL_ROUTES_ADDED)

  this new code does not check whether "rl" is non-NULL, but in theory
  it could very well be NULL if we only have IPv6 routes.

  So route.c line 1034 should really be:

    if ( rl &&  rl-iflags &  RL_ROUTES_ADDED)

  and the corresponding code in add_routes (route.c, line 990) should
  read:

    if ( rl &&  !(rl-iflags &  RL_ROUTES_ADDED))

  ... enhancing my tests to add a "--route-nopull --route-ipv6 test"...
  and indeed:

./t_client.sh: Zeile 200:  8787 Speicherzugriffsfehler  ./openvpn $openvpn_conf  $LOGDIR/$SUF:openvpn.log

  *bang*

redirect_default_route_to_vpn (rl=0x0, rl6=0x80f801c, tt=0x8101f90, flags=0,
   es=0x80dc860) at route.c:811
811   if (rl-flags &  RG_ENABLE)

  a proper patch is attached...

- ssl.c: it would be useful if andj or d12fk could review that - I'm not
  actually sure I understand what changed, but it seems to be some
  shuffling around of code and #ifdef ENABLE_CLIENT_CR, without actually
  changing much.

the rest looks ok-ish to me...  (but yes, I can understand that it took
you a heroic effort to merge that).

Andj was ok with the merge after cron2's changes on #openvpn-devel:

plaintext
Ok, I can't find anything horrifying in those patches. By just looking at them (that's only ssl.c and ssl.h).
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9