File: sslh-conf.h

package info (click to toggle)
sslh 2.1.4-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,960 kB
  • sloc: ansic: 7,681; perl: 683; sh: 356; makefile: 136
file content (129 lines) | stat: -rw-r--r-- 3,382 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/* Generated by conf2struct (https://www.rutschle.net/tech/conf2struct/README)
 * on Tue Jan  2 21:25:47 2024. 

# conf2struct: generate libconf parsers that read to structs
# Copyright (C) 2018-2021  Yves Rutschle
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
#    this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.

*/
 
#ifndef C2S_SSLHCFG_H
#define C2S_SSLHCFG_H
#ifdef LIBCONFIG
#    include <libconfig.h>
#endif


#include "probe.h"
#include  <sys/types.h>
#include  <sys/socket.h>
#include  <netdb.h>

struct sslhcfg_listen_item {
	char*	host;
	char*	port;
	int	is_udp;
	int	keepalive;
};

struct sslhcfg_protocols_item {
	char*	name;
	char*	host;
	char*	port;
	int	service_is_present;
	char*	service;
	int	is_udp;
	int	udp_timeout;
	int	fork;
	int	tfo_ok;
	int	transparent;
	int	resolve_on_forward;
	int	log_level;
	int	keepalive;
	size_t	sni_hostnames_len;
	char** sni_hostnames;
	size_t	alpn_protocols_len;
	char** alpn_protocols;
	size_t	regex_patterns_len;
	char** regex_patterns;
	int	minlength_is_present;
	int	minlength;
	T_PROBE*	probe;
	struct addrinfo*	saddr;
	void*	data;
	dl_list	timeouts;
};

struct sslhcfg_item {
	int	verbose_config;
	int	verbose_config_error;
	int	verbose_connections;
	int	verbose_connections_try;
	int	verbose_connections_error;
	int	verbose_fd;
	int	verbose_packets;
	int	verbose_probe_info;
	int	verbose_probe_error;
	int	verbose_system_error;
	int	verbose_int_error;
	int	version;
	int	foreground;
	int	inetd;
	int	numeric;
	int	transparent;
	int	timeout;
	int	udp_max_connections;
	int	user_is_present;
	char*	user;
	int	pidfile_is_present;
	char*	pidfile;
	int	chroot_is_present;
	char*	chroot;
	char*	syslog_facility;
	int	logfile_is_present;
	char*	logfile;
	char*	on_timeout;
	char*	prefix;
	size_t	listen_len;
	struct sslhcfg_listen_item* listen;
	size_t	protocols_len;
	struct sslhcfg_protocols_item* protocols;
};

int sslhcfg_parse_file(
        const char* filename,
        struct sslhcfg_item* sslhcfg, 
        const char** errmsg);

void sslhcfg_fprint(
    FILE* out,
    struct sslhcfg_item *sslhcfg,
    int depth);

int sslhcfg_cl_parse(
    int argc,
    char* argv[],
    struct sslhcfg_item *sslhcfg);

#endif