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

« back to all changes in this revision

Viewing changes to include/proto/stream_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/stream_sock.h
3
 
  This file contains client-side definitions.
4
 
 
5
 
  Copyright (C) 2000-2008 Willy Tarreau - w@1wt.eu
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_STREAM_SOCK_H
23
 
#define _PROTO_STREAM_SOCK_H
24
 
 
25
 
#include <stdlib.h>
26
 
#include <sys/socket.h>
27
 
#include <sys/types.h>
28
 
 
29
 
#include <common/config.h>
30
 
#include <types/stream_interface.h>
31
 
 
32
 
 
33
 
/* main event functions used to move data between sockets and buffers */
34
 
int stream_sock_read(int fd);
35
 
int stream_sock_write(int fd);
36
 
void stream_sock_data_finish(struct stream_interface *si);
37
 
void stream_sock_shutr(struct stream_interface *si);
38
 
void stream_sock_shutw(struct stream_interface *si);
39
 
void stream_sock_chk_rcv(struct stream_interface *si);
40
 
void stream_sock_chk_snd(struct stream_interface *si);
41
 
 
42
 
 
43
 
/* This either returns the sockname or the original destination address. Code
44
 
 * inspired from Patrick Schaaf's example of nf_getsockname() implementation.
45
 
 */
46
 
static inline int get_original_dst(int fd, struct sockaddr_in *sa, socklen_t *salen) {
47
 
#if defined(TPROXY) && defined(SO_ORIGINAL_DST)
48
 
    return getsockopt(fd, SOL_IP, SO_ORIGINAL_DST, (void *)sa, salen);
49
 
#else
50
 
#if defined(TPROXY) && defined(USE_GETSOCKNAME)
51
 
    return getsockname(fd, (struct sockaddr *)sa, salen);
52
 
#else
53
 
    return -1;
54
 
#endif
55
 
#endif
56
 
}
57
 
 
58
 
 
59
 
#endif /* _PROTO_STREAM_SOCK_H */
60
 
 
61
 
/*
62
 
 * Local variables:
63
 
 *  c-indent-level: 8
64
 
 *  c-basic-offset: 8
65
 
 * End:
66
 
 */