@@ -29,7 +29,7 @@ struct ngx_http_lua_balancer_peer_data_s {
29
29
struct sockaddr * sockaddr ;
30
30
socklen_t socklen ;
31
31
32
- ngx_str_t host ;
32
+ ngx_str_t * host ;
33
33
in_port_t port ;
34
34
35
35
int last_peer_state ;
@@ -255,7 +255,6 @@ ngx_http_lua_balancer_get_peer(ngx_peer_connection_t *pc, void *data)
255
255
{
256
256
lua_State * L ;
257
257
ngx_int_t rc ;
258
- ngx_str_t * peer_name ;
259
258
ngx_http_request_t * r ;
260
259
ngx_http_lua_ctx_t * ctx ;
261
260
ngx_http_lua_srv_conf_t * lscf ;
@@ -325,30 +324,7 @@ ngx_http_lua_balancer_get_peer(ngx_peer_connection_t *pc, void *data)
325
324
pc -> socklen = bp -> socklen ;
326
325
pc -> cached = 0 ;
327
326
pc -> connection = NULL ;
328
-
329
- /*
330
- * our dynamic balancers have no real peer actually, it just creates
331
- * one virtual peer when necessary. because the
332
- * peer_name is returned as a pointer, its content can change after
333
- * invoking balancer_by_lua*. if we just save the pointer,
334
- * nginx might always use the last peer_name. To address this issue,
335
- * we always create a copy of bp->host and save it as pc->name.
336
- */
337
-
338
- peer_name = ngx_palloc (r -> pool , sizeof (ngx_str_t ));
339
- if (peer_name == NULL ) {
340
- return NGX_ERROR ;
341
- }
342
-
343
- peer_name -> data = ngx_palloc (r -> pool , bp -> host .len );
344
- if (peer_name -> data == NULL ) {
345
- return NGX_ERROR ;
346
- }
347
-
348
- ngx_memcpy (peer_name -> data , bp -> host .data , bp -> host .len );
349
- peer_name -> len = bp -> host .len ;
350
-
351
- pc -> name = peer_name ;
327
+ pc -> name = bp -> host ;
352
328
353
329
bp -> rrp .peers -> single = 0 ;
354
330
@@ -549,7 +525,7 @@ ngx_http_lua_ffi_balancer_set_current_peer(ngx_http_request_t *r,
549
525
if (url .addrs && url .addrs [0 ].sockaddr ) {
550
526
bp -> sockaddr = url .addrs [0 ].sockaddr ;
551
527
bp -> socklen = url .addrs [0 ].socklen ;
552
- bp -> host = url .addrs [0 ].name ;
528
+ bp -> host = & url .addrs [0 ].name ;
553
529
554
530
} else {
555
531
* err = "no host allowed" ;
0 commit comments