@@ -252,6 +252,7 @@ ngx_http_lua_upstream_get_primary_peers(lua_State * L)
252
252
ngx_str_t host ;
253
253
ngx_uint_t i ;
254
254
ngx_http_upstream_rr_peers_t * peers ;
255
+ ngx_http_upstream_rr_peer_t * peer ;
255
256
ngx_http_upstream_srv_conf_t * us ;
256
257
257
258
if (lua_gettop (L ) != 1 ) {
@@ -277,9 +278,11 @@ ngx_http_lua_upstream_get_primary_peers(lua_State * L)
277
278
278
279
lua_createtable (L , peers -> number , 0 );
279
280
280
- for (i = 0 ; i < peers -> number ; i ++ ) {
281
- ngx_http_lua_get_peer (L , & peers -> peer [i ], i );
281
+ i = 0 ;
282
+ for (peer = peers -> peer ; peer != NULL ; peer = peer -> next ) {
283
+ ngx_http_lua_get_peer (L , peer , i );
282
284
lua_rawseti (L , -2 , i + 1 );
285
+ i ++ ;
283
286
}
284
287
285
288
return 1 ;
@@ -292,6 +295,7 @@ ngx_http_lua_upstream_get_backup_peers(lua_State * L)
292
295
ngx_str_t host ;
293
296
ngx_uint_t i ;
294
297
ngx_http_upstream_rr_peers_t * peers ;
298
+ ngx_http_upstream_rr_peer_t * peer ;
295
299
ngx_http_upstream_srv_conf_t * us ;
296
300
297
301
if (lua_gettop (L ) != 1 ) {
@@ -323,9 +327,11 @@ ngx_http_lua_upstream_get_backup_peers(lua_State * L)
323
327
324
328
lua_createtable (L , peers -> number , 0 );
325
329
326
- for (i = 0 ; i < peers -> number ; i ++ ) {
327
- ngx_http_lua_get_peer (L , & peers -> peer [i ], i );
330
+ i = 0 ;
331
+ for (peer = peers -> peer ; peer != NULL ; peer = peer -> next ) {
332
+ ngx_http_lua_get_peer (L , peer , i );
328
333
lua_rawseti (L , -2 , i + 1 );
334
+ i ++ ;
329
335
}
330
336
331
337
return 1 ;
@@ -360,9 +366,10 @@ ngx_http_lua_upstream_set_peer_down(lua_State * L)
360
366
static ngx_http_upstream_rr_peer_t *
361
367
ngx_http_lua_upstream_lookup_peer (lua_State * L )
362
368
{
363
- int id , backup ;
369
+ int id , backup , i ;
364
370
ngx_str_t host ;
365
371
ngx_http_upstream_srv_conf_t * us ;
372
+ ngx_http_upstream_rr_peer_t * peer ;
366
373
ngx_http_upstream_rr_peers_t * peers ;
367
374
368
375
host .data = (u_char * ) luaL_checklstring (L , 1 , & host .len );
@@ -400,7 +407,12 @@ ngx_http_lua_upstream_lookup_peer(lua_State *L)
400
407
return NULL ;
401
408
}
402
409
403
- return & peers -> peer [id ];
410
+ peer = peers -> peer ;
411
+ for (i = 0 ; i < id ; i ++ ) {
412
+ peer = peer -> next ;
413
+ }
414
+
415
+ return peer ;
404
416
}
405
417
406
418
0 commit comments