OpenVPN
console.h
Go to the documentation of this file.
1/*
2 * OpenVPN -- An application to securely tunnel IP networks
3 * over a single UDP port, with support for SSL/TLS-based
4 * session authentication and key exchange,
5 * packet encryption, packet authentication, and
6 * packet compression.
7 *
8 * Copyright (C) 2002-2025 OpenVPN Inc <sales@openvpn.net>
9 * Copyright (C) 2014-2015 David Sommerseth <davids@redhat.com>
10 * Copyright (C) 2016-2025 David Sommerseth <davids@openvpn.net>
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2
14 * as published by the Free Software Foundation.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License along
22 * with this program; if not, see <https://www.gnu.org/licenses/>.
23 */
24
25#ifndef CONSOLE_H
26#define CONSOLE_H
27
28#include "basic.h"
29
34{
35 char *prompt;
36 char *response;
38 bool echo;
39};
40
41#define QUERY_USER_NUMSLOTS 10
42extern struct _query_user query_user[];
48void query_user_clear(void);
49
50
60void query_user_add(char *prompt, char *resp, int resp_len, bool echo);
61
62
71
72
73#if defined(ENABLE_SYSTEMD)
82bool query_user_exec_systemd(void);
83
90static inline bool
92{
93 return query_user_exec_systemd();
94}
95
96#else /* ENABLE_SYSTEMD not defined */
102static inline bool
104{
106}
107#endif /* defined(ENABLE_SYSTEMD) */
108
109
117static inline bool
118query_user_SINGLE(char *prompt, char *resp, int resp_len, bool echo)
119{
121 query_user_add(prompt, resp, resp_len, echo);
122 return query_user_exec();
123}
124
125#endif /* ifndef CONSOLE_H */
void query_user_clear(void)
Wipes all data put into all of the query_user structs.
Definition console.c:44
static bool query_user_SINGLE(char *prompt, char *resp, int resp_len, bool echo)
A plain "make Gert happy" wrapper.
Definition console.h:118
bool query_user_exec_builtin(void)
Loop through configured query_user slots, using the built-in method for querying the user.
struct _query_user query_user[]
Global variable, declared in console.c.
Definition console.c:40
void query_user_add(char *prompt, char *resp, int resp_len, bool echo)
Adds an item to ask the user for.
Definition console.c:56
static bool query_user_exec(void)
Wrapper function enabling query_user_exec() if no alternative methods have been enabled.
Definition console.h:103
Configuration setup for declaring what kind of information to ask a user for.
Definition console.h:34
char * prompt
Prompt to present to the user.
Definition console.h:35
int response_len
Length the of the user response.
Definition console.h:37
char * response
The user's response.
Definition console.h:36
bool echo
True: The user should see what is being typed, otherwise mask it.
Definition console.h:38