]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: connection: remove all direct references to raw_sock and ssl_sock
authorWilly Tarreau <w@1wt.eu>
Thu, 22 Dec 2016 19:44:00 +0000 (20:44 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 22 Dec 2016 22:26:38 +0000 (23:26 +0100)
Now we exclusively use xprt_get(XPRT_RAW) instead of &raw_sock or
xprt_get(XPRT_SSL) for &ssl_sock. This removes a bunch of #ifdef and
include spread over a number of location including backend, cfgparse,
checks, cli, hlua, log, server and session.

src/backend.c
src/cfgparse.c
src/checks.c
src/cli.c
src/hlua.c
src/log.c
src/server.c
src/session.c

index e0e53ffa04a08133d854161fbd64e067d8720d42..658212de4d6e015edd92a727fc576ed8b73a413f 100644 (file)
@@ -51,7 +51,6 @@
 #include <proto/sample.h>
 #include <proto/server.h>
 #include <proto/stream.h>
-#include <proto/raw_sock.h>
 #include <proto/stream_interface.h>
 #include <proto/task.h>
 
@@ -1150,7 +1149,7 @@ int connect_server(struct stream *s)
                }
                else if (obj_type(s->target) == OBJ_TYPE_PROXY) {
                        /* proxies exclusively run on raw_sock right now */
-                       conn_prepare(srv_conn, protocol_by_family(srv_conn->addr.to.ss_family), &raw_sock);
+                       conn_prepare(srv_conn, protocol_by_family(srv_conn->addr.to.ss_family), xprt_get(XPRT_RAW));
                        if (!objt_conn(s->si[1].end) || !objt_conn(s->si[1].end)->ctrl)
                                return SF_ERR_INTERNAL;
                }
index 6d446ad3fc1e05af8ffc666b32a73b09ec049ea8..97adb9f2fd4c1241822517634796440a350b7e78 100644 (file)
@@ -80,7 +80,6 @@
 #include <proto/session.h>
 #include <proto/server.h>
 #include <proto/stream.h>
-#include <proto/raw_sock.h>
 #include <proto/stick_table.h>
 #include <proto/task.h>
 #include <proto/tcp_rules.h>
@@ -2009,7 +2008,7 @@ int cfg_parse_peers(const char *file, int linenum, char **args, int kwm)
 
                newpeer->addr = *sk;
                newpeer->proto = proto;
