diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2021-06-16 18:25:34 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2021-08-27 02:16:54 -0400 |
commit | f1e8a82f1a4370d71e2d12133545f03ec0ad104e (patch) | |
tree | fd1b002909ac2a1ad8e508c3c3d88f1d2fba4c82 /src | |
parent | e6f286ef5f4368b8ef360c0941a928ef26ea3713 (diff) | |
download | lighttpd-git-f1e8a82f1a4370d71e2d12133545f03ec0ad104e.tar.gz |
[multiple] inline struct in con->dst_addr_buf
(mod_extforward recently changed to use buffer_move() to save addr
instead of swapping pointers)
Diffstat (limited to 'src')
-rw-r--r-- | src/base.h | 2 | ||||
-rw-r--r-- | src/configfile-glue.c | 2 | ||||
-rw-r--r-- | src/connections.c | 11 | ||||
-rw-r--r-- | src/gw_backend.c | 2 | ||||
-rw-r--r-- | src/http_cgi.c | 2 | ||||
-rw-r--r-- | src/mod_accesslog.c | 2 | ||||
-rw-r--r-- | src/mod_ajp13.c | 2 | ||||
-rw-r--r-- | src/mod_auth.c | 6 | ||||
-rw-r--r-- | src/mod_authn_gssapi.c | 2 | ||||
-rw-r--r-- | src/mod_authn_pam.c | 2 | ||||
-rw-r--r-- | src/mod_evasive.c | 2 | ||||
-rw-r--r-- | src/mod_extforward.c | 27 | ||||
-rw-r--r-- | src/mod_geoip.c | 2 | ||||
-rw-r--r-- | src/mod_magnet.c | 2 | ||||
-rw-r--r-- | src/mod_proxy.c | 8 | ||||
-rw-r--r-- | src/mod_status.c | 2 | ||||
-rw-r--r-- | src/mod_trigger_b4_dl.c | 2 |
17 files changed, 39 insertions, 39 deletions
@@ -49,7 +49,7 @@ struct connection { void *config_data_base; sock_addr dst_addr; - buffer *dst_addr_buf; + buffer dst_addr_buf; const struct server_socket *srv_socket; /* reference to the server-socket */ /* timestamps */ diff --git a/src/configfile-glue.c b/src/configfile-glue.c index e4149801..1b84b76a 100644 --- a/src/configfile-glue.c +++ b/src/configfile-glue.c @@ -570,7 +570,7 @@ static cond_result_t config_check_cond_nocache(request_st * const r, const data_ case -1: return COND_RESULT_FALSE; /*(error parsing configfile entry)*/ } } - l = r->con->dst_addr_buf; + l = &r->con->dst_addr_buf; break; } case COMP_HTTP_SCHEME: diff --git a/src/connections.c b/src/connections.c index 3d797d97..fb5b6e5a 100644 --- a/src/connections.c +++ b/src/connections.c @@ -546,7 +546,6 @@ static connection *connection_init(server *srv) { con->bytes_written = 0; con->bytes_read = 0; - con->dst_addr_buf = buffer_init(); con->srv = srv; con->plugin_slots = srv->plugin_slots; con->config_data_base = srv->config_data_base; @@ -578,8 +577,7 @@ void connections_free(server *srv) { request_free_data(r); free(con->plugin_ctx); - buffer_free(con->dst_addr_buf); - + free(con->dst_addr_buf.ptr); free(con); } @@ -971,7 +969,8 @@ connection *connection_accepted(server *srv, const server_socket *srv_socket, so con->connection_start = log_monotonic_secs; con->dst_addr = *cnt_addr; - sock_addr_cache_inet_ntop_copy_buffer(con->dst_addr_buf,&con->dst_addr); + sock_addr_cache_inet_ntop_copy_buffer(&con->dst_addr_buf, + &con->dst_addr); con->srv_socket = srv_socket; con->is_ssl_sock = srv_socket->is_ssl; con->proto_default_port = 80; /* "http" */ @@ -1474,7 +1473,7 @@ static void connection_check_timeout (connection * const con, const time_t cur_t "after writing %lld bytes. We waited %d seconds. " "If this is a problem, increase " "server.max-write-idle", - con->dst_addr_buf->ptr, + con->dst_addr_buf.ptr, BUFFER_INTLEN_PTR(&r->target), (long long)r->write_queue.bytes_out, (int)r->conf.max_write_idle); @@ -1548,7 +1547,7 @@ static void connection_check_timeout (connection * const con, const time_t cur_t "NOTE: a request from %s for %.*s timed out after writing " "%lld bytes. We waited %d seconds. If this is a problem, " "increase server.max-write-idle", - con->dst_addr_buf->ptr, + con->dst_addr_buf.ptr, BUFFER_INTLEN_PTR(&r->target), (long long)con->bytes_written, (int)r->conf.max_write_idle); } diff --git a/src/gw_backend.c b/src/gw_backend.c index 2f23ef0e..abbcfd72 100644 --- a/src/gw_backend.c +++ b/src/gw_backend.c @@ -897,7 +897,7 @@ static gw_host * gw_host_get(request_st * const r, gw_extension *extension, int } case GW_BALANCE_STICKY: { /* source sticky balancing */ - const buffer * const dst_addr_buf = r->con->dst_addr_buf; + const buffer * const dst_addr_buf = &r->con->dst_addr_buf; const uint32_t base_hash = gw_hash(BUF_PTR_LEN(dst_addr_buf), DJBHASH_INIT); uint32_t last_max = UINT32_MAX; diff --git a/src/http_cgi.c b/src/http_cgi.c index 90dd0662..a39f5bbc 100644 --- a/src/http_cgi.c +++ b/src/http_cgi.c @@ -306,7 +306,7 @@ http_cgi_headers (request_st * const r, http_cgi_opts * const opts, http_cgi_hea rc |= cb(vdata, CONST_STR_LEN("SERVER_NAME"), s, n); rc |= cb(vdata, CONST_STR_LEN("REMOTE_ADDR"), - BUF_PTR_LEN(con->dst_addr_buf)); + BUF_PTR_LEN(&con->dst_addr_buf)); rc |= cb(vdata, CONST_STR_LEN("REMOTE_PORT"), buf, li_utostrn(buf,sizeof(buf),sock_addr_get_port(&con->dst_addr))); diff --git a/src/mod_accesslog.c b/src/mod_accesslog.c index 11bb5011..4bf96dba 100644 --- a/src/mod_accesslog.c +++ b/src/mod_accesslog.c @@ -914,7 +914,7 @@ static int log_access_record (const request_st * const r, buffer * const b, form break; case FORMAT_REMOTE_ADDR: case FORMAT_REMOTE_HOST: - buffer_append_string_buffer(b, con->dst_addr_buf); + buffer_append_string_buffer(b, &con->dst_addr_buf); break; case FORMAT_REMOTE_IDENT: /* ident */ diff --git a/src/mod_ajp13.c b/src/mod_ajp13.c index 5b36993a..c72c2def 100644 --- a/src/mod_ajp13.c +++ b/src/mod_ajp13.c @@ -592,7 +592,7 @@ ajp13_create_env (handler_ctx * const hctx) n = ajp13_enc_string(x, n, BUF_PTR_LEN(&r->uri.path)); if (0 == n) break; /* remote_addr */ - n = ajp13_enc_string(x, n, BUF_PTR_LEN(r->con->dst_addr_buf)); + n = ajp13_enc_string(x, n, BUF_PTR_LEN(&r->con->dst_addr_buf)); if (0 == n) break; /* remote_host *//*(skip DNS lookup)*/ n = ajp13_enc_string(x, n, NULL, 0); diff --git a/src/mod_auth.c b/src/mod_auth.c index 7b8124b5..4c97064c 100644 --- a/src/mod_auth.c +++ b/src/mod_auth.c @@ -839,7 +839,7 @@ mod_auth_check_basic(request_st * const r, void *p_d, const struct http_auth_req default: log_error(r->conf.errh, __FILE__, __LINE__, "password doesn't match for %s username: %s IP: %s", - r->uri.path.ptr, user, r->con->dst_addr_buf->ptr); + r->uri.path.ptr, user, r->con->dst_addr_buf.ptr); r->keep_alive = -1; /*(disable keep-alive if bad password)*/ rc = mod_auth_send_401_unauthorized_basic(r, require->realm); break; @@ -1305,7 +1305,7 @@ mod_auth_digest_validate_params (request_st * const r, const struct http_auth_re log_error(r->conf.errh, __FILE__, __LINE__, "digest: auth failed: uri mismatch (%s != %.*s), IP: %s", r->target_orig.ptr, (int)dp->len[e_uri], dp->ptr[e_uri], - r->con->dst_addr_buf->ptr); + r->con->dst_addr_buf.ptr); return mod_auth_send_400_bad_request(r); } @@ -1417,7 +1417,7 @@ mod_auth_check_digest (request_st * const r, void *p_d, const struct http_auth_r /* digest not ok */ log_error(r->conf.errh, __FILE__, __LINE__, "digest: auth failed for %.*s: wrong password, IP: %s", - (int)ai.ulen, ai.username, r->con->dst_addr_buf->ptr); + (int)ai.ulen, ai.username, r->con->dst_addr_buf.ptr); r->keep_alive = -1; /*(disable keep-alive if bad password)*/ return mod_auth_send_401_unauthorized_digest(r, require, 0); } diff --git a/src/mod_authn_gssapi.c b/src/mod_authn_gssapi.c index b681eb66..93c506e6 100644 --- a/src/mod_authn_gssapi.c +++ b/src/mod_authn_gssapi.c @@ -785,7 +785,7 @@ static handler_t mod_authn_gssapi_basic(request_st * const r, void *p_d, const h /* ret == KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN or no authz rules match */ log_error(r->conf.errh, __FILE__, __LINE__, "password doesn't match for %s username: %s IP: %s", - r->uri.path.ptr, username->ptr, r->con->dst_addr_buf->ptr); + r->uri.path.ptr, username->ptr, r->con->dst_addr_buf.ptr); return mod_authn_gssapi_send_401_unauthorized_basic(r); } } diff --git a/src/mod_authn_pam.c b/src/mod_authn_pam.c index 132a7cfe..1844b544 100644 --- a/src/mod_authn_pam.c +++ b/src/mod_authn_pam.c @@ -150,7 +150,7 @@ static handler_t mod_authn_pam_query(request_st * const r, void *p_d, const buff mod_authn_pam_patch_config(r, p); - const char * const addrstr = r->con->dst_addr_buf->ptr; + const char * const addrstr = r->con->dst_addr_buf.ptr; rc = pam_start(p->conf.service, username->ptr, &conv, &pamh); if (PAM_SUCCESS != rc || PAM_SUCCESS !=(rc = pam_set_item(pamh, PAM_RHOST, addrstr)) diff --git a/src/mod_evasive.c b/src/mod_evasive.c index 89f019cc..187db818 100644 --- a/src/mod_evasive.c +++ b/src/mod_evasive.c @@ -147,7 +147,7 @@ URIHANDLER_FUNC(mod_evasive_uri_handler) { if (!p->conf.silent) { log_error(r->conf.errh, __FILE__, __LINE__, "%s turned away. Too many connections.", - r->con->dst_addr_buf->ptr); + r->con->dst_addr_buf.ptr); } if (p->conf.location) { diff --git a/src/mod_extforward.c b/src/mod_extforward.c index 34226e7d..42b5fc82 100644 --- a/src/mod_extforward.c +++ b/src/mod_extforward.c @@ -522,7 +522,7 @@ static int is_proxy_trusted(plugin_data *p, const char * const ip, size_t iplen) static int is_connection_trusted(connection * const con, plugin_data *p) { if (p->conf.forward_all) return (1 == p->conf.forward_all); - return is_proxy_trusted(p, BUF_PTR_LEN(con->dst_addr_buf)); + return is_proxy_trusted(p, BUF_PTR_LEN(&con->dst_addr_buf)); } /* @@ -573,21 +573,22 @@ static int mod_extforward_set_addr(request_st * const r, plugin_data *p, const c "-- mod_extforward_uri_handler already patched this connection, resetting state"); } con->dst_addr = hctx->saved_remote_addr; - buffer_move(con->dst_addr_buf, &hctx->saved_remote_addr_buf); + buffer_move(&con->dst_addr_buf, &hctx->saved_remote_addr_buf); } } else { con->plugin_ctx[p->id] = hctx = handler_ctx_init(); } /* save old address */ if (extforward_check_proxy) { - http_header_env_set(r, CONST_STR_LEN("_L_EXTFORWARD_ACTUAL_FOR"), BUF_PTR_LEN(con->dst_addr_buf)); + http_header_env_set(r, CONST_STR_LEN("_L_EXTFORWARD_ACTUAL_FOR"), + BUF_PTR_LEN(&con->dst_addr_buf)); } hctx->request_count = con->request_count; hctx->saved_remote_addr = con->dst_addr; - buffer_move(&hctx->saved_remote_addr_buf, con->dst_addr_buf); + buffer_move(&hctx->saved_remote_addr_buf, &con->dst_addr_buf); /* patch connection address */ con->dst_addr = sock; - buffer_copy_string_len(con->dst_addr_buf, addr, addrlen); + buffer_copy_string_len(&con->dst_addr_buf, addr, addrlen); /* Now, clean the conf_cond cache, because we may have changed the results of tests */ config_cond_cache_reset_item(r, COMP_HTTP_REMOTE_IP); @@ -1109,7 +1110,7 @@ URIHANDLER_FUNC(mod_extforward_uri_handler) { log_error(r->conf.errh, __FILE__, __LINE__, "no forward header found or " "remote address %s is NOT a trusted proxy, skipping", - r->con->dst_addr_buf->ptr); + r->con->dst_addr_buf.ptr); } return HANDLER_GO_ON; } @@ -1145,7 +1146,7 @@ REQUEST_FUNC(mod_extforward_restore) { if (!buffer_is_unset(&hctx->saved_remote_addr_buf)) { con->dst_addr = hctx->saved_remote_addr; - buffer_move(con->dst_addr_buf, &hctx->saved_remote_addr_buf); + buffer_move(&con->dst_addr_buf, &hctx->saved_remote_addr_buf); /* Now, clean the conf_cond cache, because we may have changed the results of tests */ config_cond_cache_reset_item(r, COMP_HTTP_REMOTE_IP); } @@ -1169,7 +1170,7 @@ CONNECTION_FUNC(mod_extforward_handle_con_close) } if (!buffer_is_unset(&hctx->saved_remote_addr_buf)) { con->dst_addr = hctx->saved_remote_addr; - buffer_move(con->dst_addr_buf, &hctx->saved_remote_addr_buf); + buffer_move(&con->dst_addr_buf, &hctx->saved_remote_addr_buf); } if (NULL != hctx->env) { array_free(hctx->env); @@ -1201,7 +1202,7 @@ CONNECTION_FUNC(mod_extforward_handle_con_accept) if (r->conf.log_request_handling) { log_error(r->conf.errh, __FILE__, __LINE__, "remote address %s is NOT a trusted proxy, skipping", - con->dst_addr_buf->ptr); + con->dst_addr_buf.ptr); } } return HANDLER_GO_ON; @@ -1485,7 +1486,7 @@ static int mod_extforward_hap_PROXY_v1 (connection * const con, /* re-parse addr to string to normalize * (instead of trusting PROXY to provide canonicalized src_addr string) * (should prefer PROXY v2 protocol if concerned about performance) */ - sock_addr_inet_ntop_copy_buffer(con->dst_addr_buf, &con->dst_addr); + sock_addr_inet_ntop_copy_buffer(&con->dst_addr_buf, &con->dst_addr); return 0; } @@ -1545,7 +1546,7 @@ static int mod_extforward_hap_PROXY_v2 (connection * const con, case 0x11: /* TCPv4 */ sock_addr_assign(&con->dst_addr, AF_INET, hdr->v2.addr.ip4.src_port, &hdr->v2.addr.ip4.src_addr); - sock_addr_inet_ntop_copy_buffer(con->dst_addr_buf, &con->dst_addr); + sock_addr_inet_ntop_copy_buffer(&con->dst_addr_buf, &con->dst_addr); #if 0 ((struct sockaddr_in *)&by)->sin_family = AF_INET; ((struct sockaddr_in *)&by)->sin_addr.s_addr = @@ -1559,7 +1560,7 @@ static int mod_extforward_hap_PROXY_v2 (connection * const con, case 0x21: /* TCPv6 */ sock_addr_assign(&con->dst_addr, AF_INET6, hdr->v2.addr.ip6.src_port, &hdr->v2.addr.ip6.src_addr); - sock_addr_inet_ntop_copy_buffer(con->dst_addr_buf, &con->dst_addr); + sock_addr_inet_ntop_copy_buffer(&con->dst_addr_buf, &con->dst_addr); #if 0 ((struct sockaddr_in6 *)&by)->sin6_family = AF_INET6; memcpy(&((struct sockaddr_in6 *)&by)->sin6_addr, @@ -1578,7 +1579,7 @@ static int mod_extforward_hap_PROXY_v2 (connection * const con, if (NULL == z) return -1; /* invalid addr; too long */ len = (uint32_t)(z - src_addr + 1); /*(+1 for '\0')*/ sock_addr_assign(&con->dst_addr, AF_UNIX, 0, src_addr); - buffer_copy_string_len(con->dst_addr_buf, src_addr, len); + buffer_copy_string_len(&con->dst_addr_buf, src_addr, len); } #if 0 /*(dst_addr should be identical to src_addr for AF_UNIX)*/ ((struct sockaddr_un *)&by)->sun_family = AF_UNIX; diff --git a/src/mod_geoip.c b/src/mod_geoip.c index 6c58a1d9..797c205b 100644 --- a/src/mod_geoip.c +++ b/src/mod_geoip.c @@ -208,7 +208,7 @@ SETDEFAULTS_FUNC(mod_geoip_set_defaults) { static handler_t mod_geoip_query (request_st * const r, plugin_data * const p) { GeoIPRecord *gir; - const char *remote_ip = r->con->dst_addr_buf->ptr; + const char *remote_ip = r->con->dst_addr_buf.ptr; if (NULL != http_header_env_get(r, CONST_STR_LEN("GEOIP_COUNTRY_CODE"))) { return HANDLER_GO_ON; diff --git a/src/mod_magnet.c b/src/mod_magnet.c index df36f36f..01fab01a 100644 --- a/src/mod_magnet.c +++ b/src/mod_magnet.c @@ -541,7 +541,7 @@ static buffer *magnet_env_get_buffer_by_id(request_st * const r, int id) { case MAGNET_ENV_REQUEST_URI: dest = &r->target; break; case MAGNET_ENV_REQUEST_ORIG_URI: dest = &r->target_orig; break; case MAGNET_ENV_REQUEST_PATH_INFO: dest = &r->pathinfo; break; - case MAGNET_ENV_REQUEST_REMOTE_IP: dest = r->con->dst_addr_buf; break; + case MAGNET_ENV_REQUEST_REMOTE_IP: dest = &r->con->dst_addr_buf; break; case MAGNET_ENV_REQUEST_SERVER_ADDR: /* local IP without port */ { const server_socket * const srv_socket = r->con->srv_socket; diff --git a/src/mod_proxy.c b/src/mod_proxy.c index 3f0b766b..fd5a5f61 100644 --- a/src/mod_proxy.c +++ b/src/mod_proxy.c @@ -687,15 +687,15 @@ static void proxy_set_Forwarded(connection * const con, request_st * const r, co } else if (family == AF_INET) { /*(Note: if :port is added, then must be quoted-string: * e.g. for="...:port")*/ - buffer_append_string_buffer(b, con->dst_addr_buf); + buffer_append_string_buffer(b, &con->dst_addr_buf); } else if (family == AF_INET6) { buffer_append_str3(b, CONST_STR_LEN("\"["), - BUF_PTR_LEN(con->dst_addr_buf), + BUF_PTR_LEN(&con->dst_addr_buf), CONST_STR_LEN("]\"")); } else { buffer_append_string_len(b, CONST_STR_LEN("\"")); buffer_append_string_backslash_escaped( - b, BUF_PTR_LEN(con->dst_addr_buf)); + b, BUF_PTR_LEN(&con->dst_addr_buf)); buffer_append_string_len(b, CONST_STR_LEN("\"")); } semicolon = 1; @@ -780,7 +780,7 @@ static void proxy_set_Forwarded(connection * const con, request_st * const r, co /* legacy X-* headers, including X-Forwarded-For */ - b = (NULL != efor) ? efor : con->dst_addr_buf; + b = (NULL != efor) ? efor : &con->dst_addr_buf; http_header_request_set(r, HTTP_HEADER_X_FORWARDED_FOR, CONST_STR_LEN("X-Forwarded-For"), BUF_PTR_LEN(b)); diff --git a/src/mod_status.c b/src/mod_status.c index 207913ce..b035c11a 100644 --- a/src/mod_status.c +++ b/src/mod_status.c @@ -234,7 +234,7 @@ static void mod_status_get_multiplier(buffer *b, double avg, int size) { static void mod_status_html_rtable_r (buffer * const b, const request_st * const r, const connection * const con, const time_t cur_ts) { buffer_append_str3(b, CONST_STR_LEN("<tr><td class=\"string\">"), - BUF_PTR_LEN(con->dst_addr_buf), + BUF_PTR_LEN(&con->dst_addr_buf), CONST_STR_LEN("</td><td class=\"int\">")); if (r->reqbody_length) { diff --git a/src/mod_trigger_b4_dl.c b/src/mod_trigger_b4_dl.c index 3f98ca97..5d118812 100644 --- a/src/mod_trigger_b4_dl.c +++ b/src/mod_trigger_b4_dl.c @@ -397,7 +397,7 @@ URIHANDLER_FUNC(mod_trigger_b4_dl_uri_handler) { http_header_request_get(r, HTTP_HEADER_X_FORWARDED_FOR, CONST_STR_LEN("X-Forwarded-For")); if (NULL == remote_ip) { - remote_ip = r->con->dst_addr_buf; + remote_ip = &r->con->dst_addr_buf; } if (p->conf.debug) { |