]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: log: use conn_get_{dst,src}() to retrieve the cli/frt/bck/srv/ addresses
authorWilly Tarreau <w@1wt.eu>
Wed, 17 Jul 2019 09:47:11 +0000 (11:47 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 19 Jul 2019 11:50:09 +0000 (13:50 +0200)
This also allows us to check that the operation succeeded without
logging whatever remained in the memory area in case of failure.

src/log.c

index 4b0491be86028b08b9fb85a514a8133626dca6f7..ff637dde5855b781de34261a65ed79ca3d3a7837 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -1904,7 +1904,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
        struct proxy *be;
        struct http_txn *txn;
        const struct strm_logs *logs;
-       const struct connection *be_conn;
+       struct connection *be_conn;
        unsigned int s_flags;
        unsigned int uniq_id;
        struct buffer chunk;
@@ -2021,7 +2021,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
 
                        case LOG_FMT_CLIENTIP:  // %ci
                                conn = objt_conn(sess->origin);
-                               if (conn)
+                               if (conn && conn_get_src(conn))
                                        ret = lf_ip(tmplog, (struct sockaddr *)&conn->addr.from, dst + maxsize - tmplog, tmp);
                                else
                                        ret = lf_text_len(tmplog, NULL, 0, dst + maxsize - tmplog, tmp);
@@ -2033,7 +2033,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
 
                        case LOG_FMT_CLIENTPORT:  // %cp
                                conn = objt_conn(sess->origin);
-                               if (conn) {
+                               if (conn && conn_get_src(conn)) {
                                        if (conn->addr.from.ss_family == AF_UNIX) {
                                                ret = ltoa_o(sess->listener->luid, tmplog, dst + maxsize - tmplog);
                                        } else {
@@ -2052,8 +2052,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
 
                        case LOG_FMT_FRONTENDIP: // %fi
                                conn = objt_conn(sess->origin);
-                               if (conn) {
-                                       conn_get_to_addr(conn);
+                               if (conn && conn_get_dst(conn)) {
                                        ret = lf_ip(tmplog, (struct sockaddr *)&conn->addr.to, dst + maxsize - tmplog, tmp);
                                }
                                else
@@ -2067,8 +2066,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
 
                        case  LOG_FMT_FRONTENDPORT: // %fp
                                conn = objt_conn(sess->origin);
-                               if (conn) {
-                                       conn_get_to_addr(conn);
+                               if (conn && conn_get_dst(conn)) {
                                        if (conn->addr.to.ss_family == AF_UNIX)
                                                ret = ltoa_o(sess->listener->luid, tmplog, dst + maxsize - tmplog);
                                        else
@@ -2084,7 +2082,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
                                break;
 
                        case LOG_FMT_BACKENDIP:  // %bi
-                               if (be_conn)
+                               if (be_conn && conn_get_src(be_conn))
                                        ret = lf_ip(tmplog, (const struct sockaddr *)&be_conn->addr.from, dst + maxsize - tmplog, tmp);
                                else
                                        ret = lf_text_len(tmplog, NULL, 0, dst + maxsize - tmplog, tmp);
@@ -2096,7 +2094,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
                                break;
 
                        case LOG_FMT_BACKENDPORT:  // %bp
-                               if (be_conn)
+                               if (be_conn && conn_get_src(be_conn))
                                        ret = lf_port(tmplog, (struct sockaddr *)&be_conn->addr.from, dst + maxsize - tmplog, tmp);
                                else
                                        ret = lf_text_len(tmplog, NULL, 0, dst + maxsize - tmplog, tmp);
@@ -2108,7 +2106,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
                                break;
 
                        case LOG_FMT_SERVERIP: // %si
-                               if (be_conn)
+                               if (be_conn && conn_get_dst(be_conn))
                                        ret = lf_ip(tmplog, (struct sockaddr *)&be_conn->addr.to, dst + maxsize - tmplog, tmp);
                                else
                                        ret = lf_text_len(tmplog, NULL, 0, dst + maxsize - tmplog, tmp);
@@ -2120,7 +2118,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
                                break;
 
                        case LOG_FMT_SERVERPORT: // %sp
-                               if (be_conn)
+                               if (be_conn && conn_get_dst(be_conn))
                                        ret = lf_port(tmplog, (struct sockaddr *)&be_conn->addr.to, dst + maxsize - tmplog, tmp);
                                else
                                        ret = lf_text_len(tmplog, NULL, 0, dst + maxsize - tmplog, tmp);