mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-14 08:16:24 +01:00
Merge branch 'win32-network-monitor-error' into 'main'
gwin32networkmonitor: Fix returning address of local variable See merge request GNOME/glib!3425
This commit is contained in:
commit
1461c29301
@ -78,24 +78,24 @@ g_win32_network_monitor_init (GWin32NetworkMonitor *win)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
win_network_monitor_get_ip_info (IP_ADDRESS_PREFIX prefix,
|
win_network_monitor_get_ip_info (const IP_ADDRESS_PREFIX *prefix,
|
||||||
GSocketFamily *family,
|
GSocketFamily *family,
|
||||||
const guint8 **dest,
|
const guint8 **dest,
|
||||||
gsize *len)
|
gsize *len)
|
||||||
{
|
{
|
||||||
switch (prefix.Prefix.si_family)
|
switch (prefix->Prefix.si_family)
|
||||||
{
|
{
|
||||||
case AF_UNSPEC:
|
case AF_UNSPEC:
|
||||||
/* Fall-through: AF_UNSPEC deliveres both IPV4 and IPV6 infos, let`s stick with IPV4 here */
|
/* Fall-through: AF_UNSPEC deliveres both IPV4 and IPV6 infos, let`s stick with IPV4 here */
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
*family = G_SOCKET_FAMILY_IPV4;
|
*family = G_SOCKET_FAMILY_IPV4;
|
||||||
*dest = (guint8 *) &prefix.Prefix.Ipv4.sin_addr;
|
*dest = (guint8 *) &(prefix->Prefix.Ipv4.sin_addr);
|
||||||
*len = prefix.PrefixLength;
|
*len = prefix->PrefixLength;
|
||||||
break;
|
break;
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
*family = G_SOCKET_FAMILY_IPV6;
|
*family = G_SOCKET_FAMILY_IPV6;
|
||||||
*dest = (guint8 *) &prefix.Prefix.Ipv6.sin6_addr;
|
*dest = (guint8 *) &(prefix->Prefix.Ipv6.sin6_addr);
|
||||||
*len = prefix.PrefixLength;
|
*len = prefix->PrefixLength;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -152,7 +152,7 @@ win_network_monitor_process_table (GWin32NetworkMonitor *win,
|
|||||||
|
|
||||||
route = routes->Table + i;
|
route = routes->Table + i;
|
||||||
|
|
||||||
if (!win_network_monitor_get_ip_info (route->DestinationPrefix, &family, &dest, &len))
|
if (!win_network_monitor_get_ip_info (&route->DestinationPrefix, &family, &dest, &len))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
network = get_network_mask (family, dest, len);
|
network = get_network_mask (family, dest, len);
|
||||||
@ -218,13 +218,13 @@ win_network_monitor_invoke_route_changed (gpointer user_data)
|
|||||||
switch (route_data->type)
|
switch (route_data->type)
|
||||||
{
|
{
|
||||||
case MibDeleteInstance:
|
case MibDeleteInstance:
|
||||||
if (!win_network_monitor_get_ip_info (route_data->route->DestinationPrefix, &family, &dest, &len))
|
if (!win_network_monitor_get_ip_info (&route_data->route->DestinationPrefix, &family, &dest, &len))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
remove_network (route_data->win, family, dest, len);
|
remove_network (route_data->win, family, dest, len);
|
||||||
break;
|
break;
|
||||||
case MibAddInstance:
|
case MibAddInstance:
|
||||||
if (!win_network_monitor_get_ip_info (route_data->route->DestinationPrefix, &family, &dest, &len))
|
if (!win_network_monitor_get_ip_info (&route_data->route->DestinationPrefix, &family, &dest, &len))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
add_network (route_data->win, family, dest, len);
|
add_network (route_data->win, family, dest, len);
|
||||||
|
Loading…
Reference in New Issue
Block a user