forked from cory/tildefriends
Fix executable choosing for my phone, and fix broadcasting to each interface.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4232 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
@ -2554,7 +2554,7 @@ static void _tf_ssb_on_connection(uv_stream_t* stream, int status)
|
||||
uv_read_start((uv_stream_t*)&connection->tcp, _tf_ssb_connection_on_tcp_alloc, _tf_ssb_connection_on_tcp_recv);
|
||||
}
|
||||
|
||||
static void _tf_ssb_send_broadcast(tf_ssb_t* ssb, struct sockaddr_in* address)
|
||||
static void _tf_ssb_send_broadcast(tf_ssb_t* ssb, struct sockaddr_in* address, struct sockaddr_in* netmask)
|
||||
{
|
||||
struct sockaddr server_addr;
|
||||
int len = (int)sizeof(server_addr);
|
||||
@ -2581,7 +2581,9 @@ static void _tf_ssb_send_broadcast(tf_ssb_t* ssb, struct sockaddr_in* address)
|
||||
struct sockaddr_in broadcast_addr = { 0 };
|
||||
broadcast_addr.sin_family = AF_INET;
|
||||
broadcast_addr.sin_port = htons(8008);
|
||||
broadcast_addr.sin_addr.s_addr = INADDR_BROADCAST;
|
||||
broadcast_addr.sin_addr.s_addr =
|
||||
(address->sin_addr.s_addr & netmask->sin_addr.s_addr) |
|
||||
(INADDR_BROADCAST & ~netmask->sin_addr.s_addr);
|
||||
int r = uv_udp_try_send(&ssb->broadcast_sender, &buf, 1, (struct sockaddr*)&broadcast_addr);
|
||||
if (r < 0)
|
||||
{
|
||||
@ -2601,7 +2603,7 @@ static void _tf_ssb_broadcast_timer(uv_timer_t* timer)
|
||||
if (!info[i].is_internal &&
|
||||
info[i].address.address4.sin_family == AF_INET)
|
||||
{
|
||||
_tf_ssb_send_broadcast(ssb, &info[i].address.address4);
|
||||
_tf_ssb_send_broadcast(ssb, &info[i].address.address4, &info[i].netmask.netmask4);
|
||||
}
|
||||
}
|
||||
uv_free_interface_addresses(info, count);
|
||||
|
Reference in New Issue
Block a user