X-Git-Url: http://git.meshlink.io/?p=meshlink;a=blobdiff_plain;f=src%2Fnet_setup.c;h=367ccd293857f98162b50ba4a8a4afda5f3be217;hp=e79550327d1ec5bf15cdc79a4f03a4bda6a3f5ad;hb=46e373d99b4559245885c94930a6979d03a6f12b;hpb=69337518fb6cff60243153792449c1ba6c8fda40 diff --git a/src/net_setup.c b/src/net_setup.c index e7955032..367ccd29 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -381,6 +381,16 @@ static bool add_listen_address(meshlink_handle_t *mesh, char *address, bool bind mesh->listen_socket[mesh->listen_sockets].bindto = bindto; memcpy(&mesh->listen_socket[mesh->listen_sockets].sa, aip->ai_addr, aip->ai_addrlen); + memcpy(&mesh->listen_socket[mesh->listen_sockets].broadcast_sa, aip->ai_addr, aip->ai_addrlen); + + if(aip->ai_family == AF_INET6) { + mesh->listen_socket[mesh->listen_sockets].broadcast_sa.in6.sin6_addr.s6_addr[0x0] = 0xff; + mesh->listen_socket[mesh->listen_sockets].broadcast_sa.in6.sin6_addr.s6_addr[0x1] = 0x02; + mesh->listen_socket[mesh->listen_sockets].broadcast_sa.in6.sin6_addr.s6_addr[0xf] = 0x01; + } else { + mesh->listen_socket[mesh->listen_sockets].broadcast_sa.in.sin_addr.s_addr = 0xffffffff; + } + mesh->listen_sockets++; success = true; }