| /* |
| * proxy-polarssl.h - PolarSSL layer for transparent proxy connections |
| * |
| * Based on proxy-bio.c - Original copyright (c) 2012 The Chromium OS Authors. |
| * |
| * This file was adapted by Paul Bakker <p.j.bakker@offspark.com> |
| * All rights reserved. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef PROXY_POLARSSL_H |
| #define PROXY_POLARSSL_H |
| |
| #include <stdint.h> |
| |
| typedef struct _proxy_polarssl_ctx proxy_polarssl_ctx; |
| |
| struct _proxy_polarssl_ctx { |
| char *host; |
| uint16_t port; |
| int connected; |
| |
| int (*f_recv)(void *, unsigned char *, size_t); |
| int (*f_send)(void *, const unsigned char *, size_t); |
| int (*f_connect)(proxy_polarssl_ctx *); |
| |
| void *p_recv; /*!< context for reading operations */ |
| void *p_send; /*!< context for writing operations */ |
| }; |
| |
| int proxy_polarssl_init(proxy_polarssl_ctx *proxy); |
| int proxy_polarssl_free(proxy_polarssl_ctx *ctx); |
| |
| void proxy_polarssl_set_bio(proxy_polarssl_ctx *ctx, |
| int (*f_recv)(void *, unsigned char *, size_t), void *p_recv, |
| int (*f_send)(void *, const unsigned char *, size_t), void *p_send); |
| int proxy_polarssl_set_scheme(proxy_polarssl_ctx *ctx, const char *scheme); |
| int proxy_polarssl_set_host(proxy_polarssl_ctx *ctx, const char *host); |
| void proxy_polarssl_set_port(proxy_polarssl_ctx *ctx, uint16_t port); |
| |
| int proxy_polarssl_recv(void *ctx, unsigned char *data, size_t len); |
| int proxy_polarssl_send(void *ctx, const unsigned char *data, size_t len); |
| |
| #endif /* !PROXY_POLARSSL_H */ |