diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/configfile-glue.c | 6 | ||||
-rw-r--r-- | src/connections.c | 4 | ||||
-rw-r--r-- | src/gw_backend.c | 2 | ||||
-rw-r--r-- | src/http_cgi.c | 4 | ||||
-rw-r--r-- | src/mod_accesslog.c | 4 | ||||
-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_magnet.c | 13 | ||||
-rw-r--r-- | src/mod_maxminddb.c | 2 | ||||
-rw-r--r-- | src/mod_status.c | 8 | ||||
-rw-r--r-- | src/reqpool.c | 2 | ||||
-rw-r--r-- | src/request.h | 3 |
14 files changed, 32 insertions, 28 deletions
diff --git a/src/configfile-glue.c b/src/configfile-glue.c index 3be1c2a0..46ad820e 100644 --- a/src/configfile-glue.c +++ b/src/configfile-glue.c @@ -496,7 +496,7 @@ static cond_result_t config_check_cond_nocache_eval(request_st * const r, const l = &r->uri.authority; break; case COMP_HTTP_REMOTE_IP: - l = &r->con->dst_addr_buf; + l = r->dst_addr_buf; break; case COMP_HTTP_SCHEME: l = &r->uri.scheme; @@ -556,8 +556,8 @@ static cond_result_t config_check_cond_nocache_eval(request_st * const r, const (((uintptr_t)dc->string.ptr + dc->string.used + 1 + 7) & ~7); int bits = ((unsigned char *)dc->string.ptr)[dc->string.used]; match ^= (bits) - ? sock_addr_is_addr_eq_bits(addr, &r->con->dst_addr, bits) - : sock_addr_is_addr_eq(addr, &r->con->dst_addr); + ? sock_addr_is_addr_eq_bits(addr, r->dst_addr, bits) + : sock_addr_is_addr_eq(addr, r->dst_addr); break; } match ^= (buffer_is_equal(l, &dc->string)); diff --git a/src/connections.c b/src/connections.c index b5fb62c9..22f4b8c1 100644 --- a/src/connections.c +++ b/src/connections.c @@ -1409,7 +1409,7 @@ static void connection_check_timeout (connection * const con, const unix_time64_ "after writing %lld bytes. We waited %d seconds. " "If this is a problem, increase " "server.max-write-idle", - con->dst_addr_buf.ptr, + r->dst_addr_buf->ptr, BUFFER_INTLEN_PTR(&r->target), (long long)r->write_queue.bytes_out, (int)r->conf.max_write_idle); @@ -1493,7 +1493,7 @@ static void connection_check_timeout (connection * const con, const unix_time64_ "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, + r->dst_addr_buf->ptr, BUFFER_INTLEN_PTR(&r->target), (long long)con->write_queue->bytes_out, (int)r->conf.max_write_idle); diff --git a/src/gw_backend.c b/src/gw_backend.c index 5839b3a9..84b5f504 100644 --- a/src/gw_backend.c +++ b/src/gw_backend.c @@ -891,7 +891,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->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 b1e9d349..2f1a5b89 100644 --- a/src/http_cgi.c +++ b/src/http_cgi.c @@ -306,10 +306,10 @@ 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(r->dst_addr_buf)); rc |= cb(vdata, CONST_STR_LEN("REMOTE_PORT"), buf, - li_utostrn(buf,sizeof(buf),sock_addr_get_port(&con->dst_addr))); + li_utostrn(buf, sizeof(buf), sock_addr_get_port(r->dst_addr))); for (n = 0; n < r->rqst_headers.used; n++) { data_string *ds = (data_string *)r->rqst_headers.data[n]; diff --git a/src/mod_accesslog.c b/src/mod_accesslog.c index 1140eb7c..b5c5e280 100644 --- a/src/mod_accesslog.c +++ b/src/mod_accesslog.c @@ -769,7 +769,7 @@ log_access_record_cold (buffer * const b, const request_st * const r, switch (f->field) { case FORMAT_SERVER_PORT: if (f->opt & FORMAT_FLAG_PORT_REMOTE) { - buffer_append_int(b, sock_addr_get_port(&con->dst_addr)); + buffer_append_int(b, sock_addr_get_port(r->dst_addr)); break; } /* else if (f->opt & FORMAT_FLAG_PORT_LOCAL) *//*(default)*/ @@ -875,7 +875,7 @@ static int log_access_record (const request_st * const r, buffer * const b, form /*case FORMAT_REMOTE_HOST:*/ #endif case FORMAT_REMOTE_ADDR: - buffer_append_string_buffer(b, &r->con->dst_addr_buf); + buffer_append_string_buffer(b, r->dst_addr_buf); break; case FORMAT_HTTP_HOST: accesslog_append_buffer(b, &r->uri.authority, esc); diff --git a/src/mod_ajp13.c b/src/mod_ajp13.c index ebebf2b9..e3dd04fa 100644 --- a/src/mod_ajp13.c +++ b/src/mod_ajp13.c @@ -590,7 +590,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->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 bf4b028f..0cd88c9a 100644 --- a/src/mod_auth.c +++ b/src/mod_auth.c @@ -849,7 +849,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->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; @@ -1420,7 +1420,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->dst_addr_buf->ptr); return mod_auth_send_400_bad_request(r); } @@ -1533,7 +1533,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->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 bb33de33..17a0f98a 100644 --- a/src/mod_authn_gssapi.c +++ b/src/mod_authn_gssapi.c @@ -777,7 +777,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->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 1ac05934..b985216d 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->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_magnet.c b/src/mod_magnet.c index 1a62001b..030ac90b 100644 --- a/src/mod_magnet.c +++ b/src/mod_magnet.c @@ -1966,9 +1966,9 @@ magnet_env_get_buffer_by_id (request_st * const r, const 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_ADDR: dest = &r->con->dst_addr_buf; break; + case MAGNET_ENV_REQUEST_REMOTE_ADDR: dest = r->dst_addr_buf; break; case MAGNET_ENV_REQUEST_REMOTE_PORT: - buffer_append_int(dest, sock_addr_get_port(&r->con->dst_addr)); + buffer_append_int(dest, sock_addr_get_port(r->dst_addr)); break; case MAGNET_ENV_REQUEST_SERVER_ADDR: /* local IP without port */ case MAGNET_ENV_REQUEST_SERVER_PORT: @@ -2031,12 +2031,11 @@ static int magnet_env_set_raddr_by_id (lua_State *L, request_st * const r, const int id, const const_buffer * const val) { - connection * const con = r->con; switch (id) { case MAGNET_ENV_REQUEST_REMOTE_ADDR: #ifdef HAVE_SYS_UN_H if (val->len && *val->ptr == '/' - && 0 == sock_addr_assign(&con->dst_addr, AF_UNIX, 0, val->ptr)) { + && 0 == sock_addr_assign(r->dst_addr, AF_UNIX, 0, val->ptr)) { } else #endif @@ -2046,7 +2045,7 @@ magnet_env_set_raddr_by_id (lua_State *L, request_st * const r, const int id, if (1 == sock_addr_from_str_numeric(&saddr, val->ptr, r->conf.errh) && saddr.plain.sa_family != AF_UNSPEC) { sock_addr_set_port(&saddr, 0); - memcpy(&con->dst_addr, &saddr, sizeof(sock_addr)); + memcpy(r->dst_addr, &saddr, sizeof(sock_addr)); } else { return luaL_error(L, @@ -2054,11 +2053,11 @@ magnet_env_set_raddr_by_id (lua_State *L, request_st * const r, const int id, val->ptr); } } - buffer_copy_string_len(&con->dst_addr_buf, val->ptr, val->len); + buffer_copy_string_len(r->dst_addr_buf, val->ptr, val->len); config_cond_cache_reset_item(r, COMP_HTTP_REMOTE_IP); break; case MAGNET_ENV_REQUEST_REMOTE_PORT: - sock_addr_set_port(&con->dst_addr, (unsigned short)atoi(val->ptr)); + sock_addr_set_port(r->dst_addr, (unsigned short)atoi(val->ptr)); break; default: break; diff --git a/src/mod_maxminddb.c b/src/mod_maxminddb.c index 04034f70..fb5dc850 100644 --- a/src/mod_maxminddb.c +++ b/src/mod_maxminddb.c @@ -439,7 +439,7 @@ REQUEST_FUNC(mod_maxminddb_request_env_handler) if (!pconf.activate || NULL == pconf.env || NULL == pconf.mmdb) return HANDLER_GO_ON; - const sock_addr * const dst_addr = &r->con->dst_addr; + const sock_addr * const dst_addr = r->dst_addr; #if 0 /* future: if mod_extforward is (future) extended for HTTP/2 and diff --git a/src/mod_status.c b/src/mod_status.c index b9350d2e..06e2970a 100644 --- a/src/mod_status.c +++ b/src/mod_status.c @@ -170,9 +170,9 @@ static void mod_status_get_multiplier(buffer *b, double avg, int size) { buffer_append_string_len(b, unit, 2); } -static void mod_status_html_rtable_r (buffer * const b, const request_st * const r, const connection * const con, const unix_time64_t cur_ts) { +static void mod_status_html_rtable_r (buffer * const b, const request_st * const r, const unix_time64_t cur_ts) { buffer_append_str3(b, CONST_STR_LEN("<tr><td class=\"string\">"), - BUF_PTR_LEN(&con->dst_addr_buf), + BUF_PTR_LEN(r->dst_addr_buf), CONST_STR_LEN("</td><td class=\"int\">")); if (r->reqbody_length) { @@ -245,7 +245,7 @@ static void mod_status_html_rtable (request_st * const rq, const server * const http_chunk_append_mem(rq, BUF_PTR_LEN(b)); buffer_clear(b); } - mod_status_html_rtable_r(b, r, con, cur_ts); + mod_status_html_rtable_r(b, r, cur_ts); } if (NULL != h2c) { for (uint32_t j = 0, rused = h2c->rused; j < rused; ++j) { @@ -253,7 +253,7 @@ static void mod_status_html_rtable (request_st * const rq, const server * const http_chunk_append_mem(rq, BUF_PTR_LEN(b)); buffer_clear(b); } - mod_status_html_rtable_r(b, h2c->r[j], con, cur_ts); + mod_status_html_rtable_r(b, h2c->r[j], cur_ts); } } } diff --git a/src/reqpool.c b/src/reqpool.c index 19e93c4a..1e6e7f29 100644 --- a/src/reqpool.c +++ b/src/reqpool.c @@ -57,6 +57,8 @@ request_init_data (request_st * const r, connection * const con, server * const r->tmp_buf = srv->tmp_buf; r->resp_body_scratchpad = -1; r->server_name = &r->uri.authority; + r->dst_addr = &con->dst_addr; + r->dst_addr_buf = &con->dst_addr_buf; /* init plugin-specific per-request structures */ r->plugin_ctx = ck_calloc(srv->plugins.used + 1, sizeof(void *)); diff --git a/src/request.h b/src/request.h index e1098b46..c382553c 100644 --- a/src/request.h +++ b/src/request.h @@ -166,6 +166,9 @@ struct request_st { buffer pathinfo; buffer server_name_buf; + void *dst_addr; + buffer *dst_addr_buf; + /* response */ uint32_t resp_header_len; uint64_t resp_htags; /*bitfield of flagged headers present in response*/ |