diff --git a/ngx_rtmp_relay_module.c b/ngx_rtmp_relay_module.c index 9ccbc07..d5c13f4 100644 --- a/ngx_rtmp_relay_module.c +++ b/ngx_rtmp_relay_module.c @@ -446,8 +446,9 @@ ngx_rtmp_relay_create_connection(ngx_rtmp_conf_ctx_t *cctx, ngx_str_t* name, goto clear; } - /* use the first address */ - addr = target->url.addrs; + /* get address */ + addr = &target->url.addrs[target->counter % target->url.naddrs]; + target->counter++; /* copy log to keep shared log unchanged */ rctx->log = *racf->log; diff --git a/ngx_rtmp_relay_module.h b/ngx_rtmp_relay_module.h index cec70e0..67dbb04 100644 --- a/ngx_rtmp_relay_module.h +++ b/ngx_rtmp_relay_module.h @@ -23,8 +23,9 @@ typedef struct { ngx_int_t start; ngx_int_t stop; - void *tag; /* usually module reference */ - void *data; /* module-specific data */ + void *tag; /* usually module reference */ + void *data; /* module-specific data */ + ngx_uint_t counter; /* mutable connection counter */ } ngx_rtmp_relay_target_t;