mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-04 13:30:12 -05:00
pulse-server: iterate addresses correctly
When creating servers, actually iterate the addresses correctly instead of only using the first address. Fixes #2047
This commit is contained in:
parent
ee257b148b
commit
cec9347864
1 changed files with 4 additions and 2 deletions
|
|
@ -944,7 +944,7 @@ int servers_create_and_start(struct impl *impl, const char *addresses, struct pw
|
||||||
while ((len = spa_json_next(&it[1], &v)) > 0) {
|
while ((len = spa_json_next(&it[1], &v)) > 0) {
|
||||||
char addr_str[FORMATTED_SOCKET_ADDR_STRLEN] = { 0 };
|
char addr_str[FORMATTED_SOCKET_ADDR_STRLEN] = { 0 };
|
||||||
char key[128], client_access[64] = { 0 };
|
char key[128], client_access[64] = { 0 };
|
||||||
struct sockaddr_storage addr[2];
|
struct sockaddr_storage addrs[2];
|
||||||
int i, max_clients = MAX_CLIENTS, listen_backlog = LISTEN_BACKLOG, n_addr;
|
int i, max_clients = MAX_CLIENTS, listen_backlog = LISTEN_BACKLOG, n_addr;
|
||||||
|
|
||||||
if (spa_json_is_object(v, len)) {
|
if (spa_json_is_object(v, len)) {
|
||||||
|
|
@ -967,7 +967,7 @@ int servers_create_and_start(struct impl *impl, const char *addresses, struct pw
|
||||||
spa_json_parse_stringn(v, len, addr_str, sizeof(addr_str));
|
spa_json_parse_stringn(v, len, addr_str, sizeof(addr_str));
|
||||||
}
|
}
|
||||||
|
|
||||||
n_addr = parse_address(addr_str, addr, 2);
|
n_addr = parse_address(addr_str, addrs, SPA_N_ELEMENTS(addrs));
|
||||||
if (n_addr < 0) {
|
if (n_addr < 0) {
|
||||||
pw_log_warn("pulse-server %p: failed to parse address '%s': %s",
|
pw_log_warn("pulse-server %p: failed to parse address '%s': %s",
|
||||||
impl, addr_str, spa_strerror(n_addr));
|
impl, addr_str, spa_strerror(n_addr));
|
||||||
|
|
@ -977,7 +977,9 @@ int servers_create_and_start(struct impl *impl, const char *addresses, struct pw
|
||||||
|
|
||||||
/* try to create sockets for each address in the list */
|
/* try to create sockets for each address in the list */
|
||||||
for (i = 0; i < n_addr; i++) {
|
for (i = 0; i < n_addr; i++) {
|
||||||
|
const struct sockaddr_storage *addr = &addrs[i];
|
||||||
struct server * const server = server_new(impl);
|
struct server * const server = server_new(impl);
|
||||||
|
|
||||||
if (server == NULL) {
|
if (server == NULL) {
|
||||||
UPDATE_ERR(-errno);
|
UPDATE_ERR(-errno);
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue