diff options
Diffstat (limited to 'libs/libcurl/src/cf-haproxy.c')
| -rw-r--r-- | libs/libcurl/src/cf-haproxy.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/libcurl/src/cf-haproxy.c b/libs/libcurl/src/cf-haproxy.c index 0d58261ada..0848943135 100644 --- a/libs/libcurl/src/cf-haproxy.c +++ b/libs/libcurl/src/cf-haproxy.c @@ -71,6 +71,7 @@ static CURLcode cf_haproxy_date_out_set(struct Curl_cfilter*cf,    struct cf_haproxy_ctx *ctx = cf->ctx;
    CURLcode result;
    const char *tcp_version;
 +  const char *client_ip;
    DEBUGASSERT(ctx);
    DEBUGASSERT(ctx->state == HAPROXY_INIT);
 @@ -82,11 +83,15 @@ static CURLcode cf_haproxy_date_out_set(struct Curl_cfilter*cf,  #endif /* USE_UNIX_SOCKETS */
    /* Emit the correct prefix for IPv6 */
    tcp_version = cf->conn->bits.ipv6 ? "TCP6" : "TCP4";
 +  if(data->set.str[STRING_HAPROXY_CLIENT_IP])
 +    client_ip = data->set.str[STRING_HAPROXY_CLIENT_IP];
 +  else
 +    client_ip = data->info.conn_primary_ip;
    result = Curl_dyn_addf(&ctx->data_out, "PROXY %s %s %s %i %i\r\n",
                           tcp_version,
                           data->info.conn_local_ip,
 -                         data->info.conn_primary_ip,
 +                         client_ip,
                           data->info.conn_local_port,
                           data->info.conn_primary_port);
  | 
