mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-12 10:45:13 +01:00
Merge branch 'backport-3425-win32-network-monitor-error-glib-2-76' into 'glib-2-76'
Backport !3425 “gwin32networkmonitor: Fix returning address of local variable” to glib-2-76 See merge request GNOME/glib!3428
This commit is contained in:
commit
00ae70bffb
@ -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…
x
Reference in New Issue
Block a user