tls-proxy.h 666 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#pragma once

#include <stdint.h>
#include <stdbool.h>
#include <netinet/in.h>

struct args {
	const char *local_addr;
	uint16_t local_port;
	const char *upstream;
	uint16_t upstream_port;

	bool rehandshake;
	bool close_connection;
15
	bool accept_only;
16
	bool tls_13;
17 18

	uint64_t close_timeout;
19
	uint32_t max_conn_sequence;
20 21 22 23 24 25 26 27 28 29 30 31

	const char *cert_file;
	const char *key_file;
};

struct tls_proxy_ctx;

struct tls_proxy_ctx *tls_proxy_allocate();
void tls_proxy_free(struct tls_proxy_ctx *proxy);
int tls_proxy_init(struct tls_proxy_ctx *proxy, const struct args *a);
int tls_proxy_start_listen(struct tls_proxy_ctx *proxy);
int tls_proxy_run(struct tls_proxy_ctx *proxy);