Signed-off-by: Heiko Hund
---
src/openvpn/argv.c| 53 +++
src/openvpn/argv.h| 6 -
src/openvpn/console_systemd.c | 3 +--
src/openvpn/route.c | 12 --
src/openvpn/tun.c | 42 +++---
5 files changed, 41 insertions(+), 75 deletions(-)
diff --git a/src/openvpn/argv.c b/src/openvpn/argv.c
index 60534ac..89c9b14 100644
--- a/src/openvpn/argv.c
+++ b/src/openvpn/argv.c
@@ -39,7 +39,7 @@
#include "argv.h"
#include "options.h"
-void
+static void
argv_init (struct argv *a)
{
a->capacity = 0;
@@ -157,12 +157,6 @@ argv_extract_cmd_name (const char *path)
return ret;
}
-const char *
-argv_system_str (const struct argv *a)
-{
- return a->system_str;
-}
-
static struct argv
argv_clone (const struct argv *a, const size_t headroom)
{
@@ -199,7 +193,7 @@ argv_insert_head (const struct argv *a, const char *head)
return r;
}
-char *
+static char *
argv_term (const char **f)
{
const char *p = *f;
@@ -272,33 +266,13 @@ argv_msg_prefix (const int msglev, const struct argv *a,
const char *prefix)
gc_free ();
}
-void
-argv_printf (struct argv *a, const char *format, ...)
-{
- va_list arglist;
- va_start (arglist, format);
- argv_printf_arglist (a, format, 0, arglist);
- va_end (arglist);
- }
-
-void
-argv_printf_cat (struct argv *a, const char *format, ...)
-{
- va_list arglist;
- va_start (arglist, format);
- argv_printf_arglist (a, format, APA_CAT, arglist);
- va_end (arglist);
-}
-
-void
-argv_printf_arglist (struct argv *a, const char *format, const unsigned int
flags, va_list arglist)
+static void
+argv_printf_arglist (struct argv *a, const char *format, va_list arglist)
{
struct gc_arena gc = gc_new ();
char *term;
const char *f = format;
- if (!(flags & APA_CAT))
-argv_reset (a);
argv_extend (a, 1); /* ensure trailing NULL */
while ((term = argv_term ()) != NULL)
@@ -410,3 +384,22 @@ argv_printf_arglist (struct argv *a, const char *format,
const unsigned int flag
gc_free ();
}
+void
+argv_printf (struct argv *a, const char *format, ...)
+{
+ va_list arglist;
+ argv_reset (a);
+ va_start (arglist, format);
+ argv_printf_arglist (a, format, arglist);
+ va_end (arglist);
+ }
+
+void
+argv_printf_cat (struct argv *a, const char *format, ...)
+{
+ va_list arglist;
+ va_start (arglist, format);
+ argv_printf_arglist (a, format, arglist);
+ va_end (arglist);
+}
+
diff --git a/src/openvpn/argv.h b/src/openvpn/argv.h
index df658a0..5f8e21c 100644
--- a/src/openvpn/argv.h
+++ b/src/openvpn/argv.h
@@ -40,18 +40,12 @@ struct argv {
char *system_str;
};
-void argv_init (struct argv *a);
struct argv argv_new (void);
void argv_reset (struct argv *a);
-char *argv_term (const char **f);
const char *argv_str (const struct argv *a, struct gc_arena *gc, const
unsigned int flags);
struct argv argv_insert_head (const struct argv *a, const char *head);
void argv_msg (const int msglev, const struct argv *a);
void argv_msg_prefix (const int msglev, const struct argv *a, const char
*prefix);
-const char *argv_system_str (const struct argv *a);
-
-#define APA_CAT (1<<0) /* concatentate onto existing struct argv list */
-void argv_printf_arglist (struct argv *a, const char *format, const unsigned
int flags, va_list arglist);
void argv_printf (struct argv *a, const char *format, ...)
#ifdef __GNUC__
diff --git a/src/openvpn/console_systemd.c b/src/openvpn/console_systemd.c
index 9cd7575..8a953c9 100644
--- a/src/openvpn/console_systemd.c
+++ b/src/openvpn/console_systemd.c
@@ -60,9 +60,8 @@ get_console_input_systemd (const char *prompt, const bool
echo, char *input, con
{
int std_out;
bool ret = false;
-struct argv argv;
+struct argv argv = argv_new ();
-argv_init ();
argv_printf (, SYSTEMD_ASK_PASSWORD_PATH);
#ifdef SYSTEMD_NEWER_THAN_216
/* the --echo support arrived in upstream systemd 217 */
diff --git a/src/openvpn/route.c b/src/openvpn/route.c
index 96d4e11..98bb228 100644
--- a/src/openvpn/route.c
+++ b/src/openvpn/route.c
@@ -1395,7 +1395,7 @@ add_route (struct route_ipv4 *r,
const struct env_set *es)
{
struct gc_arena gc;
- struct argv argv;
+ struct argv argv = argv_new ();
const char *network;
const char *netmask;
const char *gateway;
@@ -1406,7 +1406,6 @@ add_route (struct route_ipv4 *r,
return;
gc_init ();
- argv_init ();
network = print_in_addr_t (r->network, 0, );
netmask = print_in_addr_t (r->netmask, 0, );
@@ -1671,7 +1670,7 @@ void
add_route_ipv6 (struct route_ipv6 *r6, const struct tuntap *tt, unsigned int
flags, const struct env_set *es)
{
struct gc_arena gc;
- struct argv argv;
+ struct argv argv = argv_new ();
const char *network;
const char *gateway;
@@ -1693,7 +1692,6 @@ add_route_ipv6 (struct route_ipv6 *r6, const struct
tuntap *tt, unsigned int fla
#endif
gc_init ();