-               newpeer->xprt  = &raw_sock;
+               newpeer->xprt  = xprt_get(XPRT_RAW);
                newpeer->sock_init_arg = NULL;
 
                if (strcmp(newpeer->id, localpeer) == 0) {
@@ -2031,7 +2030,7 @@ int cfg_parse_peers(const char *file, int linenum, char **args, int kwm)
                                curpeers->peers_fe->conf.args.line = curpeers->peers_fe->conf.line = linenum;
                                peers_setup_frontend(curpeers->peers_fe);
 
-                               bind_conf = bind_conf_alloc(curpeers->peers_fe, file, linenum, args[2], &raw_sock);
+                               bind_conf = bind_conf_alloc(curpeers->peers_fe, file, linenum, args[2], xprt_get(XPRT_RAW));
 
                                if (!str2listener(args[2], curpeers->peers_fe, bind_conf, file, linenum, &errmsg)) {
                                        if (errmsg && *errmsg) {
@@ -2439,7 +2438,7 @@ int cfg_parse_mailers(const char *file, int linenum, char **args, int kwm)
 
                newmailer->addr = *sk;
                newmailer->proto = proto;
-               newmailer->xprt  = &raw_sock;
+               newmailer->xprt  = xprt_get(XPRT_RAW);
                newmailer->sock_init_arg = NULL;
        }
        else if (strcmp(args[0], "timeout") == 0) {
@@ -2880,7 +2879,7 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
                        goto out;
                }
 
-               bind_conf = bind_conf_alloc(curproxy, file, linenum, args[1], &raw_sock);
+               bind_conf = bind_conf_alloc(curproxy, file, linenum, args[1], xprt_get(XPRT_RAW));
 
                /* use default settings for unix sockets */
                bind_conf->ux.uid  = global.unix_bind.ux.uid;
index 440ed605c334287d866cfc96e220d60a0858ff03..2075e3fb721cb143c51788b842261f99348cad72 100644 (file)
 #include <types/dns.h>
 #include <types/stats.h>
 
-#ifdef USE_OPENSSL
-#include <types/ssl_sock.h>
-#include <proto/ssl_sock.h>
-#endif /* USE_OPENSSL */
-
 #include <proto/backend.h>
 #include <proto/checks.h>
 #include <proto/stats.h>
@@ -57,7 +52,6 @@
 #include <proto/proto_tcp.h>
 #include <proto/protocol.h>
 #include <proto/proxy.h>
-#include <proto/raw_sock.h>
 #include <proto/server.h>
 #include <proto/signal.h>
 #include <proto/stream_interface.h>
@@ -2738,16 +2732,12 @@ static void tcpcheck_main(struct connection *conn)
                        else if (check->port)
                                set_host_port(&conn->addr.to, check->port);
 
-#ifdef USE_OPENSSL
                        if (check->current_step->conn_opts & TCPCHK_OPT_SSL) {
-                               xprt = &ssl_sock;
+                               xprt = xprt_get(XPRT_SSL);
                        }
                        else {
-                               xprt = &raw_sock;
+                               xprt = xprt_get(XPRT_RAW);
                        }
-#else  /* USE_OPENSSL */
-                       xprt = &raw_sock;
-#endif /* USE_OPENSSL */
                        conn_prepare(conn, proto, xprt);
 
                        ret = SF_ERR_INTERNAL;
index 4ccc49a90f6ab354f0f313b06a10ee702d8a1060..fa45db918f1b09252c77e3dfbebf9a561a8f0f8d 100644 (file)
--- a/src/cli.c
+++ b/src/cli.c
@@ -62,7 +62,6 @@
 #include <proto/session.h>
 #include <proto/stream.h>
 #include <proto/server.h>
-#include <proto/raw_sock.h>
 #include <proto/stream_interface.h>
 #include <proto/task.h>
 
@@ -215,7 +214,7 @@ static int stats_parse_global(char **args, int section_type, struct proxy *curpx
                        }
                }
 
-               bind_conf = bind_conf_alloc(global.stats_fe, file, line, args[2], &raw_sock);
+               bind_conf = bind_conf_alloc(global.stats_fe, file, line, args[2], xprt_get(XPRT_RAW));
                bind_conf->level = ACCESS_LVL_OPER; /* default access level */
 
                if (!str2listener(args[2], global.stats_fe, bind_conf, file, line, err)) {
index 2d1d41d66ed1cc38657815dd74f79be72f2c66c1..0ed8ec99f3f105d3d0669fe6799afc30dab40b1c 100644 (file)
@@ -44,7 +44,6 @@
 #include <proto/pattern.h>
 #include <proto/payload.h>
 #include <proto/proto_http.h>
-#include <proto/raw_sock.h>
 #include <proto/sample.h>
 #include <proto/server.h>
 #include <proto/session.h>
@@ -7629,7 +7628,7 @@ void hlua_init(void)
        socket_tcp.agent.health = socket_tcp.agent.rise;   /* socket, but will fall down at first failure */
        socket_tcp.agent.server = &socket_tcp;
 
-       socket_tcp.xprt = &raw_sock;
+       socket_tcp.xprt = xprt_get(XPRT_RAW);
 
 #ifdef USE_OPENSSL
        /* Init TCP server: unchanged parameters */
@@ -7676,7 +7675,7 @@ void hlua_init(void)
        socket_ssl.agent.server = &socket_ssl;
 
        socket_ssl.use_ssl = 1;
-       socket_ssl.xprt = &ssl_sock;
+       socket_ssl.xprt = xprt_get(XPRT_SSL);
 
        for (idx = 0; args[idx] != NULL; idx++) {
                if ((kw = srv_find_kw(args[idx])) != NULL) { /* Maybe it's registered server keyword */
index 27d53f7eb954cc73ed60ca32061f5affcc5b0171..be1ebdca116b64e658020f49f5149aa5a7876986 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -1629,10 +1629,8 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list
                                if (iret == 0)
                                        goto out;
                                tmplog += iret;
-#ifdef USE_OPENSSL
-                               if (sess->listener->bind_conf->xprt == &ssl_sock)
+                               if (sess->listener->bind_conf->xprt == xprt_get(XPRT_SSL))
                                        LOGCHAR('~');
-#endif
                                if (tmp->options & LOG_OPT_QUOTE)
                                        LOGCHAR('"');
                                last_isspace = 0;
@@ -1642,7 +1640,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list
                                src = NULL;
                                conn = objt_conn(sess->origin);
                                if (conn) {
-                                       if (sess->listener->bind_conf->xprt == &ssl_sock)
+                                       if (sess->listener->bind_conf->xprt == xprt_get(XPRT_SSL))
                                                src = ssl_sock_get_cipher_name(conn);
                                }
                                ret = lf_text(tmplog, src, dst + maxsize - tmplog, tmp);
@@ -1656,7 +1654,7 @@ int build_logline(struct stream *s, char *dst, size_t maxsize, struct list *list
                                src = NULL;
                                conn = objt_conn(sess->origin);
                                if (conn) {
-                                       if (sess->listener->bind_conf->xprt == &ssl_sock)
+                                       if (sess->listener->bind_conf->xprt == xprt_get(XPRT_SSL))
                                                src = ssl_sock_get_proto_version(conn);
                                }
                                ret = lf_text(tmplog, src, dst + maxsize - tmplog, tmp);
index b58216ecbfd487351492b32e2db3aabc2e7137c0..d9e036836be64349d01d15810146479e6bb27d58 100644 (file)
@@ -33,7 +33,6 @@
 #include <proto/port_range.h>
 #include <proto/protocol.h>
 #include <proto/queue.h>
-#include <proto/raw_sock.h>
 #include <proto/server.h>
 #include <proto/stream.h>
 #include <proto/stream_interface.h>
@@ -1063,7 +1062,7 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr
 
  skip_name_resolution:
                        newsrv->addr = *sk;
-                       newsrv->xprt  = newsrv->check.xprt = newsrv->agent.xprt = &raw_sock;
+                       newsrv->xprt  = newsrv->check.xprt = newsrv->agent.xprt = xprt_get(XPRT_RAW);
 
                        if (!protocol_by_family(newsrv->addr.ss_family)) {
                                Alert("parsing [%s:%d] : Unknown protocol family %d '%s'\n",
index f984c7bbbc91693b0f6a9e0ad1eafba388068c9e..581897d7912c37c453ab3d58bf610de037b6e2c3 100644 (file)
@@ -23,7 +23,6 @@
 #include <proto/log.h>
 #include <proto/proto_http.h>
 #include <proto/proxy.h>
-#include <proto/raw_sock.h>
 #include <proto/session.h>
 #include <proto/stream.h>
 #include <proto/tcp_rules.h>
@@ -292,7 +291,7 @@ int session_accept_fd(struct listener *l, int cfd, struct sockaddr_storage *addr
        conn_xprt_close(cli_conn);
        conn_free(cli_conn);
  out_close:
-       if (ret < 0 && l->bind_conf->xprt == &raw_sock && p->mode == PR_MODE_HTTP) {
+       if (ret < 0 && l->bind_conf->xprt == xprt_get(XPRT_RAW) && p->mode == PR_MODE_HTTP) {
                /* critical error, no more memory, try to emit a 500 response */
                struct chunk *err_msg = &p->errmsg[HTTP_ERR_500];
                if (!err_msg->str)