Skip to content

Commit

Permalink
console_systemd: rename query_user_exec to query_user_systemd
Browse files Browse the repository at this point in the history
This allows us to override query_user_exec for unit
tests more consistently without having to jump through
weird hoops.

Fixes running test_pkcs11 with --enable-systemd.

While here also fix documentation comments for
query_user_exec*.

Change-Id: I379e1eb6dc57b9fe4bbdaefbd947a14326e7117a
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20240726104032.2112-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg28983.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
  • Loading branch information
flichtenheld authored and cron2 committed Jul 26, 2024
1 parent 8991f0d commit 418463a
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 13 deletions.
28 changes: 20 additions & 8 deletions src/openvpn/console.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,33 +65,45 @@ void query_user_add(char *prompt, size_t prompt_len,


/**
* Executes a configured setup, using the built-in method for querying the user.
* Loop through configured query_user slots, using the built-in method for
* querying the user.
* This method uses the console/TTY directly.
*
* @param setup Pointer to the setup defining what to ask the user
*
* @return True if executing all the defined steps completed successfully
*/
bool query_user_exec_builtin(void);


#if defined(ENABLE_SYSTEMD)
/**
* Executes a configured setup, using the compiled method for querying the user
* Loop through configured query_user slots, using the systemd method for
* querying the user.
* If systemd is not running it will fall back to use
* query_user_exec_builtin() instead.
*
* @param setup Pointer to the setup defining what to ask the user
* @return True if executing all the defined steps completed successfully
*/
bool query_user_exec_systemd(void);

/**
* Loop through configured query_user slots, using the compiled method for
* querying the user.
*
* @return True if executing all the defined steps completed successfully
*/
bool query_user_exec(void);
static inline bool
query_user_exec(void)
{
return query_user_exec_systemd();
}

#else /* ENABLE_SYSTEMD not defined*/
#else /* ENABLE_SYSTEMD not defined */
/**
* Wrapper function enabling query_user_exec() if no alternative methods have
* been enabled
*
*/
static bool
static inline bool
query_user_exec(void)
{
return query_user_exec_builtin();
Expand Down
2 changes: 1 addition & 1 deletion src/openvpn/console_systemd.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ get_console_input_systemd(const char *prompt, const bool echo, char *input, cons
*
*/
bool
query_user_exec(void)
query_user_exec_systemd(void)
{
bool ret = true; /* Presume everything goes okay */
int i;
Expand Down
8 changes: 8 additions & 0 deletions tests/unit_tests/openvpn/test_pkcs11.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,14 @@ query_user_clear(void)
{
assert_true(0);
}
#if defined(ENABLE_SYSTEMD)
bool
query_user_exec_systemd(void)
{
assert_true(0);
return false;
}
#endif
bool
query_user_exec_builtin(void)
{
Expand Down
11 changes: 7 additions & 4 deletions tests/unit_tests/openvpn/test_user_pass.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,6 @@
#include "config.h"
#endif

#undef ENABLE_SYSTEMD
/* avoid redefining ENABLE_SYSTEMD in misc.c */
#undef HAVE_CONFIG_H

#include "syshead.h"
#include "manage.h"

Expand All @@ -44,6 +40,13 @@
struct management *management; /* global */

/* mocking */
#if defined(ENABLE_SYSTEMD)
bool
query_user_exec_systemd(void)
{
return query_user_exec_builtin();
}
#endif
bool
query_user_exec_builtin(void)
{
Expand Down

0 comments on commit 418463a

Please sign in to comment.