core: refactor private data for NMExportedObject and others

This commit is contained in:
Thomas Haller
2016-09-28 15:58:24 +02:00
parent b4e66c4818
commit 0aa3a6dbfb
37 changed files with 485 additions and 479 deletions

View File

@@ -90,13 +90,26 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_FD_MNT,
);
typedef struct _NMPNetnsPrivate NMPNetnsPrivate;
struct _NMPNetnsPrivate {
typedef struct {
int fd_net;
int fd_mnt;
} NMPNetnsPrivate;
struct _NMPNetns {
GObject parent;
NMPNetnsPrivate _priv;
};
struct _NMPNetnsClass {
GObjectClass parent;
};
G_DEFINE_TYPE (NMPNetns, nmp_netns, G_TYPE_OBJECT);
#define NMP_NETNS_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMPNetns, NMP_IS_NETNS)
/*****************************************************************************/
typedef struct {
NMPNetns *netns;
int count;
@@ -264,12 +277,6 @@ _stack_size (void)
/*****************************************************************************/
G_DEFINE_TYPE (NMPNetns, nmp_netns, G_TYPE_OBJECT);
#define NMP_NETNS_GET_PRIVATE(o) ((o)->priv)
/*****************************************************************************/
static NMPNetns *
_netns_new (GError **error)
{
@@ -311,10 +318,11 @@ _setns (NMPNetns *self, int type)
{
char buf[100];
int fd;
NMPNetnsPrivate *priv = NMP_NETNS_GET_PRIVATE (self);
nm_assert (NM_IN_SET (type, _CLONE_NS_ALL_V));
fd = (type == CLONE_NEWNET) ? self->priv->fd_net : self->priv->fd_mnt;
fd = (type == CLONE_NEWNET) ? priv->fd_net : priv->fd_mnt;
_LOGt (self, "set netns(%s, %d)", _ns_types_to_str (type, 0, buf), fd);
@@ -397,7 +405,7 @@ nmp_netns_get_fd_net (NMPNetns *self)
{
g_return_val_if_fail (NMP_IS_NETNS (self), 0);
return self->priv->fd_net;
return NMP_NETNS_GET_PRIVATE (self)->fd_net;
}
int
@@ -405,7 +413,7 @@ nmp_netns_get_fd_mnt (NMPNetns *self)
{
g_return_val_if_fail (NMP_IS_NETNS (self), 0);
return self->priv->fd_mnt;
return NMP_NETNS_GET_PRIVATE (self)->fd_mnt;
}
/*****************************************************************************/
@@ -664,17 +672,18 @@ set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
NMPNetns *self = NMP_NETNS (object);
NMPNetnsPrivate *priv = NMP_NETNS_GET_PRIVATE (self);
switch (prop_id) {
case PROP_FD_NET:
/* construct only */
self->priv->fd_net = g_value_get_int (value);
g_return_if_fail (self->priv->fd_net > 0);
priv->fd_net = g_value_get_int (value);
g_return_if_fail (priv->fd_net > 0);
break;
case PROP_FD_MNT:
/* construct only */
self->priv->fd_mnt = g_value_get_int (value);
g_return_if_fail (self->priv->fd_mnt > 0);
priv->fd_mnt = g_value_get_int (value);
g_return_if_fail (priv->fd_mnt > 0);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -685,22 +694,22 @@ set_property (GObject *object, guint prop_id,
static void
nmp_netns_init (NMPNetns *self)
{
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NMP_TYPE_NETNS, NMPNetnsPrivate);
}
static void
dispose (GObject *object)
{
NMPNetns *self = NMP_NETNS (object);
NMPNetnsPrivate *priv = NMP_NETNS_GET_PRIVATE (self);
if (self->priv->fd_net > 0) {
close (self->priv->fd_net);
self->priv->fd_net = 0;
if (priv->fd_net > 0) {
close (priv->fd_net);
priv->fd_net = 0;
}
if (self->priv->fd_mnt > 0) {
close (self->priv->fd_mnt);
self->priv->fd_mnt = 0;
if (priv->fd_mnt > 0) {
close (priv->fd_mnt);
priv->fd_mnt = 0;
}
G_OBJECT_CLASS (nmp_netns_parent_class)->dispose (object);
@@ -711,8 +720,6 @@ nmp_netns_class_init (NMPNetnsClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
g_type_class_add_private (klass, sizeof (NMPNetnsPrivate));
object_class->set_property = set_property;
object_class->dispose = dispose;