core: simplify netlink monitor code a bit
This commit is contained in:
@@ -47,14 +47,9 @@
|
|||||||
#include "nm-marshal.h"
|
#include "nm-marshal.h"
|
||||||
#include "nm-netlink.h"
|
#include "nm-netlink.h"
|
||||||
|
|
||||||
#define NM_NETLINK_MONITOR_EVENT_CONDITIONS \
|
#define EVENT_CONDITIONS ((GIOCondition) (G_IO_IN | G_IO_PRI))
|
||||||
((GIOCondition) (G_IO_IN | G_IO_PRI))
|
#define ERROR_CONDITIONS ((GIOCondition) (G_IO_ERR | G_IO_NVAL))
|
||||||
|
#define DISCONNECT_CONDITIONS ((GIOCondition) (G_IO_HUP))
|
||||||
#define NM_NETLINK_MONITOR_ERROR_CONDITIONS \
|
|
||||||
((GIOCondition) (G_IO_ERR | G_IO_NVAL))
|
|
||||||
|
|
||||||
#define NM_NETLINK_MONITOR_DISCONNECT_CONDITIONS \
|
|
||||||
((GIOCondition) (G_IO_HUP))
|
|
||||||
|
|
||||||
#define NM_NETLINK_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
|
#define NM_NETLINK_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
|
||||||
NM_TYPE_NETLINK_MONITOR, \
|
NM_TYPE_NETLINK_MONITOR, \
|
||||||
@@ -374,9 +369,7 @@ nm_netlink_monitor_attach (NMNetlinkMonitor *monitor)
|
|||||||
g_return_if_fail (priv->event_id == 0);
|
g_return_if_fail (priv->event_id == 0);
|
||||||
|
|
||||||
priv->event_id = g_io_add_watch (priv->io_channel,
|
priv->event_id = g_io_add_watch (priv->io_channel,
|
||||||
(NM_NETLINK_MONITOR_EVENT_CONDITIONS |
|
(EVENT_CONDITIONS | ERROR_CONDITIONS | DISCONNECT_CONDITIONS),
|
||||||
NM_NETLINK_MONITOR_ERROR_CONDITIONS |
|
|
||||||
NM_NETLINK_MONITOR_DISCONNECT_CONDITIONS),
|
|
||||||
nm_netlink_monitor_event_handler,
|
nm_netlink_monitor_event_handler,
|
||||||
monitor);
|
monitor);
|
||||||
}
|
}
|
||||||
@@ -450,12 +443,12 @@ nm_netlink_monitor_event_handler (GIOChannel *channel,
|
|||||||
priv = NM_NETLINK_MONITOR_GET_PRIVATE (monitor);
|
priv = NM_NETLINK_MONITOR_GET_PRIVATE (monitor);
|
||||||
g_return_val_if_fail (priv->event_id > 0, TRUE);
|
g_return_val_if_fail (priv->event_id > 0, TRUE);
|
||||||
|
|
||||||
if (io_condition & NM_NETLINK_MONITOR_ERROR_CONDITIONS)
|
if (io_condition & ERROR_CONDITIONS)
|
||||||
return nm_netlink_monitor_error_handler (channel, io_condition, monitor);
|
return nm_netlink_monitor_error_handler (channel, io_condition, monitor);
|
||||||
else if (io_condition & NM_NETLINK_MONITOR_DISCONNECT_CONDITIONS)
|
else if (io_condition & DISCONNECT_CONDITIONS)
|
||||||
return nm_netlink_monitor_disconnect_handler (channel, io_condition, monitor);
|
return nm_netlink_monitor_disconnect_handler (channel, io_condition, monitor);
|
||||||
|
|
||||||
g_return_val_if_fail (!(io_condition & ~(NM_NETLINK_MONITOR_EVENT_CONDITIONS)), FALSE);
|
g_return_val_if_fail (!(io_condition & ~EVENT_CONDITIONS), FALSE);
|
||||||
|
|
||||||
if (nl_recvmsgs_default (priv->nlh) < 0) {
|
if (nl_recvmsgs_default (priv->nlh) < 0) {
|
||||||
error = g_error_new (NM_NETLINK_MONITOR_ERROR,
|
error = g_error_new (NM_NETLINK_MONITOR_ERROR,
|
||||||
@@ -482,7 +475,7 @@ nm_netlink_monitor_error_handler (GIOChannel *channel,
|
|||||||
int err_code;
|
int err_code;
|
||||||
socklen_t err_len;
|
socklen_t err_len;
|
||||||
|
|
||||||
g_return_val_if_fail (io_condition & NM_NETLINK_MONITOR_ERROR_CONDITIONS, FALSE);
|
g_return_val_if_fail (io_condition & ERROR_CONDITIONS, FALSE);
|
||||||
|
|
||||||
err_code = 0;
|
err_code = 0;
|
||||||
err_len = sizeof (err_code);
|
err_len = sizeof (err_code);
|
||||||
@@ -512,7 +505,7 @@ nm_netlink_monitor_disconnect_handler (GIOChannel *channel,
|
|||||||
NMNetlinkMonitor *monitor)
|
NMNetlinkMonitor *monitor)
|
||||||
{
|
{
|
||||||
|
|
||||||
g_return_val_if_fail (!(io_condition & ~(NM_NETLINK_MONITOR_DISCONNECT_CONDITIONS)), FALSE);
|
g_return_val_if_fail (!(io_condition & ~DISCONNECT_CONDITIONS), FALSE);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user