Ticket #284: openvpn-2.4.0-up-pre.patch

File openvpn-2.4.0-up-pre.patch, 4.9 KB (added by Simon Matter, 4 years ago)

Updated patch for 2.4.x

  • doc/openvpn.8

    diff -Naur openvpn-2.4.0.orig/doc/openvpn.8 openvpn-2.4.0/doc/openvpn.8
    old new  
    18451845.B route add \-net 10.0.0.0 netmask 255.255.255.0 gw $5
    18461846.\"*********************************************************
    18471847.TP
     1848.B \-\-up\-pre
     1849Call
     1850.B \-\-up
     1851cmd/script before, rather than after, TUN/TAP open.
     1852.\"*********************************************************
     1853.TP
    18481854.B \-\-up\-delay
    18491855Delay TUN/TAP open and possible
    18501856.B \-\-up
  • src/openvpn/init.c

    diff -Naur openvpn-2.4.0.orig/src/openvpn/init.c openvpn-2.4.0/src/openvpn/init.c
    old new  
    15731573    }
    15741574#endif
    15751575
     1576    /* actually run the up script based on --up-pre flag */
     1577    if (c->options.up_pre)
     1578    {
     1579        run_up_down (c->options.up_script,
     1580                     c->plugins,
     1581                     OPENVPN_PLUGIN_UP,
     1582                     "[unknown-dev]",
     1583#ifdef _WIN32
     1584                     TUN_ADAPTER_INDEX_INVALID,
     1585#endif
     1586                     dev_type_string (c->options.dev, c->options.dev_type),
     1587                     TUN_MTU_SIZE (&c->c2.frame),
     1588                     EXPANDED_SIZE (&c->c2.frame),
     1589                     NULL,
     1590                     NULL,
     1591                     "init",
     1592                     NULL,
     1593                     "up",
     1594                     c->c2.es);
     1595    }
     1596
    15761597    /* initialize (but do not open) tun/tap object */
    15771598    do_init_tun(c);
    15781599
     
    16391660        do_ifconfig(c->c1.tuntap, c->c1.tuntap->actual_name, TUN_MTU_SIZE(&c->c2.frame), c->c2.es);
    16401661    }
    16411662
    1642     /* run the up script */
    1643     run_up_down(c->options.up_script,
    1644                 c->plugins,
    1645                 OPENVPN_PLUGIN_UP,
    1646                 c->c1.tuntap->actual_name,
     1663    /* actually run the up script based on --up-pre flag */
     1664    if (!c->options.up_pre)
     1665    {
     1666        run_up_down(c->options.up_script,
     1667                    c->plugins,
     1668                    OPENVPN_PLUGIN_UP,
     1669                    c->c1.tuntap->actual_name,
    16471670#ifdef _WIN32
    1648                 c->c1.tuntap->adapter_index,
     1671                    c->c1.tuntap->adapter_index,
    16491672#endif
    1650                 dev_type_string(c->options.dev, c->options.dev_type),
    1651                 TUN_MTU_SIZE(&c->c2.frame),
    1652                 EXPANDED_SIZE(&c->c2.frame),
    1653                 print_in_addr_t(c->c1.tuntap->local, IA_EMPTY_IF_UNDEF, &gc),
    1654                 print_in_addr_t(c->c1.tuntap->remote_netmask, IA_EMPTY_IF_UNDEF, &gc),
    1655                 "init",
    1656                 NULL,
    1657                 "up",
    1658                 c->c2.es);
     1673                    dev_type_string(c->options.dev, c->options.dev_type),
     1674                    TUN_MTU_SIZE(&c->c2.frame),
     1675                    EXPANDED_SIZE(&c->c2.frame),
     1676                    print_in_addr_t(c->c1.tuntap->local, IA_EMPTY_IF_UNDEF, &gc),
     1677                    print_in_addr_t(c->c1.tuntap->remote_netmask, IA_EMPTY_IF_UNDEF, &gc),
     1678                    "init",
     1679                    NULL,
     1680                    "up",
     1681                    c->c2.es);
     1682    }
    16591683
    16601684#if defined(_WIN32)
    16611685    if (c->options.block_outside_dns)
  • src/openvpn/options.c

    diff -Naur openvpn-2.4.0.orig/src/openvpn/options.c openvpn-2.4.0/src/openvpn/options.c
    old new  
    301301    "                  Execute as: cmd tun/tap-dev tun-mtu link-mtu \\\n"
    302302    "                              ifconfig-local-ip ifconfig-remote-ip\n"
    303303    "                  (pre --user or --group UID/GID change)\n"
     304    "--up-pre        : Run --up command before TUN/TAP open.\n"
    304305    "--up-delay      : Delay tun/tap open and possible --up script execution\n"
    305306    "                  until after TCP/UDP connection establishment with peer.\n"
    306307    "--down cmd      : Run command cmd after tun device close.\n"
     
    16231624    SHOW_STR(up_script);
    16241625    SHOW_STR(down_script);
    16251626    SHOW_BOOL(down_pre);
     1627    SHOW_BOOL(up_pre);
    16261628    SHOW_BOOL(up_restart);
    16271629    SHOW_BOOL(up_delay);
    16281630    SHOW_BOOL(daemon);
     
    55305532        VERIFY_PERMISSION(OPT_P_GENERAL);
    55315533        options->down_pre = true;
    55325534    }
     5535    else if (streq(p[0], "up-pre") && !p[1])
     5536    {
     5537        VERIFY_PERMISSION(OPT_P_GENERAL);
     5538        options->up_pre = true;
     5539    }
    55335540    else if (streq(p[0], "up-delay") && !p[1])
    55345541    {
    55355542        VERIFY_PERMISSION(OPT_P_GENERAL);
  • src/openvpn/options.h

    diff -Naur openvpn-2.4.0.orig/src/openvpn/options.h openvpn-2.4.0/src/openvpn/options.h
    old new  
    285285    const char *down_script;
    286286    bool user_script_used;
    287287    bool down_pre;
     288    bool up_pre;
    288289    bool up_delay;
    289290    bool up_restart;
    290291    bool daemon;