~ubuntu-branches/ubuntu/vivid/haproxy/vivid

« back to all changes in this revision

Viewing changes to include/proto/ssl_sock.h

  • Committer: Package Import Robot
  • Author(s): Apollon Oikonomopoulos
  • Date: 2014-06-20 11:05:17 UTC
  • mfrom: (1.1.15) (15.1.12 experimental)
  • Revision ID: package-import@ubuntu.com-20140620110517-u6q5p9kyy2f3ozw9
Tags: 1.5.0-1
* New upstream stable series. Notable changes since the 1.4 series:
  + Native SSL support on both sides with SNI/NPN/ALPN and OCSP stapling.
  + IPv6 and UNIX sockets are supported everywhere
  + End-to-end HTTP keep-alive for better support of NTLM and improved
    efficiency in static farms
  + HTTP/1.1 response compression (deflate, gzip) to save bandwidth
  + PROXY protocol versions 1 and 2 on both sides
  + Data sampling on everything in request or response, including payload
  + ACLs can use any matching method with any input sample
  + Maps and dynamic ACLs updatable from the CLI
  + Stick-tables support counters to track activity on any input sample
  + Custom format for logs, unique-id, header rewriting, and redirects
  + Improved health checks (SSL, scripted TCP, check agent, ...)
  + Much more scalable configuration supports hundreds of thousands of
    backends and certificates without sweating

* Upload to unstable, merge all 1.5 work from experimental. Most important
  packaging changes since 1.4.25-1 include:
  + systemd support.
  + A more sane default config file.
  + Zero-downtime upgrades between 1.5 releases by gracefully reloading
    HAProxy during upgrades.
  + HTML documentation shipped in the haproxy-doc package.
  + kqueue support for kfreebsd.

* Packaging changes since 1.5~dev26-2:
  + Drop patches merged upstream:
    o Fix-reference-location-in-manpage.patch
    o 0001-BUILD-stats-workaround-stupid-and-bogus-Werror-forma.patch
  + d/watch: look for stable 1.5 releases
  + systemd: respect CONFIG and EXTRAOPTS when specified in
    /etc/default/haproxy.
  + initscript: test the configuration before start or reload.
  + initscript: remove the ENABLED flag and logic.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * include/proto/ssl_sock.h
 
3
 * This file contains definition for ssl stream socket operations
 
4
 *
 
5
 * Copyright (C) 2012 EXCELIANCE, Emeric Brun <ebrun@exceliance.fr>
 
6
 *
 
7
 * This library is free software; you can redistribute it and/or
 
8
 * modify it under the terms of the GNU Lesser General Public
 
9
 * License as published by the Free Software Foundation, version 2.1
 
10
 * exclusively.
 
11
 *
 
12
 * This library is distributed in the hope that it will be useful,
 
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
15
 * Lesser General Public License for more details.
 
16
 *
 
17
 * You should have received a copy of the GNU Lesser General Public
 
18
 * License along with this library; if not, write to the Free Software
 
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
20
 */
 
21
 
 
22
#ifndef _PROTO_SSL_SOCK_H
 
23
#define _PROTO_SSL_SOCK_H
 
24
#include <openssl/ssl.h>
 
25
 
 
26
#include <types/connection.h>
 
27
#include <types/listener.h>
 
28
#include <types/proxy.h>
 
29
#include <types/stream_interface.h>
 
30
 
 
31
extern struct xprt_ops ssl_sock;
 
32
extern int sslconns;
 
33
extern int totalsslconns;
 
34
 
 
35
/* boolean, returns true if connection is over SSL */
 
36
static inline
 
37
int ssl_sock_is_ssl(struct connection *conn)
 
38
{
 
39
        if (!conn || conn->xprt != &ssl_sock || !conn->xprt_ctx)
 
40
                return 0;
 
41
        else
 
42
                return 1;
 
43
}
 
44
 
 
45
int ssl_sock_handshake(struct connection *conn, unsigned int flag);
 
46
int ssl_sock_prepare_ctx(struct bind_conf *bind_conf, SSL_CTX *ctx, struct proxy *proxy);
 
47
void ssl_sock_free_certs(struct bind_conf *bind_conf);
 
48
int ssl_sock_prepare_all_ctx(struct bind_conf *bind_conf, struct proxy *px);
 
49
int ssl_sock_prepare_srv_ctx(struct server *srv, struct proxy *px);
 
50
void ssl_sock_free_all_ctx(struct bind_conf *bind_conf);
 
51
const char *ssl_sock_get_cipher_name(struct connection *conn);
 
52
const char *ssl_sock_get_proto_version(struct connection *conn);
 
53
char *ssl_sock_get_version(struct connection *conn);
 
54
int ssl_sock_get_cert_used(struct connection *conn);
 
55
char *ssl_sock_get_common_name(struct connection *conn);
 
56
unsigned int ssl_sock_get_verify_result(struct connection *conn);
 
57
#ifdef SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB
 
58
int ssl_sock_update_ocsp_response(struct chunk *ocsp_response, char **err);
 
59
#endif
 
60
 
 
61
#endif /* _PROTO_SSL_SOCK_H */
 
62
 
 
63
/*
 
64
 * Local variables:
 
65
 *  c-indent-level: 8
 
66
 *  c-basic-offset: 8
 
67
 * End:
 
68
 */